一种版式数据流文件转OFD文件的方法与流程

文档序号:29091707发布日期:2022-03-02 03:01阅读:470来源:国知局
一种版式数据流文件转OFD文件的方法与流程
一种版式数据流文件转ofd文件的方法
技术领域
1.本发明涉及计算机技术领域,特别涉及一种版式数据流文件转ofd文件的方法。


背景技术:

2.2016年10月14日世界标准日,国家标准化管理委员会正式批准发布了基于自主技术的国家标准gb/t 33190-2016《电子文件存储与交换格式版式文档》(简称ofd)。ofd,open fixed-layout document的简写,是我国自主可控的电子文件版式文档格式,对应的国际标准就是pdf。ofd版式文件,版面固定、不跑版、所见即所得,可以视为计算机时代的“数字纸张”;是电子文档发布、数字化信息传播和存档的理想文档格式。
3.如何将版式数据流文件转换为ofd文件是一个非常值得研究探讨的问题。


技术实现要素:

4.本发明的目的提供一种版式数据流文件转ofd文件的方法,解决上述现有技术问题中的一个或多个。
5.第一方面,本发明提出一种版式数据流文件转ofd文件的方法,包括:
6.s1、解析版式数据流文件,获取版式数据流文件的页面宽高和页码;
7.s2、分配多个进程用于并发处理获取每一页的版式数据流文件的内容;
8.s3、写入版式数据流文件的页面宽高作为ofd文件的页面宽高;
9.s4、创建ofd对象,将版式数据流文件的内容和页码填充至ofd对象中;
10.s5、将ofd文件的页面宽高和ofd对象中的内容写成xml文件,生成ofd文件的目录;
11.s6、将xml文件与ofd文件的目录打包生成ofd文件。
12.在一些实施方式中,所述版式数据流的内容包括页面对象,页面对象包括页面内容对象、绘制参数以及资源对象,
13.页面内容对象包括文本对象、图形对象、图像对象、文本对象和图像对象对应的位置信息、图形对象对应的类型和点坐标,位置信息包括坐标、宽、高;
14.绘制参数包括粗体、斜体、是否等宽字形、内嵌字形字体、粗细值、线条连接样式、线框、虚线样式、虚线线条重复样式、线端点样式、图像边框水平角半径、图像边框竖直角半径、是否填充、填充颜色、是否勾边、勾边颜色,所述虚线线条重复样式包括虚线宽度和间隔宽度,所述填充颜色和勾边颜色中均包括基本色、底纹填充样式、径向渐变参数、轴向渐变参数以及高洛德渐变参数;
15.资源对象的对象主体包括附件、多媒体文件以及字体。
16.在一些实施方式中,
17.版式数据流文件的总页码数与ofd文件的总页码数对应;
18.版式数据流文件的一页对应一个进程;
19.版式数据流文件的页面与ofd文件的页面一一对应。
20.在一些实施方式中,ofd对象划分为多数组进行存储,多数组包括第一数组、第二
数组以及第三数组,
21.页面内容对象和对应的页码写入存储于第一数组中;
22.绘制参数写入存储于第二数组中;
23.资源对象写入存储于第三数组中。
24.在一些实施方式中,页面内容对象的存放过程为:将页码和页面内容对象分别作为key和value,以《key,value》键值对的形式填充至第一数组中。
25.在一些实施方式中,绘制参数的存放过程为:
26.s3.1.1、判断内容对象是否运用了绘制参数,若运用了绘制参数则进入s3.1.2;
27.s3.1.2、判断第二数组中是否存在与该参数类型相同的绘制参数,若存在不重复添加,若不存在则进入s3.1.3;
28.s3.1.3、生成与该绘制参数对应的id,将id与该绘制参数分别作为key和value,以《key,value》键值对的形式写入第二数组中,同时,将内容对象中对象主体与绘制参数的引用关系中涉及该绘制参数的引用参数修改为该id。
29.在一些实施方式中,资源对象的存放过程为:
30.s3.2.1、判断页面内容对象中是否包括资源对象,若含有资源对象则进入s3.2.2;
31.s3.2.2、识别资源对象,获取资源对象的hash值,判断第三数组中是否存在与该资源对象的hash值相同的资源对象,若存在不重复添加,若不存在则进入s3.2.3;
32.s3.2.3、生成与该资源对象对应的id,将id与该资源对象分别作为key和value,以《key,value》键值对的形式写入第三数组中,同时,将内容对象中对象主体与资源对象的引用关系中涉及该资源对象的引用参数修改为该id。
33.在一些实施方式中,版式数据流文件包括底板和附着层,页面对象还包括位于附着层的签批对象,签批对象包括内容对象、绘制参数以及资源对象,多数组包括绘制数组,绘制数组用于通过json格式写入存储签批对象和签批对象对应的页码,绘制数组、第一数组、第二数组以及第三数组组合形成ofd对象。
34.在一些实施方式中,
35.根据匹配规则将ofd文件的页面宽高和ofd对象中的内容写成xml文件方法为:
36.优先将第一数组、第二数组、第三数组中的内容按规则写入空置的xml文件中形成xml的节点和节点属性,形成底板的xml文件,规则为根据对象类型和对象中的属性预设key和value的规则,形成xml的节点和节点属性,预设一个结构,一个架子,判断有数值(不为“null”)就塞值进去填充,对象类型包括文本对象、图形对象、图像对象;对象中的属性包括文本对象和图像对象对应的坐标、宽、高、图形对象对应的类型和点坐标、绘制参数的引用以及资源引用。
37.然后将绘制数组中的签批对象和签批对象对应的页码写入底板的xml文件中,根据页码关联签批对象和底板的xml文件的内容,形成完整的xml文件,同时将资源对象的对象主体拷贝到ofd标准中的目录结构中。
38.第二方面,本发明提出一种版式数据流文件转ofd文件的系统,包括存储介质和处理器,
39.存储介质用于存储程序代码以及第一方面叙述的版式数据流文件转ofd文件的方法中需要存储的相关数据;
40.处理器用于执行程序代码实现第一方面叙述的版式数据流文件转ofd文件的方法。
41.本发明所述的版式数据流文件转ofd文件的方法的优点为:实现了版式数据流向ofd文件的原版原样转换,利用ofd是一种国家标准文件的优势,使得文件能够更好的在符合国家标准的系统中流转使用,同时将内容对象、绘制参数以及资源对象等内容分成多个数组进行存储,通过引用相应的id进行调用,有效的去除了冗余元素,保证了转换速度,同时版式数据流文件打印原先附着层的意见和文件底板分开的,会导致加载速度慢,打印速度慢,须同时加载好意见和文件底板才能打印,转换后的ofd文件是合成在一个xml里,这样打印和渲染都更快,更高效。
附图说明
42.图1为本发明的一些实施方式中版式数据流文件转ofd文件的方法的流程图;
43.图2为本发明的一些实施方式中解压后的版式数据流文件的目录结构;
44.图3为本发明的一些实施方式中版式数据流文件转换为ofd文件的构层转换示意图。
具体实施方式
45.结合图1至图3所示的内容,本发明的一些实施方式中提出一种版式数据流文件转ofd文件的方法,版式数据流文件包括底板和附着层,版式数据流文件转ofd文件的方法包括:
46.s1、解析版式数据流文件,获取相应的目录,目录如图2所示;
47.s3、获取版式数据流的页面宽高和页码信息文件,页码信息文件中包括页码、页面路径内容与页码的对应关系,读取目录中的content文件中的字段,获取根目录,解析出页码、页面路径内容与页码的对应关系,比如:
48.49.[0050][0051]
其中page为页码,path为页面路径内容,根据path寻找当前页的页面路径内容文件,并生成一个空的数组pagelist;
[0052]
s3、一个page对应一个线程,多线程同时根据path找到page目录下的文件,解析读出版式数据流文件的每一页的页面内容,形成页面对象pageobj,页面对象pageobj包括底板上的绘制参数、资源对象、页面内容对象以及附着层上的签批对象,签批对象包括内容对象、绘制参数以及资源对象,页面内容对象和内容对象均包括对象主体、与对象主体对应的位置信息、对象主体与绘制参数的引用关系、对象主体与资源对象的引用关系,对象主体中包括文字对象textobj、图形对象pathobj、图像对象imageobj,位置信息包括坐标、宽度以及高度,与此同时生成三个数组分别为drawparamlist、reslist以及signlist,drawparamlist用于存放绘制参数,reslist用于存放资源对象,资源对象的对象主体包括附件、多媒体文件以及字体,signlist用于通过json格式存放签批对象;其中
[0053]
页面内容对象的存放过程为:将page和页面内容对象分别作为key和value,以《key,value》键值对的形式填充至数组pagelist中。
[0054]
底板上的绘制参数的存放过程为:
[0055]
s3.1.1、判断内容对象是否运用了绘制参数,若运用了绘制参数则进入s3.1.2,其中绘制参数的类型包括但不仅限于粗体、斜体、是否等宽字形、内嵌字形字体、粗细值、线条连接样式、线框、虚线样式、虚线线条重复样式、线端点样式、图像边框水平角半径、图像边框竖直角半径、是否填充、填充颜色、是否勾边、勾边颜色,所述虚线线条重复样式包括虚线宽度和间隔宽度,所述填充颜色和勾边颜色中均包括基本色、底纹填充样式、径向渐变参数、轴向渐变参数以及高洛德渐变参数;
[0056]
s3.1.2、判断drawparamlist中是否存在与该参数类型相同的绘制参数,若存在不重复添加,若不存在则进入s3.1.3;
[0057]
s3.1.3、生成与该绘制参数对应的id,将id与该绘制参数分别作为key和value,以《key,value》键值对的形式写入drawparamlist中,同时,将内容对象中对象主体与绘制参数的引用关系中涉及该绘制参数的引用参数修改为该id。
[0058]
底板上资源对象的存放过程为:
[0059]
s3.2.1、判断页面内容对象中是否包括资源对象,若含有资源对象则进入s3.2.2,资源对象包括字体文件和资源文件,资源文件包括但不仅限于图形、图片、视频、声音、文字类型的文件或其中任意组合;
[0060]
s3.2.2、识别资源对象,若资源对象为字体则进入s3.2.3,若资源对象为文件则进入s3.2.4;
[0061]
s3.2.3、判断reslist中是否存在与该资源对象的字体名称相同的字体文件,若存在不重复添加,若不存在则进入s3.2.5,比如:字体文件为宋体.ttf,资源对象为楷体.ttf,则不存在相同的字体文件进入s3.2.5;
[0062]
s3.2.4、获取资源对象的hash值,判断reslist中是否存在与该资源对象的hash值相同的资源对象,若存在不重复添加,若不存在则进入s3.2.5;
[0063]
s3.2.5、生成与该资源对象对应的id,将id与该资源对象分别作为key和value,以《key,value》键值对的形式写入reslist中,同时,将内容对象中对象主体与资源对象的引用关系中涉及该资源对象的引用参数修改为该id。
[0064]
s4、通过s3解析出每一页的页面内容对象,循环s5转换每一页的内容对象中的位置信息得到转换后的内容对象,根据页码与页面路径内容的对应关系将页码和转换后的内容对象分别作为key和value,以《key,value》键值对的形式填充至数组pagelist中;
[0065]
s5、将drawparamlist、reslist、pagelist中的内容按规则要求写入空置的xml文件中形成xml的节点和节点属性,形成底板的xml文件,规则为根据对象类型和对象中的属性预设key和value的规则,形成xml的节点和节点属性,对象类型包括文本对象、图形对象、图像对象;对象中的属性包括文本对象和图像对象对应的坐标、宽、高、图形对象对应的类型和点坐标、绘制参数的引用以及资源引用,对应内存中对象的属性除了预设key,value的元素名字、,还有预设一个结构,一个架子,判断有数值不为空(即不为“null”)就塞值进去填充;
[0066]
将绘制数组中的签批对象和签批对象对应的页码写入底板的xml文件中,根据页码关联签批对象和底板的xml文件的内容,形成完整的xml文件,同时将资源对象的对象主体拷贝到ofd标准中的目录结构中;
[0067]
s6、将完整的xml文件和目录结构压缩成后缀为.ofd的文件即可得到所需的ofd文件。
[0068]
s1也可以在s5之前的任一步骤之后执行。
[0069]
其中图形对象的类型包括直线、矩形、贝塞尔曲线、或其中多个的组合形成的任意形状,图形对象对应的点坐标包括起始点的坐标和终点的坐标。
[0070]
解析页面内容的时候其实相当于做了一个json到xml的转换,转换过程中先一个页面生成一个xml框架,然后for循环看页面路径内容里是什么对象,判断如果是文字对象,生成ofd里文字的xml,判断是否有引用,有引用就id引用;如果是图形对象就转成odf对象的xml,判断是否有引用,有引用就id引用;如果是图像对象就转换成对应的xml,判断是否有引用,用id引用资源;因为版式数据流文件可以签批之类,其实签批就是相当于进行矢量线条、图片、多媒体等签批,对应为图形xml或图像xml,声音视频等多媒体也是一些资源的引用。
[0071]
在绘制参数存储过程中涉及的id均从1开始自增长,每当drawparamlist中有新的数据添加时,该数据对应的id为(当前id)+1,当前id为大于等于0的整数;资源对象存储过程中涉及的id也是如此。
[0072]
本发明的一些实施方式中提出一种版式数据流文件转ofd文件的系统,包括存储介质和处理器,
[0073]
存储介质用于存储程序代码以及版式数据流文件转ofd文件的方法执行过程中需要存储的相关数据,比如:drawparamlist、reslist、pagelist、signlist、ofd的xml文件、目录结构等;
[0074]
处理器用于执行程序代码实现上述的版式数据流文件转ofd文件的方法。
[0075]
通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干相似的变形和改进,这些也应视为本发明的保护范围之。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1