使用 easyofd 解析 ofd 文件

337 天前
 renoyuan

使用 easyofd 解析 ofd 文件

关于 OFD 格式

OFD 格式简单来说是 PDF 的国产替代。目前只有国内一定范围内在用,所以相对应的工具库还比较少。

安装 easyofd

pip 安装

pip install easyofd

github 源码地址

git clone https://github.com/renoyuan/easyofd.git

使用 easyofd

ofd 转 pfd

import base64
import json
from PIL import Image

from easyofd.ofd import OFD

with open(r"增值税电子专票 5.ofd","rb") as f:
    ofdb64 = str(base64.b64encode(f.read()),"utf-8")
    ofd = OFD() # 初始化 OFD 工具类
    ofd.read(ofdb64,save_xml=False, xml_name="testxml") # 读取 ofdb64
    # print(ofd.data) # ofd.data 为程序解析结果
    pdf_bytes = ofd.to_pdf() # 转 pdf
   
    ofd.del_data()
    
    with open(r"增值税电子专票 5.pdf","wb") as f:
        f.write(pdf_bytes)

ofd 转图片

import base64
import json
from PIL import Image

from easyofd.ofd import OFD


with open(r"增值税电子专票 5.ofd","rb") as f:
        ofdb64 = str(base64.b64encode(f.read()),"utf-8")
    ofd = OFD() # 初始化 OFD 工具类
    ofd.read(ofdb64,save_xml=False, xml_name="testxml") # 读取 ofdb64
    # print(ofd.data) # ofd.data 为程序解析结果
    img_np = ofd.to_jpg() # 转图片
    ofd.del_data()
    for idx, img in enumerate(img_np):
        im = Image.fromarray(img)
        im.save(f"test_img{idx}.jpg")

客户端

easyofd 有一个 windows 客户端 程序可以不需要代码直接使用

下载地址: https://github.com/renoyuan/easyofd/releases

1180 次点击
所在节点    Python
2 条回复
onesec
336 天前
mark~
电子发票现在都用 ofd 格式吗?我看了一下滴滴之类的发票还是 pdf
renoyuan
5 小时 41 分钟前
对个人和私企还主要是 pdf 把。目前主要应用还是国企和机关单位,需要用国产化的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1010916

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX