最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)OFD文件轉(zhuǎn)PDF

 更新時(shí)間:2024年10月31日 08:44:53   作者:大橙子打游戲  
OFD 文件是由中國(guó)國(guó)家標(biāo)準(zhǔn)化管理委員會(huì)制定的國(guó)家標(biāo)準(zhǔn),是一種開(kāi)放式文檔格式,具有高度可擴(kuò)展性和可編輯性,本文主要介紹了如何利用Python實(shí)現(xiàn)OFD文件轉(zhuǎn)PDF,需要的可以參考下

OFD 文件介紹

OFD 文件是由中國(guó)國(guó)家標(biāo)準(zhǔn)化管理委員會(huì)制定的國(guó)家標(biāo)準(zhǔn),是一種開(kāi)放式文檔格式,具有高度可擴(kuò)展性和可編輯性,可包含多種類(lèi)型內(nèi)容

數(shù)字化時(shí)代,電子發(fā)票已成為商務(wù)交易的常態(tài)。然而,對(duì)于許多用戶(hù)來(lái)說(shuō),電子發(fā)票可能仍然是一個(gè)令人困惑的主題。特別是當(dāng)涉及到OFD格式時(shí),許多人可能不理解為什么它如此重要。在本文中,我們將探討電子發(fā)票的OFD格式的重要性,以及為什么您應(yīng)該了解并熟悉這種格式。

首先,讓我們解釋一下什么是OFD格式。OFD,全稱(chēng)是“開(kāi)放式文件格式”,是中國(guó)自主研發(fā)的一種電子文件格式。由于其開(kāi)放性和高效性,OFD格式被廣泛用于電子發(fā)票等場(chǎng)景。

那么,為什么電子發(fā)票需要采用OFD格式呢?首先,OFD格式具有高度的可驗(yàn)證性。這意味著它可以輕松地驗(yàn)證電子發(fā)票的真實(shí)性和完整性,從而避免了假發(fā)票的風(fēng)險(xiǎn)。此外,OFD格式還有助于提高電子發(fā)票的處理效率。無(wú)論是打印、存儲(chǔ)還是傳輸,OFD格式都能提供更高的效率和可靠性。

對(duì)于需要報(bào)銷(xiāo)或歸檔電子發(fā)票的用戶(hù)來(lái)說(shuō),OFD格式的重要性不言而喻。報(bào)銷(xiāo)是許多公司和個(gè)人經(jīng)常面臨的一項(xiàng)任務(wù),而電子發(fā)票可以大大簡(jiǎn)化這一過(guò)程。然而,為了確保電子發(fā)票能夠被接受和認(rèn)可,必須采用符合規(guī)定的格式。OFD格式恰好滿(mǎn)足了這一需求,因此成為電子發(fā)票報(bào)銷(xiāo)和歸檔的首選格式。

但是OFD文件格式并不能很順暢的在普通閱讀軟件里使用,在代碼中也不便于處理,于是我們需要將OFD格式的文件轉(zhuǎn)成PDF。

轉(zhuǎn)換代碼

import base64
import os
import sys
from easyofd.ofd import OFD
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont

pdfmetrics.registerFont(TTFont('宋體', '方正書(shū)宋簡(jiǎn)體.ttf'))


def cvt_ofd(file_path):

    file_prefix = os.path.splitext(os.path.split(file_path)[1])[0]
    with open(file_path, "rb") as f:
        ofdb64 = str(base64.b64encode(f.read()), "utf-8")
    ofd = OFD()
    ofd.read(ofdb64, save_xml=True, xml_name=f"{file_prefix}_xml")
    pdf_bytes = ofd.to_pdf()  # 轉(zhuǎn)pdf
    img_np = ofd.to_jpg()  # 轉(zhuǎn)圖片
    ofd.del_data()

    with open(f"{file_prefix}.pdf", "wb") as f:
        f.write(pdf_bytes)

    for idx, img in enumerate(img_np):
        img.save(f"{file_prefix}_{idx}.jpg")


if __name__ == "__main__":
    cvt_ofd("example.ofd")

安裝所需依賴(lài)

pip install easyofd reportlab

常見(jiàn)問(wèn)題

1.字體不存在

免費(fèi)字體庫(kù)下載所需要的字體文件,參考使用 pdfmetrics.registerFont(TTFont('宋體', '方正書(shū)宋簡(jiǎn)體.ttf'))注冊(cè)對(duì)應(yīng)的字體文件到指定的名字即可

2.轉(zhuǎn)換的PDF文件丟失圖片

通過(guò)pip安裝的easyofd包可能不是最新版的源碼,需要修改一下,easyofd/draw/draw_pdf.py文件當(dāng)中,SupportImgType的值,將IPEG改為JPEG即可。

到此這篇關(guān)于Python實(shí)現(xiàn)OFD文件轉(zhuǎn)PDF的文章就介紹到這了,更多相關(guān)Python OFD轉(zhuǎn)PDF內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pytorch實(shí)現(xiàn)seq2seq時(shí)對(duì)loss進(jìn)行mask的方式

    pytorch實(shí)現(xiàn)seq2seq時(shí)對(duì)loss進(jìn)行mask的方式

    今天小編就為大家分享一篇pytorch實(shí)現(xiàn)seq2seq時(shí)對(duì)loss進(jìn)行mask的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • Python 中面向接口編程詳情

    Python 中面向接口編程詳情

    這篇文章主要介紹了Python 中面向接口編程詳情,Python 中的接口與大多數(shù)其它語(yǔ)言的處理方式不同,它們的設(shè)計(jì)復(fù)雜性也不同,關(guān)于Python 接口編程的介紹,需要的小伙伴可以參考下面文章內(nèi)容
    2022-05-05
  • python 多進(jìn)程和多線程使用詳解

    python 多進(jìn)程和多線程使用詳解

    這篇文章主要介紹了python 多進(jìn)程和多線程使用詳解,幫助大家更好得理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • 淺談pandas關(guān)于查看庫(kù)或依賴(lài)庫(kù)版本的API原理

    淺談pandas關(guān)于查看庫(kù)或依賴(lài)庫(kù)版本的API原理

    本文主要介紹了淺談pandas關(guān)于查看庫(kù)或依賴(lài)庫(kù)版本的API原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • python中字典的常見(jiàn)操作總結(jié)2

    python中字典的常見(jiàn)操作總結(jié)2

    這篇文章主要介紹了python中字典的常見(jiàn)操作總結(jié),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • Ubuntu下安裝卸載python3.8的過(guò)程

    Ubuntu下安裝卸載python3.8的過(guò)程

    這篇文章主要介紹了Ubuntu下python3.8的安裝與卸載,本文以在 Ubuntu 16.04 中安裝為例,方法同樣適用于 Ubuntu 18.04,需要的朋友可以參考下
    2021-09-09
  • 手把手教你如何使python變?yōu)榭蓤?zhí)行文件

    手把手教你如何使python變?yōu)榭蓤?zhí)行文件

    對(duì)于exe可執(zhí)行文件,相信大家都不陌生,下面這篇文章主要給大家介紹了關(guān)于如何使python變?yōu)榭蓤?zhí)行文件的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • Python 如何給圖像分類(lèi)(圖像識(shí)別模型構(gòu)建)

    Python 如何給圖像分類(lèi)(圖像識(shí)別模型構(gòu)建)

    這篇文章主要介紹了Python 教你如何給圖像分類(lèi),今天的文章主要是講圖像識(shí)別模型如何構(gòu)建,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • Python+matplotlib實(shí)現(xiàn)計(jì)算兩個(gè)信號(hào)的交叉譜密度實(shí)例

    Python+matplotlib實(shí)現(xiàn)計(jì)算兩個(gè)信號(hào)的交叉譜密度實(shí)例

    這篇文章主要介紹了Python+matplotlib實(shí)現(xiàn)計(jì)算兩個(gè)信號(hào)的交叉譜密度實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • python+mysql實(shí)現(xiàn)學(xué)生信息查詢(xún)系統(tǒng)

    python+mysql實(shí)現(xiàn)學(xué)生信息查詢(xún)系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python+mysql實(shí)現(xiàn)學(xué)生信息查詢(xún)系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02

最新評(píng)論

凤凰县| 奉新县| 如皋市| 霍山县| 仁布县| 定南县| 黑水县| 白沙| 深水埗区| 革吉县| 清原| 泽库县| 山阴县| 广东省| 邹城市| 合江县| 吉木乃县| 兰西县| 婺源县| 嘉定区| 黔南| 青龙| 成武县| 朝阳市| 莒南县| 陇南市| 昆山市| 四子王旗| 米林县| 昌平区| 科技| 全南县| 抚松县| 体育| 离岛区| 宝应县| 远安县| 色达县| 运城市| 湘乡市| 普兰店市|