LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

从一份电子发票认识OFD和XML格式

admin
2024年7月25日 0:15 本文热度 647

/引言/


OFD(Open Fixed-layout Document)是我国自主研发的一种版式文档格式,相比于市场上流行的PDF(Portable Document Format)格式,是一种更自主、更创新、更可靠的选择。


从国家标准方面看,OFD格式正式开始于《电子文件存储与交换格式 版式文档》(GB/T 33190-2016),在此基础上,根据电子文件长期保存、自包含、自描述等档案管理需求,《信息技术 OFD档案应用指南》(GB/T 42133-2022)对OFD进一步提出标准化要求。


目前OFD格式在党政机关电子公文归档和电子发票方面应用较为广泛,备受行政办公、公共事务办理等业务从业人员关注。


下面,笔者以一份电子发票为例,对OFD文件结构及内容进行概括性描述,以期帮助非专业读者更为具象地认识到OFD的独特之处。在此基础上,从OFD文件格式框架“XML+ZIP”出发,进一步引导非专业读者探知XML(Extensible Markup Language)领域。


01



获取OFD格式电子发票

国家税务总局电子发票服务平台中,一份电子发票对应了3种格式的电子文件,分别是PDF、OFD、XML,可以直接下载至本地保存。

如果需要对电子发票进行离线阅览,PDF可以使用通用浏览器、国内外版式文件阅读器打开阅览,OFD可以使用国内版式文件阅读器打开阅览(如金山WPS等),XML可以使用通用浏览器打开阅览。PDF和OFD显示一致,呈现为符合通俗习惯的、易于普通人阅读理解的书面表格样式,这也是PDF、OFD被称之为“版式”格式的主要原因。而XML与前两者不同,呈现为多层级的结构化数据排列样式,易于机器解析,相比之下,对于自然人而言,XML的阅读理解难度远远大于版式文档。


02



解压电子发票看OFD文件结构

两步呈现OFD电子发票的“XML+ZIP” 现代文件格式框架。

#

第一步:解压。

直接将OFD电子文件后缀名“.ofd”修改为“.ZIP”,便得到一个ZIP压缩包,使用解压工具对压缩包进行解压,便得到一个文件夹。

#

第二步:逐层查看文件结构。

进入文件夹,便可依次查看各层文件夹和XML文件。


通过上述简单的两步操作,可以清晰地感受到OFD现代文件格式框架的涵义,多层文件夹结构显得既简炼又清晰,让人感觉十分干净。


03



版式呈现内容数据结构化组织

OFD文件结构打开后,对照GB/T 33190-2016和GB/T 42133-2022,便可进一步认识各个文件夹及XML的内容及作用。


GB/T 42133-2022给出的OFD文件的包内结构如下图所示:


#

第一层:

含文件夹“文档夹(Doc_0)”和XML“主入口OFD.xml”。主入口XML提供了文档的结构和内容的入口点,是访问和解析整个文档内容的起点,其内容结构如下图所示:

#

第二层:

含文件夹“注释(Annots)”、“页树(Pages)”、“资源(Res)”、“标引(Tags)”和 XML“文档入口Document.xml”、“文档资源DocumentRes.xml”、“公共资源PublicRes.xml”。OFD文件结构第二层将文档内容按照功能或特性进行分组,以便更好地管理和访问内容,同时也可以提高OFD文件的可维护性。

#

第三层及更深层:

以“页树(Pages)”为例,第三层为文件夹“页面(Page N)”,第四层为XML“页面描述Content.xml”,描述文档页面信息。


XML(Content.xml)中,Area描述页面区域, Content描述页面内容;在Content下,Layer描述层对象;在Layer下,TextObject描述文字对象,PathObject描述图形对象,ImageObject描述图像对象。


TextObject文字对象依次描述了编号标识(ID)、区域(Boundary)、字体(Font)、大小(Size)、定位(TextCode)、字间距(DeltaX)、值。

<点击查看大图>


PathObject图形对象依次描述了编号标识(ID)、区域(Boundary)、线宽(LineWidth)、线型(Fill)、图形轮廓(AbbreviatedData),M、B、L分别指代不同的路径方式。

<点击查看大图>

ImageObject图像对象依次描述了编号标识(ID)、图像变换矩阵(CTM)、区域(Boundary)、引用资源编号标识(ResourceID)。

<点击查看大图>


通过对OFD中文件夹和XML的逐层拆解,可以看出OFD文档自包含、自描述的严谨和细致,在国家标准的规定下,任意数据在XML内、XML与XML之间均能实现相互引用、相互解释。


相比之下,PDF则难以在通用环境下呈现出结构化的数据形态,若将PDF电子文件后缀“.pdf”修改为“.txt”,再使用记事本打开,将呈现为具有一定规律但难以被自然人阅读理解的字符块。


04



回看XML文件数据结构与内容

回看从官网中直接下载的电子发票XML,对照《电子发票基础信息规范》(GB/T 36609-2018),在XML结构树中,首先是EInvoice描述电子发票;在EInvoice下, EInvoiceData描述电子发票数据,SellerAuthentication描述卖方认证信息等;在SellerAuthentication下,SellerIdNum描述销售方识别号,SellerName描述销售方名称,SellerAddr描述销售方地址等。

对比OFD中的XML和电子发票XML,可以分析出两者的相同之处和不同之处。



相同之处

主要体现为两点,一是XML中的数据项以层级树状结构组织在一起,二是XML中数据项的基本形式为<属性>值,数据值被对尖括号标签<>所包含。清晰明了的结构设定本身就是XML描述语言的优势所在。



不同之处

主要体现为两点,一是XML中数据项的定义不同,二是XML中<属性>值的基本形式可以被说明、扩充。灵活且包容的自定义特性正是XML扩展性的体现。


05



结语

基于上文的阐述,我想大家对于OFD文件格式有了比较深入的了解,可以说OFD是由XML组合而成的版式文档,OFD的特点在于自主可控、现代文件格式框架;而XML的特点在于结构简单清晰、应用灵活扩展、便于计算机程序访问和处理;当然,PDF格式也有其优势,比如应用更为广泛,生态更为丰富等,各种文件格式之间的转换也更为方便,对于普通用户来说更通用、更易用、更实用。


我想这也是国家税务总局官网为什么要提供PDF、OFD、XML三种格式电子发票的原因吧! 


该文章在 2024/7/25 0:15:54 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved