CN114998464A - 电子证照生成方法及装置 - Google Patents
电子证照生成方法及装置 Download PDFInfo
- Publication number
- CN114998464A CN114998464A CN202210553027.8A CN202210553027A CN114998464A CN 114998464 A CN114998464 A CN 114998464A CN 202210553027 A CN202210553027 A CN 202210553027A CN 114998464 A CN114998464 A CN 114998464A
- Authority
- CN
- China
- Prior art keywords
- file
- data
- license
- metadata
- electronic license
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种电子证照生成方法及装置,电子证照生成方法包括对预设电子证照模板进行解析得到中间文件,中间文件以数据流形式保存在内存中,中间文件包括预设电子证照模板对应的数据项名称和图元对象属性信息;获取业务元数据,对业务元数据进行解析以获取数据项名称对应的数据内容;将数据内容根据图元对象属性信息进行排版得到页面内容描述文件;将页面内容描述文件添加到中间文件中生成电子证照文件,只需对相同类型的证照模板文件解析一次保留中间文件,即可重复生成该类型的电子证照文件,减少占用空间,并且在内存中解析、处理,由于不需要多次读写磁盘,不仅可以提升生成电子证照的速度,还可以保证电子证照文件的生成过程的安全性。
Description
技术领域
本申请属于电子证照技术领域,具体涉及一种电子证照生成方法及装置。
背景技术
电子证照是指由各单位依法出具的、具有法律效力的各类证照、证明、批文、鉴定报告、办事结果等文件,比如有身份证、结婚证、银行还款流水证明、营业执照等。传统的OFD(Open Fixed-layout Document)电子证照生成方法是通过设置证照模板文件,在获取业务数据后将业务数据与证照模板文件进行匹配,匹配到对应证照模板文件后对证照模板文件进行解析,将解析后数据与业务数据结合,得到排版后的数据,将排版后的数据写入OFD文件结构的内容描述文件中,根据OFD文件结构的内容描述文件生成电子证照。但这种方式在每次生成电子证照时都需要重新解析该证照模板,即使是同一类型即底图一样的电子证照,每一个证照模板中都保存了证照底图,导致占用的存储空间非常大,并且,OFD文件结构中的各文件都保存在本地目录中,最终对该目录中的文件进行ZIP打包封装成电子证照,因此会导致磁盘读写次数较多、读写数据量比较大,最终导致整体生成电子证照的速度较慢。
发明内容
为至少在一定程度上克服传统生成电子证照的方法存在占用的存储空间较大、磁盘读写次数较多、读写数据量比较大以及整体生成电子证照的速度较慢的问题,本申请提供一种电子证照生成方法及装置。
第一方面,本申请提供一种电子证照生成方法,包括:
对预设电子证照模板进行解析得到中间文件,所述中间文件以数据流形式保存在内存中,所述中间文件包括预设电子证照模板对应的数据项名称和图元对象属性信息;
获取业务元数据,对所述业务元数据进行解析以获取所述数据项名称对应的数据内容;
将所述数据内容根据所述图元对象属性信息进行排版得到页面内容描述文件;
将所述页面内容描述文件添加到所述中间文件中生成电子证照文件。
进一步的,所述对预设电子证照模板进行解析得到中间文件,包括:
对预设电子证照模板进行解析得到可变照面元数据和不可变照面元数据,所述可变照面元数据包括可变文字、可变照片和可变表格内容中的至少一种,所述不可变照面元数据包括证照底图、照面固定文字和固定表格中的至少一种;
将所述不可变元数据项保存在模板页描述文件中;
将所述可变元数据项保存在指定页面的内容描述文件中;
根据所述模板页描述文件和所述指定页面的内容描述文件得到中间文件。
进一步的,所述模板页描述文件中还包括:
文字对象,所述文字对象用于描述所述不可变元数据项中的文字信息,所述文字对象包括文本框的外接矩形、图元变换矩阵、文字对象ID和字体和字号信息中的至少一种;
图像对象,所述图像对象用于描述所述不可变元数据项中的图像信息,所述图像对象包括图像的外接矩形、图元变换矩阵、图像对象ID和资源ID中的至少一种;
图形对象,所述图形对象用于描述所述不可变元数据项中的图形信息,所述图形对象包括图形对象的外接矩形、图元变换矩阵、是否勾边、勾边颜色、是否填充、图形填充规则和填充颜色中的至少一种。
进一步的,所述预设电子证照模板对应的数据项名称,包括:
自定义标引数据项名称和与证照照面样式元数据名称,所述自定义标引数据项名称与所述证照照面样式元数据名称一致;
自定义标引数据项对应的标引ID为页面内容描述文件中对应的图元对象ID;
所述对所述业务元数据进行解析以获取所述数据项名称对应的数据内容,包括:
将业务元数据解析成证照元数据名称和数据内容,将所述证照元数据名称和数据内容以键值对的数组结构进行存储,其中所述证照元数据名称与所述证照照面样式元数据名称相对应;
根据所述键值对将所述证照元数据名称对应的数据内容作为所述数据项名称对应的数据内容。
进一步的,所述将所述数据内容根据所述图元对象属性信息进行排版得到页面内容描述文件,包括:
根据对应的图元对象属性,选择相应的字体、字号和显示区域信息对业务元数据的数据内容进行排版;
根据OFD文件标准,将排版后的图元信息保存在所述指定页面的页面描述文件中。
进一步的,所述根据对应的图元对象属性,选择相应的字体、字号和显示区域信息对业务元数据的数据内容进行排版,包括:
当元数据内容为文字图元时,根据文字属性,如字体、字号与显示区域外接矩形信息,计算所需行数;
根据计算出的所需行数与文字字号计算得出需要的显示高度;
若计算出所需的显示高度大于显示区域的高度,将字号缩小预设像素后重新计算,直到文字能够全部显示。
进一步的,所述将所述页面内容描述文件添加到所述中间文件中生成电子证照文件,包括:
使用Deflate算法对包含排版后的图元信息的页面内容描述文件进行压缩;
将压缩后的页面内容描述文件添加至中间文件中;
根据所述中间文件的模板页描述文件和包含排版后的图元信息的指定页面的内容描述文件生成有底图电子证照文件或无底图电子证照文件。
进一步的,所述使用Deflate算法对包含排版后的图元信息的页面内容描述文件进行压缩,包括:
生成对应页面的页面内容描述压缩文件数据并获取页面内容描述压缩文件数据的长度;
根据ZIP格式标准,将文件头标识、压缩方式、文件修改时间、文件压缩前大小、文件压缩后大小、文件名长度和文件名信息按顺序拼接生成文件头数据;
从中间文件中的结尾反向查找中央目录结束标识,获取中央目录偏移位置;
将中间文件从中央目录偏移位置处进行拆分,得到中间文件的文件数据部分和中间文件的中央目录部分;
根据ZIP格式标准,将中央目录标识、文件压缩后大小、文件压缩前大小、文件名长度、文件头偏移位置、文件名信息按顺序拼接生成压缩数据的中央目录数据;
按照中间文件数据、文件头数据、页面内容描述文件压缩数据、压缩数据的中央目录数据和中间文件的中央目录进行顺序拼接;
修改中央目录参数信息完成文件压缩。
进一步的,还包括:
在阅读或打印电子证照时,可将证照底图添加到电子证照文件中;
或,
使用电子证照专用阅读器,使用阅读器内嵌的各类型证照的底图文件进行渲染得到包含底图的电子证照;
或,
将证照底图文件摘要写入到OFD文档结构容器对应的签名文件进行电子签章完成不含底图的OFD电子证照文件的电子签章。
第二方面,本申请提供一种电子证照生成装置,包括:
第一解析模块,用于对预设电子证照模板进行解析得到中间文件,所述中间文件以数据流形式保存在内存中,所述中间文件包括预设电子证照模板对应的数据项名称和图元对象属性信息;
第二解析模块,用于获取业务元数据,对所述业务元数据进行解析以获取所述数据项名称对应的数据内容;
排版模块,用于将所述数据内容根据所述图元对象属性信息进行排版得到页面内容描述文件;
生成模块,用于将所述页面内容描述文件添加到所述中间文件中生成电子证照文件。
本申请的实施例提供的技术方案可以包括以下有益效果:
本发明实施例提供的电子证照生成方法及装置,电子证照生成方法包括对预设电子证照模板进行解析得到中间文件,中间文件以数据流形式保存在内存中,中间文件包括预设电子证照模板对应的数据项名称和图元对象属性信息;获取业务元数据,对业务元数据进行解析以获取数据项名称对应的数据内容;将数据内容根据图元对象属性信息进行排版得到页面内容描述文件;将页面内容描述文件添加到中间文件中生成电子证照文件,只需对相同类型的证照模板文件解析一次保留中间文件,通过中间文件重复生成该类型的电子证照文件,减少占用空间,并且在内存中解析、处理,由于不需要多次读写磁盘,不仅可以提升生成电子证照的速度,还可以保证电子证照文件的生成过程的安全性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请一个实施例提供的一种电子证照生成方法的流程图。
图2为本申请另一个实施例提供的一种电子证照生成方法的流程图。
图3~图8为本申请一个实施例提供的一种电子证照生成过程中OFD文件结构图。
图9为本申请一个实施例提供的一种电子证照生成装置的功能结构图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将对本申请的技术方案进行详细的描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本申请所保护的范围。
图1为本申请一个实施例提供的电子证照生成方法的流程图,如图1所示,该电子证照生成方法,包括:
S11:对预设电子证照模板进行解析得到中间文件,中间文件以数据流形式保存在内存中,中间文件包括预设电子证照模板对应的数据项名称和图元对象属性信息;
S12:获取业务元数据,对业务元数据进行解析以获取数据项名称对应的数据内容;
S13:将数据内容根据所述图元对象属性信息进行排版得到页面内容描述文件;
S14:将页面内容描述文件添加到中间文件中生成电子证照文件。
传统的OFD电子证照生成方法是通过设置证照模板文件,在获取业务数据后将业务数据与证照模板文件进行匹配,匹配到对应证照模板文件后对证照模板文件进行解析,将解析后数据与业务数据结合,得到排版后的数据,将排版后的数据写入OFD文件结构的内容描述文件中,根据OFD文件结构的内容描述文件生成电子证照。但这种方式在每次生成电子证照时都需要重新解析该证照模板,即使是同一类型即底图一样的电子证照,每一个证照模板中都保存了证照底图,导致占用的存储空间非常大,并且,OFD文件结构中的各文件都保存在本地目录中,最终对该目录中的文件进行ZIP打包封装成电子证照,因此会导致磁盘读写次数较多、读写数据量比较大,最终导致整体生成电子证照的速度较慢。
本实施例中,电子证照生成方法包括对预设电子证照模板进行解析得到中间文件,中间文件以数据流形式保存在内存中,中间文件包括预设电子证照模板对应的数据项名称和图元对象属性信息;获取业务元数据,对业务元数据进行解析以获取所述数据项名称对应的数据内容;将数据内容根据所述图元对象属性信息进行排版得到页面内容描述文件;将页面内容描述文件添加到中间文件中生成电子证照文件,只需对相同类型的证照模板文件解析一次,即可重复生成该类型的电子证照文件,减少占用空间,并且所有文件均在内存中解析、处理,由于不需要多次读写磁盘,不仅可以提升生成电子证照的速度,还可以保证电子证照文件的生成过程的安全性。
图2为本申请另一个实施例提供的电子证照生成方法的流程图,如图2所示,该电子证照生成方法,包括:
S201:对预设电子证照模板进行解析得到可变照面元数据和不可变照面元数据;
一些实施例中,可变照面元数据包括但不限于可变文字、可变照片和可变表格内容中等;
一些实施例中,不可变照面元数据包括但不限于证照底图、照面固定文字和固定表格中等;
S202:将不可变元数据项保存在模板页描述文件中;
S203:将可变元数据项保存在指定页面的内容描述文件中;
在内存中生成OFD电子证照模板中间文件,OFD文档结构容器中所需生成的文件,至少包括:
主入口文件、文档目录、页目录、资源文件、模板目录、模板页文件、自定义标引文件。
一些实施例中,模板页描述文件中还包括:
文字对象,文字对象用于描述所述不可变元数据项中的文字信息,所述文字对象包括文本框的外接矩形、图元变换矩阵、文字对象ID和字体和字号信息中等;
图像对象,图像对象用于描述所述不可变元数据项中的图像信息,所述图像对象包括图像的外接矩形、图元变换矩阵、图像对象ID和资源ID中等;
图形对象,图形对象用于描述所述不可变元数据项中的图形信息,所述图形对象包括图形对象的外接矩形、图元变换矩阵、是否勾边、勾边颜色、是否填充、图形填充规则和填充颜色等。
在指定页面内容描述文件中,描述电子证照样式文件中定义的可变照面元数据,得到可变图元对象的属性。
自定义标引文件各数据项名称可取值为证照样式可变元数据项的名称,并标示引用上述图元对象的ID信息。
S204:根据模板页描述文件和指定页面的内容描述文件得到中间文件。
本实施例中,中间文件以数据流形式保存在内存中,中间文件包括预设电子证照模板对应的数据项名称和图元对象属性信息;
预设电子证照模板对应的数据项名称,包括:
自定义标引数据项名称和与证照照面样式元数据名称,所述自定义标引数据项名称与所述证照照面样式元数据名称一致;
自定义标引数据项对应的标引ID为页面内容描述文件中对应的图元对象ID。
解析电子证照样式模板文件,根据此证照样式模板文件中描述的底图信息、各证照样式元数据项名称、外接矩形、位置大小等信息,在内存中生成OFD电子证照模板中间文件。
上述OFD电子证照模板中间文件的文档结构容器中,在OFD文档结构容器中的“模板页”文件中描述电子证照样式模板文件中不可变图元对象(如底图、固定文字、固定表格等);在指定页面的内容描述文件中描述可变图元对象(如照片、可变文字、表格内容等业务系统传入的证照元数据),但该指定页面的内容描述文件并不打包到OFD文档结构容器的指定页目录中;上述“模板页”文件包含了证照底图描述信息但证照底图图像数据并不打包到OFD文档结构容器资源目录中;OFD文档结构容器包含了自定义标引数据文件,且证照照面元数据名称对应自定义标引的数据项名称。
S205:获取业务元数据,将业务元数据解析成证照元数据名称和数据内容,将证照元数据名称和数据内容以键值对的数组结构进行存储,其中证照元数据名称与证照照面样式元数据名称相对应;
一些实施例中,业务元数据是业务系统传入的。
S206:根据键值对将证照元数据名称对应的数据内容作为数据项名称对应的数据内容;
S207:根据对应的图元对象属性,选择相应的字体、字号和显示区域信息对业务元数据的数据内容进行排版;
一些实施例中,根据对应的图元对象属性,选择相应的字体、字号和显示区域信息对业务元数据的数据内容进行排版,包括:
S2071:当元数据内容为文字图元时,根据文字属性,如字体、字号与显示区域外接矩形信息,计算所需行数;
S2072:根据计算出的所需行数与文字字号计算得出需要的显示高度;
S2073:若计算出所需的显示高度大于显示区域的高度,将字号缩小预设像素后重新计算,直到文字能够全部显示。
例如,计算所需行数nline;nline=(wf×ntext)/wshow,其中nline为显示区域中排列文字所需行数,wf为文字字号,ntext为文字内容的长度,wshow为显示区域的宽度;
根据计算出的所需行数与文字字号计算得出需要的显示高度h;
h=hf×nline
h为使用当前字号排列时所需得显示高度,hf为文字字号,nline为计算得出得行数;
若计算出所需的显示高度大于显示区域的高度,说明使用当前字号无法在显示区域中排列所有文字。将字号缩小1像素后重新计算,直到文字能够全部显示;
生成新的OFD指定页面的内容描述文件流。将排版后的文字描述信息,包括文字内容、字体、字号、颜色、显示区域和文字在显示区域中的偏移等信息,按照OFD文字对象描述语言形成新的页面描述文件流。
S208:根据OFD文件标准,将排版后的图元信息保存在指定页面的页面描述文件中;
S209:使用Deflate算法对包含排版后的图元信息的页面内容描述文件进行压缩;
本实施例中,使用Deflate算法对包含排版后的图元信息的页面内容描述文件进行压缩,包括:
S2091:生成对应页面的页面内容描述压缩文件数据并获取页面内容描述压缩文件数据的长度;
S2092:根据ZIP格式标准,将文件头标识、压缩方式、文件修改时间、文件压缩前大小、文件压缩后大小、文件名长度和文件名信息按顺序拼接生成文件头数据;
S2093:从中间文件中的结尾反向查找中央目录结束标识,获取中央目录偏移位置;
S2094:将中间文件从中央目录偏移位置处进行拆分,得到中间文件的文件数据部分和中间文件的中央目录部分;
S209:根据ZIP格式标准,将中央目录标识、文件压缩后大小、文件压缩前大小、文件名长度、文件头偏移位置、文件名信息按顺序拼接生成压缩数据的中央目录数据;
S2095:按照中间文件数据、文件头数据、页面内容描述文件压缩数据、压缩数据的中央目录数据和中间文件的中央目录进行顺序拼接;
S2096:修改中央目录参数信息完成文件压缩。
添加页面内容描述文件流到OFD电子证照模板中间文件流。使用直接修改内存中OFD文件流的方法添加,根据ZIP格式标准生成相应的文件数据,将文件数据添加到模板文件流中并修改相关ZIP文件属性。避免使用解压OFD电子证照模板中间文件流,添加文件后再压缩的方式而出现消耗大量时间的问题。
使用Deflate算法压缩页面内容描述文件流,生成压缩文件数据Datafile并获取压缩后数据长度ncompress;
根据ZIP格式标准,生成页面内容描述文件压缩数据文件头信息。将文件头标识、压缩方式、文件修改时间、文件压缩前大小、文件压缩后大小、文件名长度和文件名等信息按顺序拼接生成文件头数据Datahaed;
Datahead=Dataheadsign+nmethod+nuncompress+ncompress+nname+Dataname
Datahaed为拼接后的头文件数据,Dataheadsign文件头标识为固定值0x04034b50,nmethod压缩方式为8代表使用Deflate算法压缩,nuncompress为压缩前文件数据长度,ncompress为压缩后的文件数据长度,nname为文件名长度,Dataname为文件名;
从OFD电子证照模板中间文件流中的结尾反向查找中央目录结束标识,获取中央目录偏移位置noffset,将证照模板文件流从中央目录偏移位置处拆分,拆分为证照模板文件的文件数据部分Datasrcdir和证照模板文件的中央目录部分Datasrcfile;
根据ZIP格式标准,生成页面内容描述文件压缩数据的中央目录信息。将中央目录标识、文件压缩后大小、文件压缩前大小、文件名长度、文件头偏移位置、文件名等信息按顺序拼接为该压缩数据的中央目录数据;
Datadir=Datadirsign+nuncompress+ncompress+nname+noffset+Dataname
Datadir为拼接后的中央目录数据,Datadirsign中央目录标识为固定值0x02014b50,nuncompress为压缩前文件数据长度,ncompress为压缩后的文件数据长度,nname为文件名长度,Dataname为文件名,noffset为页面内容描述文件压缩数据中的文件头偏移位置,即为OFD电子证照模板中间文件流中的中央目录偏移;
S210:将压缩后的页面内容描述文件添加至中间文件中,包括:
按照原OFD电子证照模板中间文件数据、页面内容描述文件压缩数据的文件头数据、页面内容描述文件压缩数据、页面内容描述文件压缩数据的中央目录数据和原OFD电子证照模板中间文件数据的中央目录数据的顺序拼接为OFD电子证照文件流Dataresult;
Dataresult=Datasrcfile+Datahead+Datafile+Dataair+Datasrcdir
Dataresult为生成的OFD电子证照文件流,Datasrcfile为OFD电子证照模板中间文件数据部分,Datahead为页面内容描述文件压缩数据的文件头数据,Datadir为页面内容描述文件压缩后的文件数据Datasrcdir为页面内容描述文件压缩数据的中央目录信息,Datafile为OFD电子证照模板中间文件的中央目录数据;
修改目录结束信息中的中央目录起始偏移,修改为原中央目录起始偏移加新文件的文件头数据和压缩数据的长度;
修改目录结束信息中的中央目录总数和该磁盘上中央目录数量,修改为原中央目录数加1;
修改目录结束信息中的中央目录总大小,修改为原中央目录总大小加新文件数据中的中央目录数据长度。
如该OFD证照文件有多页内容描述文件需要写入,重复上述过程即可。
使用将页面内容描述文件压缩数据添加到OFD电子证照模板中间文件流的中央目录偏移处的方法,同时实现了文件数据部分的合并和中央目录信息部分的合并。不需要拆分OFD电子证照模板中间文件流中的中央目录数据与目录结束数据,减少了文件操作,提高了效率;
S211:根据中间文件的模板页描述文件和包含排版后的图元信息的指定页面的内容描述文件生成有底图电子证照文件或无底图电子证照文件。
如需带底图生成电子证照,此处可将证照底图文件流添加到OFD电子证照模板中间文件中。
如不含证照底图的OFD电子证照文件,可以减小电子证照文件存储空间;仅需生成新的指定页面的内容描述文件,压缩后添加到内存拷贝的OFD电子证照模板中间文件中,减小了文件生成及处理时间;内存中处理所有文件流,减小了磁盘读写次数,最终提升了电子证照文件整体生成的速度。
一些实施例中,还包括:
在阅读或打印电子证照时,可将证照底图添加到电子证照文件中;
或,
使用电子证照专用阅读器,使用阅读器内嵌的各类型证照的底图文件进行渲染得到包含底图的电子证照;
或,
将证照底图文件摘要写入到OFD文档结构容器对应的签名文件进行电子签章完成不含底图的OFD电子证照文件的电子签章。
在使用时,如需对OFD电子证照进行批量电子签章,只需将该类证照底图文件摘要写入到OFD文档结构容器对应的签名文件中再签章。阅读或含底图打印时,只需要将该类证照底图文件添加到OFD文件的资源文件目录中,或者使用OFD电子证照专用阅读器打开不包含底图的OFD电子证照文件,阅读器在显示OFD电子证照文件时,自动将阅读器内置的相应证照底图渲染到页面底层,保证预览和打印的完整性。
以身份证电子证照文件生成过程为例,身份证电子证照文件主要由底图、文字内容和身份证照片构成。快速生成OFD电子证照方法包括:
步骤1:解析身份证电子证照样式模板文件,生成OFD电子证照模板中间文件,并记录证照照面元数据名称、页面内容描述文件中图元对象之间的对应关系。
身份证电子证照样式模板文件中描述了可变图元对象与不可变图元对象,并且描述了每个对象的显示信息(如显示区域、字体、元数据名称和颜色等);
上述生成OFD电子证照模板中间文件中,根据OFD文档标准生成一个空白的OFD文件作为电子证照模板中间文件,该文件中只包含基础的OFD文件结构,如图3所示。
解析身份证电子证照样式模板文件,将模板文件中不可变的图元对象(如身份证底图,“姓名”、“性别”文字等)根据OFD文档标准生成为模板页文件,将该模板页文件放在OFD模板中间文件中的“\
Doc_0\Tpls\Tpl_0\Content.xml”位置,并建立相关文件夹,如图4所示;
解析身份证电子证照样式模板文件,将证照文件中可变的图元对象(如身份证照片,姓名内容,性别内容等)根据OFD文档标准生成为页面内容描述文件,该文件不添加到OFD模板中间文件中。当模板中包含图片时(如身份证照片),记录在资源文件中,使用生成的资源ID,但文件不放在OFD模板中间文件中。根据身份证电子证照样式模板文件与页面内容描述文件中的信息,记录证照照面元数据名称与页面内容描述文件中图元对象之间的对应关系。
根据证照照面元数据名称与页面内容描述文件中图元对象之间的对应关系,以证照照面元数据名称作为自定义标引项名称,图元对象ID作为自定义标引项内容,根据OFD文档标准生成自定义标引文件。该自定义标引文件放在OFD模板中间文件的“\Doc_0\CustomTags\Tag_OfficialDocument.xml”位置,如图5所示;并创建自定义标引文件根目录,记录该自定义标引文件位置,该自定义标引根目录文件放在OFD模板中间文件的“\Doc_0\CustomTags.xml”位置,如图6所示;
在身份证电子证照模板中间文件流中的资源文件中添加图片资源信息,其中包含了身份证底图与身份证照片的资源ID与文件名。资源ID用于在模板页文件和页面内容描述文件中使用,文件名用于生成身份证证照文件时,添加图片时使用。
当前OFD模板中间文件流即为包含自定义标引文件和模板页文件,但不含页面内容描述文件和证照底图的OFD电子证照模板中间文件流。
步骤2:解析传入的身份证证照可变元数据信息,生成身份证页面内容描述文件流。
身份证证照可变元数据信息主要以元数据键值对构成,如图7所示;
解析证照元数据键值对,获取证照元数据项名称与证照元数据内容。根据第一步中获取的证照照面元数据名称和页面内容描述文件中图元对象之间的对应关系,使用图元对象属性对证照元数据内容自动排版。根据对应的图元对象属性中使用的字体、字号和显示区域等信息,排版证照元数据内容。并根据OFD文档标准生成页面内容描述文件。身份证照片对应的图元对象不需要做修改。
步骤3,将页面内容描述文件与图片文件添加到OFD电子证照模板中间文件,生成身份证电子证照文件。
拷贝OFD电子证照模板中间文件流作为身份证电子证照文件流,不直接在原模板文件流中做更改。
根据ZIP文件标准,压缩页面内容描述文件与身份证照片文件,并添加到身份证电子证照文件流中。页面描述文件放在“\Doc_0\Pages\Page_0\Content.xml”位置。
根据资源文件中已记录的资源位置信息,添加身份证照片文件与身份证底图文件,图片资源文件放在身份证电子证照文件的“\Doc_0\Res\”目录中。身份证底图文件根据实际情况判断是否添加到身份证电子证照文件流中,如图8所示,此时的身份证电子证照文件流已经是完整的身份证电子证照文件流了。
本实施例中,可在证照页面内容描述信息中只包含证照底图的描述信息,但在OFD文档资源中暂不包含证照底图文件数据,有效减小电子证照文件存储空间,提升电子证照生成速度;OFD电子证照专用阅读器在预览和打印该证照时,可以根据证照类型自动补充底图;在电子签章时,只需将证照底图的文件摘要写入到OFD文档结构容器对应的签名文件中再签章;在电子证照文件传输到其它异构系统时,只需将该证照底图添加到OFD文档结构容器对应的资源文件目录中即可,从而快速生成海量OFD电子证照文件。
本发明实施例提供一种电子证照生成装置,如图9所示的功能结构图,该电子证照生成装置包括:
第一解析模块91,用于对预设电子证照模板进行解析得到中间文件,中间文件以数据流形式保存在内存中,中间文件包括预设电子证照模板对应的数据项名称和图元对象属性信息;
第二解析模块92,用于获取业务元数据,对业务元数据进行解析以获取所述数据项名称对应的数据内容;
排版模块93,用于将数据内容根据所述图元对象属性信息进行排版得到页面内容描述文件;
生成模块94,用于将页面内容描述文件添加到中间文件中生成电子证照文件。
一些实施例中,第一解析模块91被配置为:
解析电子证照样式模板文件,获取到证照底图大小和位置、证照照面元数据的名称、大小位置以及占用版面大小,根据这些内容,生成包含自定义标引文件、模板页文件以及不含指定页面内容描述文件的OFD电子证照模板中间文件流,OFD电子证照模板中间文件以数据流形式保存在内存中,OFD电子证照模板中间文件不落地。其中自定义标引数据项名称与证照照面元数据数据项名称一致,各个自定义标引数据项对应的标引内容ID为页面内容描述文件中对应的图元对象的ID。
一些实施例中,还包括管理模块,用于管理内存中已加载的OFD电子证照模板信息,对证照模板信息进行增、删、改、查等操作。证照模板信息包括证照模板ID、OFD电子证照模板原文件流、自定义标引数据项信息、图元对象信息、底图文件流等,以上各模板信息均以数据流形式保存在内存中,不以文件形式保存在本地。
OFD电子证照文件数据流可以直接发送到电子证照库,使得证照文件不落地,保证了电子证照的生成过程的安全性和保密性。OFD电子证照文件中可以不保存证照底图文件,使得证照文件占用空间小。外部系统在使用OFD电子证照文件时,由排版模块103将底图插入到OFD电子证照文件资源目录中;也可以在预览或打印OFD电子证照文件时,通过专用的OFD电子证照文件阅读器打开,在显示OFD电子证照文件时,自动将阅读器内置的相应证照底图渲染到页面底层,保证预览的完整性。
生成模块94用于压缩添加页面内容描述文件流到OFD电子证照模板中间文件中,生成不含证照底图的OFD电子证照文件;根据使用情景不同,可将证照底图文件添加到OFD电子证照文件中,形成完整的OFD电子证照文件。
本发明可以根据证照样式自动排版,高速生成海量电子证照文件。同时使用按需添加证照底图的方式,减少了电子证照文件所需的存储空间,并进一步提高了生成效率。
第二解析模块92获取电子证照样式元数据名称、证照照面元数据项显示属性(如证照底图位置及显示大小、最大外接矩形、字体、字号、颜色等)。根据上述信息,生成OFD电子证照模板中间文件流,其中证照样式中不可变元数据项以模板页的形式保存,可变元数据项在指定页面的内容描述文件中保存;其中自定义标引数据项名称与证照样式元数据名称一致,自定义标引数据项对应的标引ID为页面内容描述文件中对应的图元对象ID。但页面内容描述文件并不打包到OFD电子证照模板中间文件中。
生成模块94还用于根据管理模块提供的OFD电子证照模板中间文件、自定义标引信息、图元对象、证照元数据数据项名称对应关系,对证照元数据内容使用对应的图元对象属性自动排版,排版后的描述信息形成页面内容描述文件流。页面内容描述文件流压缩后,将其添加到OFD电子证照模板中间文件中,生成OFD电子证照文件。
具体的,生成OFD电子证照文件装置的具体流程包括:
步骤1:系统启动后加载电子证照样式模板文件,或在生成OFD电子证照过程中加载新的证照样式模板文件。根据证照样式信息,生成对应的OFD电子证照模板中间文件;
步骤2:证照生成控制模块解析某类型的证照元数据信息,解析传入的证照元数据键值对,包括:
解析证照元数据键值对,获取证照元数据项名称与证照元数据内容,其中证照元数据项名称与证照照面元数据数据项名称对应关系保持一致。
步骤3:OFD文件处理模块添加压缩的页面内容描述文件或底图文件到OFD电子证照模板中间文件,生成OFD电子证照文件。
本实施例中,通过第一解析模块对预设电子证照模板进行解析得到中间文件,中间文件以数据流形式保存在内存中,中间文件包括预设电子证照模板对应的数据项名称和图元对象属性信息;第二解析模块获取业务元数据,对业务元数据进行解析以获取所述数据项名称对应的数据内容;排版模块将数据内容根据所述图元对象属性信息进行排版得到页面内容描述文件;生成模块将页面内容描述文件添加到所述中间文件中生成电子证照文件,可重复生成某类型的电子证照文件,减少占用空间,并且所有文件均在内存中解析、处理,由于不需要多次读写磁盘,不仅可以提升生成电子证照的速度,还可以保证电子证照文件的生成过程的安全性。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
需要说明的是,本发明不局限于上述最佳实施方式,本领域技术人员在本发明的启示下都可得出其他各种形式的产品,但不论在其形状或结构上作任何变化,凡是具有与本申请相同或相近似的技术方案,均落在本发明的保护范围之内。
Claims (10)
1.一种电子证照生成方法,其特征在于,包括:
对预设电子证照模板进行解析得到中间文件,所述中间文件以数据流形式保存在内存中,所述中间文件包括预设电子证照模板对应的数据项名称和图元对象属性信息;
获取业务元数据,对所述业务元数据进行解析以获取所述数据项名称对应的数据内容;
将所述数据内容根据所述图元对象属性信息进行排版得到页面内容描述文件;
将所述页面内容描述文件添加到所述中间文件中生成电子证照文件。
2.根据权利要求1所述的电子证照生成方法,其特征在于,所述对预设电子证照模板进行解析得到中间文件,包括:
对预设电子证照模板进行解析得到可变照面元数据和不可变照面元数据,所述可变照面元数据包括可变文字、可变照片和可变表格内容中的至少一种,所述不可变照面元数据包括证照底图、照面固定文字和固定表格中的至少一种;
将所述不可变元数据项保存在模板页描述文件中;
将所述可变元数据项保存在指定页面的内容描述文件中;
根据所述模板页描述文件和所述指定页面的内容描述文件得到中间文件。
3.根据权利要求2所述的电子证照生成方法,其特征在于,所述模板页描述文件中还包括:
文字对象,所述文字对象用于描述所述不可变元数据项中的文字信息,所述文字对象包括文本框的外接矩形、图元变换矩阵、文字对象ID和字体和字号信息中的至少一种;
图像对象,所述图像对象用于描述所述不可变元数据项中的图像信息,所述图像对象包括图像的外接矩形、图元变换矩阵、图像对象ID和资源ID中的至少一种;
图形对象,所述图形对象用于描述所述不可变元数据项中的图形信息,所述图形对象包括图形对象的外接矩形、图元变换矩阵、是否勾边、勾边颜色、是否填充、图形填充规则和填充颜色中的至少一种。
4.根据权利要求1所述的电子证照生成方法,其特征在于,所述预设电子证照模板对应的数据项名称,包括:
自定义标引数据项名称和与证照照面样式元数据名称,所述自定义标引数据项名称与所述证照照面样式元数据名称一致;
自定义标引数据项对应的标引ID为页面内容描述文件中对应的图元对象ID;
所述对所述业务元数据进行解析以获取所述数据项名称对应的数据内容,包括:
将业务元数据解析成证照元数据名称和数据内容,将所述证照元数据名称和数据内容以键值对的数组结构进行存储,其中所述证照元数据名称与所述证照照面样式元数据名称相对应;
根据所述键值对将所述证照元数据名称对应的数据内容作为所述数据项名称对应的数据内容。
5.根据权利要求2所述的电子证照生成方法,其特征在于,所述将所述数据内容根据所述图元对象属性信息进行排版得到页面内容描述文件,包括:
根据对应的图元对象属性,选择相应的字体、字号和显示区域信息对业务元数据的数据内容进行排版;
根据OFD文件标准,将排版后的图元信息保存在所述指定页面的页面描述文件中。
6.根据权利要求5所述的电子证照生成方法,其特征在于,所述根据对应的图元对象属性,选择相应的字体、字号和显示区域信息对业务元数据的数据内容进行排版,包括:
当元数据内容为文字图元时,根据文字属性,如字体、字号与显示区域外接矩形信息,计算所需行数;
根据计算出的所需行数与文字字号计算得出需要的显示高度;
若计算出所需的显示高度大于显示区域的高度,将字号缩小预设像素后重新计算,直到文字能够全部显示。
7.根据权利要求5所述的电子证照生成方法,其特征在于,所述将所述页面内容描述文件添加到所述中间文件中生成电子证照文件,包括:
使用Deflate算法对包含排版后的图元信息的页面内容描述文件进行压缩;
将压缩后的页面内容描述文件添加至中间文件中;
根据所述中间文件的模板页描述文件和包含排版后的图元信息的指定页面的内容描述文件生成有底图电子证照文件或无底图电子证照文件。
8.根据权利要求7所述的电子证照生成方法,其特征在于,所述使用Deflate算法对包含排版后的图元信息的页面内容描述文件进行压缩,包括:
生成对应页面的页面内容描述压缩文件数据并获取页面内容描述压缩文件数据的长度;
根据ZIP格式标准,将文件头标识、压缩方式、文件修改时间、文件压缩前大小、文件压缩后大小、文件名长度和文件名信息按顺序拼接生成文件头数据;
从中间文件中的结尾反向查找中央目录结束标识,获取中央目录偏移位置;
将中间文件从中央目录偏移位置处进行拆分,得到中间文件的文件数据部分和中间文件的中央目录部分;
根据ZIP格式标准,将中央目录标识、文件压缩后大小、文件压缩前大小、文件名长度、文件头偏移位置、文件名信息按顺序拼接生成压缩数据的中央目录数据;
按照中间文件数据、文件头数据、页面内容描述文件压缩数据、压缩数据的中央目录数据和中间文件的中央目录进行顺序拼接;
修改中央目录参数信息完成文件压缩。
9.根据权利要求1所述的电子证照生成方法,其特征在于,还包括:
在阅读或打印电子证照时,可将证照底图添加到电子证照文件中;
或,
使用电子证照专用阅读器,使用阅读器内嵌的各类型证照的底图文件进行渲染得到包含底图的电子证照;
或,
将证照底图文件摘要写入到OFD文档结构容器对应的签名文件进行电子签章完成不含底图的OFD电子证照文件的电子签章。
10.一种电子证照生成装置,其特征在于,包括:
第一解析模块,用于对预设电子证照模板进行解析得到中间文件,所述中间文件以数据流形式保存在内存中,所述中间文件包括预设电子证照模板对应的数据项名称和图元对象属性信息;
第二解析模块,用于获取业务元数据,对所述业务元数据进行解析以获取所述数据项名称对应的数据内容;
排版模块,用于将所述数据内容根据所述图元对象属性信息进行排版得到页面内容描述文件;
生成模块,用于将所述页面内容描述文件添加到所述中间文件中生成电子证照文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210553027.8A CN114998464A (zh) | 2022-05-20 | 2022-05-20 | 电子证照生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210553027.8A CN114998464A (zh) | 2022-05-20 | 2022-05-20 | 电子证照生成方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114998464A true CN114998464A (zh) | 2022-09-02 |
Family
ID=83026853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210553027.8A Pending CN114998464A (zh) | 2022-05-20 | 2022-05-20 | 电子证照生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114998464A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115630016A (zh) * | 2022-10-31 | 2023-01-20 | 百望股份有限公司 | 一种根据结构化数据快速生成ofd文件的方法和装置 |
CN116578376A (zh) * | 2023-07-12 | 2023-08-11 | 福昕鲲鹏(北京)信息科技有限公司 | 开放版式文档ofd页面显示方法、装置及设备 |
CN117093831A (zh) * | 2023-10-17 | 2023-11-21 | 太极计算机股份有限公司 | 电子证照构建方法及装置 |
-
2022
- 2022-05-20 CN CN202210553027.8A patent/CN114998464A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115630016A (zh) * | 2022-10-31 | 2023-01-20 | 百望股份有限公司 | 一种根据结构化数据快速生成ofd文件的方法和装置 |
CN116578376A (zh) * | 2023-07-12 | 2023-08-11 | 福昕鲲鹏(北京)信息科技有限公司 | 开放版式文档ofd页面显示方法、装置及设备 |
CN117093831A (zh) * | 2023-10-17 | 2023-11-21 | 太极计算机股份有限公司 | 电子证照构建方法及装置 |
CN117093831B (zh) * | 2023-10-17 | 2024-02-02 | 太极计算机股份有限公司 | 电子证照构建方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114998464A (zh) | 电子证照生成方法及装置 | |
TWI480745B (zh) | 具有超過一個操作模式之資料檔案 | |
JP4338155B2 (ja) | 画像処理装置及びその方法、コンピュータ可読メモリ | |
CN113609820B (zh) | 基于可扩展标记语言文件生成word文件的方法、装置及设备 | |
US7188311B2 (en) | Document processing method and apparatus, and print control method and apparatus | |
US20120017144A1 (en) | Content analysis apparatus and method | |
JP2000306103A (ja) | 情報処理装置及び方法 | |
AU762746B2 (en) | Variable page composition with page elements cut in strips | |
CN111797595A (zh) | 一种基于xml模板生成ofd版式页面的方法和装置 | |
CN113033165B (zh) | 电子表格文件解析方法、装置和计算机可读存储介质 | |
JP2001043239A (ja) | 画像記憶方法及び装置及び記憶媒体 | |
US10970252B2 (en) | Method and apparatus for generating customized digital files with variable data | |
CN116719784A (zh) | 多ofd版式文件弹性聚类组合阅读的装置 | |
US20170344583A1 (en) | Image processing apparatus that performs compression processing of document file and compression method of document file and storage medium | |
CN102132313B (zh) | 具有本机部分和导出部分的内容 | |
CN112035774A (zh) | 网络页面生成方法、装置、计算机设备及可读存储介质 | |
CN114862644A (zh) | 水印删除方法、电子设备及计算机可读存储介质 | |
US8395793B2 (en) | Apparatuses and methods that use a stamp function to register and edit a stamp | |
JP2001256256A (ja) | 電子文書検索装置および電子文書検索方法 | |
JP7447614B2 (ja) | 情報処理装置 | |
US20100141976A1 (en) | Information processing apparatus, information processing method, and storage medium | |
JP3138674B2 (ja) | フォーマット情報生成装置 | |
JP2000076275A (ja) | 画像記憶方法および装置および記憶媒体 | |
CN116206014A (zh) | 图像预览方法、装置、设备及存储介质 | |
US20020001103A1 (en) | Method and device for rearranging an electronic document |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |