一种uot流式文档转换成ofd版式文档的方法

文档序号:971430 发布日期:2020-11-03 浏览:16次 >En<

阅读说明:本技术 一种uot流式文档转换成ofd版式文档的方法 (Method for converting UOT streaming document into OFD format document ) 是由 崔海东 徐海华 于 2020-08-06 设计创作,主要内容包括:本申请公开了一种UOT流式文档转换成OFD版式文档的方法,包括:读取UOT格式的流式文档并解析得到所述UOT格式的流式文档的各项数据;分类汇总所述UOT格式的流式文档的各项数据得到流式文档内存模型;将所述流式文档内存模型转换为版式文档内存模型;依照OFD格式规范将所述版式内存模型写出至磁盘,生成OFD格式的版式文档。该方法能够实现将UOT格式的流式文档转换为OFD格式的版式文档。本申请还公开了一种UOT流式文档转换成OFD版式文档的装置、设备及计算机可读存储介质,均具有上述技术效果。(The application discloses a method for converting UOT streaming documents into OFD format documents, which comprises the following steps: reading a streaming document in UOT format and analyzing to obtain various data of the streaming document in UOT format; classifying and summarizing all data of the UOT format streaming document to obtain a streaming document memory model; converting the streaming document memory model into a format document memory model; writing the format memory model out to a disk according to the OFD format specification to generate a format document of the OFD format. The method can realize the conversion of the UOT format streaming document into the OFD format document. The application also discloses a device, equipment and a computer readable storage medium for converting UOT streaming documents into OFD format documents, which have the technical effects.)

一种UOT流式文档转换成OFD版式文档的方法

技术领域

本申请涉及文件转换技术领域,特别涉及一种UOT流式文档转换成OFD版式文档的方法;还涉及一种UOT流式文档转换成OFD版式文档的装置、设备以及计算机可读存储介质。

背景技术

UOT(Uniform Office Text,中文办公软件文档格式)文档是一种流式格式规范。流式文档可以自动排版、内容易更改、转移过程存在安全隐患,无法满足电子文件长期保存的需求。OFD(Open Fixed Layout Document,开放式版式文档)文档是一种版式格式规范,其文件较小,具有便携性,且呈现效果与设备无关,在各种设备上阅读、打印或印刷时,版面固定、不跑板。另外,OFD文档永久可读可用,不依赖任何特定软件,真正实现文件的长久保存。未来电子公文、电子证照、电子***等都将以OFD版式格式存在,UOT格式的流式文档转换为OFD格式的版式文档的需求将逐步扩大。然而目前缺少相应的转换工具,致使无法将UOT格式的流式文档转换为OFD格式的版式文档。

有鉴于此,如何将UOT格式的流式文档转换为OFD格式的版式文档已成为本领域技术人员亟待解决的技术问题。

发明内容

本申请的目的是提供一种UOT流式文档转换成OFD版式文档的方法,能够实现将UOT格式的流式文档转换为OFD格式的版式文档。本申请的另一个目的是提供一种将UOT格式的流式文档转换为OFD格式的版式文档的装置、设备以及计算机可读存储介质,均具有上述技术效果。

为解决上述技术问题,本申请提供了一种UOT流式文档转换成OFD版式文档的方法,包括:

读取UOT格式的流式文档并解析得到所述UOT格式的流式文档的各项数据;

分类汇总所述UOT格式的流式文档的各项数据得到流式文档内存模型;

将所述流式文档内存模型转换为版式文档内存模型;

依照OFD格式规范将所述版式内存模型写出至磁盘,生成OFD格式的版式文档。

可选的,所述读取UOT格式的流式文档并解析得到所述UOT格式的流式文档的各项数据,包括:

将磁盘中的所述UOT流式文档的物理文件解压到内存中;

解析所述内存中的所述UOT流式文档,并将所述UOT格式的流式文档的各项数据保存到文件流中。

可选的,所述将所述流式文档内存模型转换为版式文档内存模型,包括:

以文档为单位,依据所述流式文档内存模型的各流式内存对象构建文档树结构;

遍历所述文档树结构,并以页为单位,抽取所述流式内存对象中的数据构建版式文档内存模型。

可选的,所述依照OFD格式规范将所述版式内存模型写出至磁盘,生成OFD格式的版式文档,包括:

根据OFD格式的版式文档的规范创建空白的XML文件;

将所述版式文档内存模型的各版式内存对象写出到相应的所述XML文件;

将所述XML文件组织到电子文件物理包中,并进行打包压缩,得到所述OFD格式的版式文档。

可选的,所述进行打包压缩包括:

通过Zip压缩方法与Deflate压缩方法进行打包压缩。

为解决上述技术问题,本申请还提供了一种UOT流式文档转换成OFD版式文档的装置,包括:

解析模块,用于读取UOT格式的流式文档并解析得到所述UOT格式的流式文档的各项数据;

创建模块,用于分类汇总所述UOT格式的流式文档的各项数据得到流式文档内存模型;

转换模块,用于将所述流式文档内存模型转换为版式文档内存模型;

生成模块,用于依照OFD格式规范将所述版式内存模型写出至磁盘,生成OFD格式的版式文档。

可选的,所述转换模块包括:

第一转换单元,用于以文档为单位,依据所述流式文档内存模型的各流式内存对象构建文档树结构;

第二转换单元,用于遍历所述文档树结构,并以页为单位,抽取所述流式内存对象中的数据构建版式文档内存模型。

可选的,所述生成模块包括:

创建单元,用于根据OFD格式的版式文档的规范创建空白的XML文件;

写出单元,用于将所述版式文档内存模型的各版式内存对象写出到相应的所述XML文件;

压缩单元,用于将所述XML文件组织到电子文件物理包中,并进行打包压缩,得到所述OFD格式的版式文档。

为解决上述技术问题,本申请还提供了一种UOT流式文档转换成OFD版式文档的设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上所述的UOT流式文档转换成OFD版式文档的方法的步骤。

为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的UOT流式文档转换成OFD版式文档的方法的步骤。

本申请所提供的UOT流式文档转换成OFD版式文档的方法,包括:读取UOT格式的流式文档并解析得到所述UOT格式的流式文档的各项数据;分类汇总所述UOT格式的流式文档的各项数据得到流式文档内存模型;将所述流式文档内存模型转换为版式文档内存模型;依照OFD格式规范将所述版式内存模型写出至磁盘,生成OFD格式的版式文档。

可见,本申请所提供的UOT流式文档转换成OFD版式文档的方法,采取在内存中分别构建两种格式对应的内存文档模型,通过将流式文档内存模型转换为版式文档内存模型,进而将版式文档内存模型转换为OFD版式文档的方式,能够直接将UOT流式文档转换为OFD版式文档。转换后的OFD版式文档结构清晰、符合标准,且能够保证排版的一致性,版面固定不跑板。

本申请所提供的UOT流式文档转换成OFD版式文档的装置、设备以及计算机可读存储介质均具有上述技术效果。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例所提供的一种UOT流式文档转换成OFD版式文档的方法的流程示意图;

图2为本申请实施例所提供的一种UOT格式的存储结构的示意图;

图3为本申请实施例所提供的一种OFD格式的存储结构的示意图;

图4为本申请实施例所提供的一种文档树结构的示意图;

图5为本申请实施例所提供的一种UOT流式文档转换成OFD版式文档的装置的示意图。

具体实施方式

本申请的核心是提供一种UOT流式文档转换成OFD版式文档的方法,能够实现将UOT格式的流式文档转换为OFD格式的版式文档。本申请的另一个核心是提供一种将UOT格式的流式文档转换为OFD格式的版式文档的装置、设备以及计算机可读存储介质,均具有上述技术效果。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参考图1,图1为本申请实施例所提供的一种UOT流式文档转换成OFD版式文档的方法的示意图,参考图1所示,该方法包括:

S101:读取UOT格式的流式文档并解析得到所述UOT格式的流式文档的各项数据;

UOT文档格式与OFD文档格式都采用XML(Extensible Markup Language,可扩展标记语言)语言来描述数据格式,并采用Zip打包方式与Deflate压缩方法形成的可交换的单一文件格式。

参考图2所示,UOT结构采用多目录+多文件的结构存储文档。其中,目录大致包括根目录、元数据目录以及数据目录。根目录主要包括文档内容、图像内容、图像内容、样式、扩展信息等。元数据目录主要包括应用级以及文档级的数据信息。数据目录主要存放外挂多媒体文件。

参考图3所示,OFD结构采用容器+文档的方式描述与存储数据。容器是一个虚拟的存储系统,其将各类数据描述文件聚合起来,并提供相应的访问接口和数据压缩方法。文档大致分为三层,包括虚拟存储系统、文档模型以及页面内容。其中,虚拟存储系统包括包组织结构以及包内目录结构。文档模型包括文档、页面、大纲、文件级资源等组织结构。页面内容包括页面级资源、文本、图形、图像等。

鉴于OFD格式的文档与UOT格式的文档在数据的结构上具有较大的相似性,本申请采取在内存中分别构建两种格式对应的内存文档模型,通过将流式文档内存模型转换为版式文档内存模型,进而将版式文档内存模型转换为OFD版式文档的方式,实现UOT流式文档向OFD版式文档的转换。

步骤S101旨在从磁盘读取UOT格式的流式文档,并解析得到UOT格式的流式文档的各项数据,以进一步依据UOT格式的流式文档的数据创建对应的流式文档内存模型。

其中,在一种具体的实施方式中,读取UOT格式的流式文档并解析得到UOT格式的流式文档的各项数据包括:将磁盘中的UOT流式文档的物理文件解压到内存中;解析内存中的UOT流式文档,并将UOT格式的流式文档的各项数据保存到文件流中。

具体而言,通过流式解析引擎,采用解压技术将磁盘中的UOT流式文档的物理文件解压到内存中,并采用XML解析技术,将UOT流式文档包结构中的各部分数据读取到文件流中保存。

S102:分类汇总UOT格式的流式文档的各项数据得到流式文档内存模型;

具体的,在读取UOT格式的流式文档并解析UOT格式的流式文档的内容的基础上,进一步通过图文排版引擎对UOT格式的流式文档的数据进行分类汇总,形成文本对象、图像对象、图像对象、元数据对象等流式内存结构,实现UOT格式的流式文档的数据转换为对应的流式文档内存模型。流式文档内存模型表现为内存中的多个流式内存对象,如文本对象、图形对象等,各对象统一由文档对象管理与维护。

S103:将流式文档内存模型转换为版式文档内存模型;

具体的,本步骤旨在将流式文档内存模型转换为版式文档内存模型。且在一种具体的实施方式中,将流式文档内存模型转换为版式文档内存模型包括:以文档为单位,依据流式文档内存模型的各流式内存对象构建文档树结构;遍历文档树结构,并以页为单位,抽取流式内存对象中的数据构建版式文档内存模型。具体而言,在得到流式文档内存模型的基础上,对流式文档内存模型进行拆分、重组、排版,构建文档树结构。遍历文档树结构,基于流式文档模型中各流式内存对象的数据计算得到版式内存对象在容器中的坐标值,以及所使用到的字符集、字型、图元信息、资源等,并以页为单位形成版式文档内存模型。

本实施例采用树结构,一方面树结构直观、易懂;另一方面树结构具有天然的递归特性,操作简单、性能高。参考图4所示,本实施例中文档树结构以文档对象为根节点,文档对象的下一层包括页面集、大纲集、公共资源。进一步页面集由多个页面组成,每个页面又分为内容和页面资源两大块,内容包括文本、图形、图形等节点。页面资源由图片、音视频、其他多媒体类型组成。大纲集主要由书签和导航对象组成。

此外,计算版式内存对象的坐标值的方式如下:页面空间规定页面的左上角为原点,X轴向右增长,Y轴向下增长。根据原点平移、轴方向变换、坐标数值变换等来完成到设备空间的变换。其中,坐标数值变换就是将图元的长度数据通过设备的分辨率和其他信息转换成设备中的像素长度。具体变换矩阵如下:

变换矩阵提供了两个坐标之间的变换规则,用一个长度为6的一维数组描述。形如[a b c d e f]。变换矩阵是一个3乘3的矩阵,其格式为假设变换前的坐标即流式内存对象的坐标为(x,y),变换后的坐标即版式内存对象的坐标为(x’,y’),那么满足公式

S104:依照OFD格式规范将所述版式内存模型写出至磁盘,生成OFD格式的版式文档。

具体的,存储引擎将版式内存模型按照版式标准格式写出到磁盘,从而最终得到OFD格式的版式文档。其中,将版式内存模型写出至磁盘生成OFD格式的版式文档,包括:根据OFD格式的版式文档的规范创建空白的XML文件;将版式文档内存模型的各版式内存对象写出到相应的XML文件;将XML文件组织到电子文件物理包中,并进行打包压缩,得到OFD格式的版式文档。

具体而言,存储引擎根据OFD格式的版式文档的规范,创建各种空白的XML文件,并通过写出流将版式文档内存模型的各版式内存对象写出到相应的XML文件中。进一步,将各个XML文件按照规范组织到一个单独的电子物理包中,并进行打包压缩,从而得到OFD格式的版式文档。

在一种具体的实时方式中,上述进行打包压缩包括:通过Zip压缩方法与Deflate压缩方法进行打包压缩。可以明白的是,本实施例所提供的打包压缩方式仅为本申请所提供的一种实施方式,而非唯一限定,除Deflate压缩方法外,还以采取其他的压缩方法。

综上所述,本申请所提供的UOT流式文档转换成OFD版式文档的方法,包括:读取UOT格式的流式文档并解析得到所述UOT格式的流式文档的各项数据;分类汇总所述UOT格式的流式文档的各项数据得到流式文档内存模型;将所述流式文档内存模型转换为版式文档内存模型;将所述版式内存模型写出至磁盘生成OFD格式的版式文档。该方法,采取在内存中分别构建两种格式对应的内存文档模型,通过将流式文档内存模型转换为版式文档内存模型,进而将版式文档内存模型转换为OFD版式文档的方式,能够直接将UOT流式文档转换为OFD版式文档。转换后的OFD版式文档结构清晰、符合标准,且能够保证排版的一致性,版面固定不跑板。

本申请还提供了一种UOT流式文档转换成OFD版式文档的装置,下文描述的该装置可以与上文描述的方法相互对应参照。请参考图5,图5为本申请实施例所提供的一种UOT流式文档转换成OFD版式文档的装置的示意图,结合图5所示,该装置包括:

解析模块10,用于读取UOT格式的流式文档并解析得到所述UOT格式的流式文档的各项数据;

创建模块20,用于分类汇总所述UOT格式的流式文档的各项数据得到流式文档内存模型;

转换模块30,用于将所述流式文档内存模型转换为版式文档内存模型;

生成模块40,用于依照OFD格式规范将所述版式内存模型写出至磁盘,生成OFD格式的版式文档。

在上述实施例的基础上,作为一种具体的实施方式,转换模块30包括:

第一转换单元,用于以文档为单位,依据所述流式文档内存模型的各流式内存对象构建文档树结构;

第二转换单元,用于遍历所述文档树结构,并以页为单位,抽取所述流式内存对象中的数据构建版式文档内存模型。

在上述实施例的基础上,作为一种具体的实施方式,生成模块40包括:

创建单元,用于根据OFD格式的版式文档的规范创建空白的XML文件;

写出单元,用于将所述版式文档内存模型的各版式内存对象写出到相应的所述XML文件;

压缩单元,用于将所述XML文件组织到电子文件物理包中,并进行打包压缩,得到所述OFD格式的版式文档。

在上述实施例的基础上,作为一种具体的实施方式,解析模块10包括:

解压单元,用于将磁盘中的所述UOT流式文档的物理文件解压到内存中;

解析单元,用于解析所述内存中的所述UOT流式文档,并将所述UOT格式的流式文档的各项数据保存到文件流中。

本申请还提供了一种UOT流式文档转换成OFD版式文档的设备,该设备包括存储器和处理器。其中,存储器,用于存储计算机程序;处理器,用于执行计算机程序实现如下的步骤:

读取UOT格式的流式文档并解析得到所述UOT格式的流式文档的各项数据;分类汇总所述UOT格式的流式文档的各项数据得到流式文档内存模型;将所述流式文档内存模型转换为版式文档内存模型;依照OFD格式规范将所述版式内存模型写出至磁盘,生成OFD格式的版式文档。

对于本申请所提供的设备的介绍请参照上述方法实施例,本申请在此不做赘述。

本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下的步骤:

读取UOT格式的流式文档并解析得到所述UOT格式的流式文档的各项数据;分类汇总所述UOT格式的流式文档的各项数据得到流式文档内存模型;将所述流式文档内存模型转换为版式文档内存模型;依照OFD格式规范将所述版式内存模型写出至磁盘,生成OFD格式的版式文档。

该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

对于本申请所提供的计算机可读存储介质的介绍请参照上述方法实施例,本申请在此不做赘述。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备以及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的UOT流式文档转换成OFD版式文档的方法、装置、设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于动态数据的演示文稿方法、系统及计算机终端设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!