python ofd转pdf及图片

本文部分内容参考,如有侵权请联系删除:使用 easyofd 解析ofd 文件_python模块easyofd如何使用-CSDN博客

背景需求:需要将邮箱中得ofd格式发票提取出来转换成pdf或者图片。

在网上搜了发现使用pyofd包,安装之后使用各种问题,所以在PyPi上找了下发现包不多,最新得是easyofd,并且开发者最新还在更新,所以果断转到easyofd包上来,但是这块有一个很重要得必坑得就是最好从github上下载最新得包安装并使用,要不然版本不对还是会报错。开始由于版本不对,参考博客内容运行,发现有问题,于是看引用发现版本不对,所以最好还是用最新得,我这版是:, 下载地址:

https://github.com/renoyuan/easyofd

运行代码如下:

python 复制代码
import requests
import urllib
from PIL import Image
from easyofd.ofd import OFD
import base64

def ofd_to_images(ofd_path, images_path, filename):
    with open(ofd_path + filename,"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() # 转图片

        for idx, img in enumerate(img_np):
            im = Image.fromarray(img)
            im.save(f'%s.png' % (images_path + filename[:-4], ))

def ofd_to_pdf(ofd_path, images_path, filename):
    with open(ofd_path + filename,"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
   
        with open(f'%s.pdf' % (images_path + filename[:-4], ), "wb") as f:
            f.write(pdf_bytes)

if __name__ == "__main__":
    # 将ofd转成pdf
    ofd_to_pdf(ofd_file_folder, pdf_file_folder, filename)
    # 将ofd转成images
    ofd_to_images(ofd_file_folder, img_file_folder, filename)
相关推荐
FreakStudio15 分钟前
全网最适合入门的面向对象编程教程:50 Python函数方法与接口-接口和抽象基类
python·嵌入式·面向对象·电子diy
redcocal1 小时前
地平线秋招
python·嵌入式硬件·算法·fpga开发·求职招聘
artificiali2 小时前
Anaconda配置pytorch的基本操作
人工智能·pytorch·python
RaidenQ2 小时前
2024.9.13 Python与图像处理新国大EE5731课程大作业,索贝尔算子计算边缘,高斯核模糊边缘,Haar小波计算边缘
图像处理·python·算法·课程设计
花生了什么树~.2 小时前
python基础知识(六)--字典遍历、公共运算符、公共方法、函数、变量分类、参数分类、拆包、引用
开发语言·python
Trouvaille ~3 小时前
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧
图像处理·python·机器学习·numpy·信号处理·时间序列分析·科学计算
爆更小小刘3 小时前
Python基础语法(3)下
开发语言·python
哪 吒3 小时前
华为OD机试 - 第 K 个字母在原来字符串的索引(Python/JS/C/C++ 2024 E卷 100分)
javascript·python·华为od
憨憨小白3 小时前
Python 的集合类型
开发语言·python·青少年编程·少儿编程
白杆杆红伞伞3 小时前
01_快速入门
python·pandas