本文部分內容參考,如有侵權請聯系刪除:使用 easyofd 解析ofd 文件_python模塊easyofd如何使用-CSDN博客
背景需求:需要將郵箱中得ofd格式發票提取出來轉換成pdf或者圖片。
在網上搜了發現使用pyofd包,安裝之后使用各種問題,所以在PyPi上找了下發現包不多,最新得是easyofd,并且開發者最新還在更新,所以果斷轉到easyofd包上來,但是這塊有一個很重要得必坑得就是最好從github上下載最新得包安裝并使用,要不然版本不對還是會報錯。開始由于版本不對,參考博客內容運行,發現有問題,于是看引用發現版本不對,所以最好還是用最新得,我這版是:, 下載地址:
https://github.com/renoyuan/easyofd?,
運行代碼如下:
import requests
import urllib
from PIL import Image
from easyofd.ofd import OFD
import base64def 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() # 轉pdfwith open(f'%s.pdf' % (images_path + filename[:-4], ), "wb") as f:f.write(pdf_bytes)if __name__ == "__main__":# 將ofd轉成pdfofd_to_pdf(ofd_file_folder, pdf_file_folder, filename)# 將ofd轉成imagesofd_to_images(ofd_file_folder, img_file_folder, filename)