CN109582934B - 版式文档的转换方法及装置 - Google Patents
版式文档的转换方法及装置 Download PDFInfo
- Publication number
- CN109582934B CN109582934B CN201811476474.8A CN201811476474A CN109582934B CN 109582934 B CN109582934 B CN 109582934B CN 201811476474 A CN201811476474 A CN 201811476474A CN 109582934 B CN109582934 B CN 109582934B
- Authority
- CN
- China
- Prior art keywords
- area
- elements
- document
- intermediate data
- regions
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/189—Automatic justification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Document Processing Apparatus (AREA)
Abstract
本公开提供一种版式文档的转换方法及装置,涉及文档转换技术领域。本公开提供的版式文档的转换方法及装置,通过提取版式文档中的文档元素,在遍历提取的文档元素后,判断文档元素中是否存在区域重叠的元素,若存在区域重叠的元素,记录该元素的参数信息,将该元素抽离并存入至自由元素集合,对不存在区域重叠的元素,则按照预设位置进行排序,并按照预设位置组织中间数据结构,遍历排序后的元素,将排序后的元素插入至中间数据结构,得到中间数据,在得到中间数据后,遍历中间数据,以流式布局的方式将中间数据输出至Word文档中,同时将自由元素集合以绝对定位的方式输出至Word文档中,实现了文档转换过程中,元素位置的精确性以及内容的连续性。
Description
技术领域
本公开涉及文档转换技术领域,具体而言,涉及一种版式文档的转换方法及装置。
背景技术
版式文档是指符合版式文档格式规范的文档,其版面呈现效果固定的电子文档格式,版式文档的呈现与设备无关,在各种设备上阅读、打印或印刷时,其版面的呈现结果都是一致的。但是版式文档大多采用的版式布局,即绝对定位,将其转换为Word文档时,无法保证文档元素位置的精确性,容易出现图文错位以及打断文档内容的连续性。
发明内容
有鉴于此,本公开提供一种版式文档的转换方法及装置。
本公开提供一种版式文档的转换方法,所述方法包括:
提取版式文档中的文档元素。
遍历所述文档元素,判断所述文档元素中是否存在区域重叠的元素。
若存在区域重叠的元素,记录该元素的参数信息,将该元素抽离并存入至自由元素集合;对不存在区域重叠的元素,按照预设位置进行排序。
按照所述预设位置组织中间数据结构,并遍历排序后的元素,将排序后的元素插入至所述中间数据结构,得到中间数据。
遍历所述中间数据,以流式布局的方式将所述中间数据输出至Word文档中,并将所述自由元素集合以绝对定位的方式输出至所述Word文档中。
进一步的,所述中间数据结构包括第一区域、多个第二区域、第三区域以及第四区域;所述第一区域包含多个所述第二区域;各所述第二区域包含多个所述第三区域,各所述第三区域包含多个所述第四区域;按照所述预设位置组织中间数据结构,并遍历排序后的元素,将排序后的元素插入至所述中间数据结构,得到中间数据的步骤包括:
根据所述预设位置,组织所述中间数据结构的所述第一区域、各所述第二区域、各所述第三区域以及各所述第四区域的排版格式。
遍历排序后的元素,根据所述第一区域、各所述第二区域、各所述第三区域以及各所述第四区域的排版格式,将所述排序后的元素插入至所述第四区域,并进行封装,得到所述中间数据。
进一步的,遍历所述中间数据,以流式布局的方式将所述中间数据输出至Word文档中的步骤包括:
判断所述第一区域是否存在所述第二区域,如果存在所述第二区域,删除所述第二区域并判断该第二区域中是否存在所述第三区域。
如果存在所述第三区域,删除所述第三区域并判断该第三区域是否存在所述第四区域。
如果不存在所述第三区域,插入分节标记,并判断该第二区域是否存在多个已遍历的第三区域,如果存在多个已遍历的第三区域,写入分栏信息,继续判断所述第一区域是否存在下一个所述第二区域,在存在下一个所述第二区域时,判断下一个所述第二区域是否存在所述第三区域,直至所述第一区域不存在所述第二区域,则插入换页标记;
如果不存在多个已遍历的第三区域,继续判断所述第一区域是否存在下一个所述第二区域,在存在下一个所述第二区域时,判断下一个所述第二区域是否存在所述第三区域,直至所述第一区域不存在所述第二区域,则插入换页标记。
进一步的,如果存在所述第三区域,删除所述第三区域并判断该第三区域是否存在所述第四区域的步骤还包括:
如果该第三区域存在所述第四区域,删除所述第四区域,将该所述第四区域中的元素输出至所述Word文档中,并插入空段落控制上下间距,继续判断该第三区域是否存在下一个所述第四区域。
如果该第三区域不存在所述第四区域,判断该第三区域是否为该第二区域中的最后一个未遍历的第三区域,如果该第三区域为该第二区域中的最后一个未遍历的第三区域,插入分节标记。
如果该第三区域不为该第二区域中的最后一个未遍历的第三区域,插入分栏切换标记,继续判断该第二区域是否存在下一个所述第三区域,在存在下一个所述第三区域时,判断下一个所述第三区域是否存在所述第四区域,直至该第二区域不存在所述第三区域,插入分节标记。
进一步的,在遍历所述中间数据,以流式布局的方式将所述中间数据输出至Word文档中之前,所述方法还包括:
根据所述版式文档的格式信息,设置所述Word文档的页面格式信息,并将所述Word文档的页面格式信息写入至所述中间数据结构中。
进一步的,所述区域重叠的元素预先设定有优先级,若存在区域重叠的元素,记录该元素的参数信息,将该元素抽离并存入至自由元素集合的步骤包括:
记录该元素的参数信息,按照设定的优先级抽离该元素,并存入至所述自由元素集合。
进一步的,所述参数信息包括元素的重叠数量、大小以及类型。
进一步的,所述文档元素包括文档段落元素、图片元素、路径元素以及表格元素。
本公开提供一种版式文档的转换装置,包括提取模块、处理模块、组织模块以及输出模块。
所述提取模块用于提取版式文档中的文档元素。
所述处理模块用于遍历所述文档元素,判断所述文档元素中是否存在区域重叠的元素,若存在区域重叠的元素,记录该元素的参数信息,将该元素抽离并存入至自由元素集合;对不存在区域重叠的元素,按照预设位置进行排序。
所述组织模块用于按照所述预设位置组织中间数据结构,并遍历排序后的元素,将排序后的元素插入至所述中间数据结构,得到中间数据。
所述输出模块用于遍历所述中间数据,以流式布局的方式将所述中间数据输出至Word文档中,并将所述自由元素集合以绝对定位的方式输出至所述Word文档中。
进一步的,中间数据结构包括第一区域、多个第二区域、第三区域以及第四区域;所述第一区域包含多个所述第二区域;各所述第二区域包含多个所述第三区域,各所述第三区域包含多个第四区域;所述组织模块用于按照所述预设位置组织中间数据结构,并遍历排序后的元素,将排序后的元素插入至所述中间数据结构,得到中间数据包括:
所述组织模块用于根据所述预设位置,组织所述中间数据结构的所述第一区域、各所述第二区域、各所述第三区域以及各所述第四区域的排版格式;
并遍历排序后的元素,根据所述第一区域、各所述第二区域、各所述第三区域以及各所述第四区域的排版格式,将所述排序后的元素插入至所述第四区域,并进行封装,得到所述中间数据。
本公开提供的版式文档的转换方法及装置,通过提取版式文档中的文档元素,在遍历提取的文档元素后,判断文档元素中是否存在区域重叠的元素,若存在区域重叠的元素,记录该元素的参数信息,将该元素抽离并存入至自由元素集合,对不存在区域重叠的元素,则按照预设位置进行排序,并按照预设位置组织中间数据结构,遍历排序后的元素,将排序后的元素插入至中间数据结构,得到中间数据,在得到中间数据后,遍历中间数据,以流式布局的方式将中间数据输出至Word文档中,同时并将自由元素集合以绝对定位的方式输出至Word文档中,实现了版式文档转换为Word文档,保证了文档元素位置的精确性以及文档内容的连续性,同时降低了文档编辑的开发难度。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本公开所提供的电子设备的方框示意图。
图2为本公开所提供的版式文档的转换装置的一种方框示意图。
图3为本公开所提供的版式文档的转换方法的一种流程示意图。
图4为本公开所提供的版式文档的一种示意图。
图5为本公开所提供的版式文档的另一种示意图。
图6为本公开所提供的中间数据结构的一种示意图。
图7为本公开所提供的版式文档的转换方法的另一种流程示意图。
图8为本公开所提供的版式文档的转换方法的又一种流程示意图。
图9为本公开所提供的版式文档的转换方法的又一种流程示意图。
图标:100-电子设备;10-转换装置;11-提取模块;12-处理模块;13-组织模块;14-输出模块;20-存储器;30-处理器;40-通信单元。
具体实施方式
下面将结合本公开中附图,对本公开中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
版式文档是指符合版式文档格式规范的文档,其版面呈现效果固定的电子文档格式,版式文档的呈现与设备无关,在各种设备上阅读、打印或印刷时,其版面的呈现结果都是一致的。
便携式文档格式(Portable Document Format,PDF)文档作为版式文档的一种,具有许多其他电子文档格式无法相比的优点。PDF文档格式可以将文字、字型、格式、颜色及独立于设备和分辨率的图形图像等封装在一个文件中。PDF文档还可以包含超文本链接、声音和动态影像等电子信息,支持特长文件,集成度和安全可靠性都较高。对普通读者而言,用PDF制作的电子书具有纸版书的质感和阅读效果,可以逼真地展现原书的原貌,而显示大小可任意调节,给读者提供了个性化的阅读方式。PDF文档的字型嵌入系统,可使字型随文件一起传输,让用户可以在不同设备终端(如移动端、电子书阅读器等)都可以有相同的阅读体验。
但是,PDF文档采用的是版式布局,即绝对定位,而Word文档采用的是基于相对定位的流式布局,将PDF文档转换为Word文档,即将版式布局转换为流式布局,一般两种方式,一、将PDF文档中的所有内容都用绝对定位的方式输出至Word文档中,文本使用文本框。二、将PDF文档中的文本使用流式布局、其他内容使用绝对定位。对于第一种方案,文本编辑不方便,打断了内容之间的连续性。对于第二种方案,Word文档中文本的流式布局具有弹性,无法保证位置绝对精确,而绝对定位的元素位置很精确,所以经常会出现图文错位;并且表格采用绝对定位时也会占用流式布局位置,所以文本排版的时候还要考虑表格的影响,实现方案较为复杂,除此之外,表格和文本的布局也会互相干扰。
基于上述研究,本公开提供一种版式文档的转换方法及装置,以改善上述问题。
请结合参阅图1,本公开提供的版式文档的转换方法应用于图1所示的电子设备100。由所述电子设备100执行本公开所提供的版式文档的转换方法。在本公开中,所述电子设备100可以是,但不限于,个人电脑(Personal Computer,PC)、笔记本电脑、个人数字助理(Personal Digital Assistant,PDA)或服务器等具有处理能力的电子设备100。
所述电子设备100包括图2所示的转换装置10、存储器20、处理器30以及通信单元40;所述存储器20、处理器30以及通信单元40各个元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互直接可通过一条或多条通讯总线或信号线实现电性连接。所述转换装置10包括至少一个可以软件或固件(Firmware)的形式存储于所述存储器20中的软件功能模块,所述处理器30通过运行存储在存储器20内的软件程序以及模块,从而执行各种功能应用以及数据处理。
所述存储器20可以是,但不限于,随机存取存储器(Random AcceSS Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
所述处理器30可以是一种集成电路芯片,具有信号的处理能力。所述处理器30可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等。
所述通信单元40用于通过网络建立所述电子设备100与其他外部设备之间的通信连接,并通过所述网络进行数据传输。
请结合参阅图3,图3为本公开所提供的版式文档的转换方法的流程示意图。下面对图3所示的版式文档的转换方法的具体流程进行详细阐述。
步骤S10:提取版式文档中的文档元素。
其中,提取版式文档中的文档元素的方法有多种,例如,通过ID选取元素、通过名字选取元素、通过CSS类选取元素、通过CSS选择器选取元素以及通过标签名字选取元素等,具体选用哪种提取方法,由原版式文档类型决定,本公开不做限定。
进一步的,所述文档元素包括文档段落元素、图片元素、路径元素以及表格元素。请结合参阅图4和图5,若版式文档的页面如图4所示,则能识别提取出如图5所示的1个图片、2个路径、4个段落和1个表格的文档元素。
在提取出版式文档中的文档元素后,进入步骤S20。
步骤S20:遍历所述文档元素,判断所述文档元素中是否存在区域重叠的元素。
其中,在提取出版式文档中的文档元素后,遍历所述文档元素,判断所述文档元素中是否存在区域重叠的元素,在判断提取的文档元素中是否存在区域重叠的元素后,执行步骤S30。
步骤S30:若存在区域重叠的元素,记录该元素的参数信息,将该元素抽离并存入至自由元素集合;对不存在区域重叠的元素,按照预设位置进行排序。
其中,若存在区域重叠的元素,则记录该元素的参数信息,所述参数信息包括该元素与其他元素的重叠数量、该元素的大小以及类型。在记录该元素的参数信息后,抽离该元素并存入至自由元素集合中。对不存在区域重叠的元素,按照预设位置进行排序,所述预设位置为版式文档中元素对应的位置,即版式文档中元素的初始位置,可选地,本公开中,所述预设位置也可以为自定义的位置。在对不存在区域重叠的元素,按照预设位置进行排序后,进入步骤S40。
步骤S40:按照所述预设位置组织中间数据结构,并遍历排序后的元素,将排序后的元素插入至所述中间数据结构,得到中间数据。
其中,按照预设位置组织中间数据结构,以使中间数据结构适配于Word文档,进而方便地将版式文档的内容转换为Word文档的流式内容;遍历排序后的元素,将排序后的元素插入至组织好的中间数据结构,得到中间数据,保证文档元素位置的精确性以及文档内容的连续性。在得到中间数据后,进入步骤S50。
步骤S50:遍历所述中间数据,以流式布局的方式将所述中间数据输出至Word文档中,并将所述自由元素集合以绝对定位的方式输出至所述Word文档中。
其中,在得到中间数据后,遍历所述中间数据,以流式布局的方式将所述中间数据输出至Word文档中,同时将所述自由元素集合以绝对定位的方式输出至所述Word文档中。所述自由元素集合中的元素是与其他元素重叠的元素,参与流式布局会和其他元素互相干扰,所以要使用绝对定位的方式输出至Word文档中,进而不干扰主体布局,保证文档元素位置的精确性。
进一步的,请结合参阅图6,为了适配Word文档结构,所述中间数据结构包括第一区域、多个第二区域、第三区域以及第四区域;所述第一区域包含多个所述第二区域;各所述第二区域包含多个所述第三区域,各所述第三区域包含多个所述第四区域。若版式文档的页面如图4所示,为了使转换得到的Word文档页面相同的话,图6中所有的第二区域上下排列,所有的第三区域左右排列,所有的第四区域上下排列。可以理解的,本公开中的所述中间数据结构的第一区域、第二区域、第三区域以及第四区域的具体排列方式由原版式文档和/或要转换的Word文档结构决定。
可选的,若原版式文档存在多个文字方向,可以从多个角度识别文本,进而本公开中的所述中间数据结构的第一区域为多个,分别对应于不同角度的文本,选取其中一个第一区域,使该第一区域对应的文本以流式布局的方式输出至Word文档中,其他的第一区域则以文本框的方式输出至Word文档中。
进一步的,请结合参阅图7,按照所述预设位置组织中间数据结构,并遍历排序后的元素,将排序后的元素插入至所述中间数据结构,得到中间数据的步骤包括步骤S41至步骤S42。
步骤S41:根据所述预设位置,组织所述中间数据结构的所述第一区域、各所述第二区域、各所述第三区域以及各所述第四区域的排版格式。
其中,根据所述预设位置,组织所述中间数据结构,以得到所述第一区域、各所述第二区域、各所述第三区域以及各所述第四区域的排版格式,即所述第一区域、各所述第二区域、各所述第三区域以及各所述第四区域的具体排列方式,在得到所述第一区域、各所述第二区域、各所述第三区域以及各所述第四区域的具体排列方式后,进入步骤S42。
步骤S42:遍历排序后的元素,根据所述第一区域、各所述第二区域、各所述第三区域以及各所述第四区域的排版格式,将所述排序后的元素插入至所述第四区域,并进行封装,得到所述中间数据。
其中,遍历排序后的元素,将排序后的元素插入排列后的第四区域中,并进行封装,得到中间数据,其中对排序后的元素进行封装,封装方法可以采用扫描线算法、游程平滑算法(Run-length Smoothing,RLS)和投影轮廓切分算法(Projection Profile Cut,PPC)等,本公开不做限定。
进一步的,请结合参阅图8,遍历所述中间数据,以流式布局的方式将所述中间数据输出至Word文档中的步骤包括以下步骤。
步骤S51:判断所述第一区域是否存在所述第二区域,如果存在所述第二区域,执行步骤S52。
其中,在判断所述第一区域是否存在所述第二区域后,如果存在所述第二区域,则执行步骤S52,如果不存在所述第二区域,则插入换页标记,结束版式文档这一页的转换,进入下一页的转换。
步骤S52:删除所述第二区域并判断该第二区域中是否存在所述第三区域。
其中,如果该第二区域中不存在所述第三区域,执行步骤S54。
步骤S54:插入分节标记。
其中,在本公开中,将每个第二区域当作一个分节,即每个第二区域包括一个分节属性,每个第三区域当作一个分栏,即每个第三区域包括一个分栏属性。每一个分节里面可以包含多个分栏,分栏内部的内容是流式布局的。在判断得到所述第二区域中不存在所述第三区域后,对所述第二区域插入分节标记,执行步骤S55。
步骤S55:判断该第二区域是否存在多个已遍历的第三区域。
其中,如果存在多个已遍历的第三区域,执行步骤S551,如果不存在多个已遍历的第三区域,直接返回执行与步骤S51至步骤S55相同的过程。
其中,若该第二区域不存在多个已遍历的第三区域,则直接返回执行与步骤S51至步骤S55相同的过程,直接继续判断所述第一区域是否存在下一个所述第二区域,在存在下一个所述第二区域时,判断下一个所述第二区域是否存在所述第三区域直至所述第一区域不存在所述第二区域,则插入换页标记。
步骤S551:写入分栏信息。
其中,在本公开中,将每个第三区域当作一个分栏,若该第二区域存在多个已遍历的第三区域,即表示对所述第二区域包含的各所述第三区域已进行遍历,则写入每个第三区域的分栏信息,在写入每个第三区域的分栏信息后,返回执行步骤S51至步骤S55,继续判断所述第一区域是否存在下一个所述第二区域,在存在下一个所述第二区域时,判断下一个所述第二区域是否存在所述第三区域,如果存在,则对下一个所述第二区域包含的第三区域进行遍历,直至,所述第一区域不存在所述第二区域,即对所述第一区域所包含的各所述第二区域遍历完毕,对各所述第二区域所包含的各所述第三区域遍历完毕后,插入换页标记。
进一步的,请结合参阅图9,如果该第二区域存在所述第三区域,执行步骤S53。
步骤S53:删除所述第三区域并判断该第三区域是否存在所述第四区域。
其中,如果该第三区域存在第四区域,执行步骤S531,如果该第三区域不存在第四区域,执行步骤S532。
步骤S531:删除所述第四区域,将该所述第四区域中的文档元素输出至所述Word文档中,并插入空段落控制上下间距,继续判断该第三区域是否存在下一个所述第四区域。
其中,所述第四区域中包括了排序后的元素,在将第四区域中的元素输出至所述Word文档后,插入空段落控制元素的上下间距,保证元素位置的准确性。
在将第四区域中的元素输出至所述Word文档中后,继续判断该第三区域中是否存在下一个第四区域,在存在下一个第四区域,执行与步骤S531相同的过程,直至将该第三区域中不存在第四区域,即对该第三区域所包含的各所述第四区域遍历完毕,对下一个第三区域所包含的第四区域进行遍历,若不存在下一个第三区域,则插入分节标记。
步骤S532:判断该第三区域是否为该第二区域中的最后一个未遍历的第三区域,如果该第三区域为该第二区域中的最后一个未遍历的第三区域,执行步骤S54,如果该第三区域不为该第二区域中的最后一个未遍历的第三区域,执行步骤S533。
步骤S533:插入分栏切换标记,继续判断该第二区域是否存在下一个所述第三区域,在存在下一个所述第三区域时,判断下一个所述第三区域是否存在所述第四区域,直至该第二区域不存在所述第三区域,插入分节标记。
其中,在本公开中,将每个第三区域当作一个分栏,如果该第三区域不为该第二区域中的最后一个未遍历的第三区域,插入分栏切换标记,在插入分栏切换标记后,执行与步骤S52至步骤S53相同的过程,继续判断该第二区域是否存在下一个所述第三区域,在存在下一个所述第三区域时,判断下一个所述第三区域是否存在所述第四区域,直至该第二区域不存在所述第三区域,即对该第二区域所包含的各所述第三区域遍历完毕,对各所述第三区域所包含的各所述第四区域遍历完毕后,执行步骤S54至步骤S55相同的过程。
步骤S54:插入分节标记。
其中,如果该第三区域为该第二区域中的最后一个未遍历的第三区域,对所述第二区域插入分节标记,在对所述第二区域插入分节标记,执行步骤S55。
在本公开中,构建了适配于所述Word文档结构的中间数据结构,利用Word文档的分节写入特征和分栏功能,将每一个第二区域当作一个分节,将每一个第三区域当作一个分栏,并对所述中间数据结构的第一区域、各第二区域、各第三区域以及各第四区域进行遍历,在遍历每一个第二区域后,对每一个第二区域插入分节标记,在遍历每一个第三区域后,对每一个第三区域插入分栏切换标记,进而保证版式文档转换成Word文档时,文档元素的位置精确性以及内容的连续性。
进一步的,遍历所述中间数据,以流式布局的方式将所述中间数据输出至Word文档中之前,所述方法还包括以下步骤:
根据所述版式文档的格式信息,设置所述Word文档的页面格式信息,并将所述Word文档的页面格式信息写入至所述中间数据结构中。
其中,根据所述版式文档的页面大小、第四区域到页面四边的距离、文本旋转角度计算出所述Word文档页面大小、左右边距、横竖排等页面格式信息,并将计算出的页面格式信息写入至所述中间数据结构的第二区域所包括的分节属性中,并随着分节标志插入至所述Word文档中,进而对Word文档页面格式进行设置。可选的,本公开所提供的版式文档的转换方法也可以选用默认的Word文档页面格式,进而无需对所述Word文档的页面格式进行设置。
进一步的,所述区域重叠的元素预先设定有优先级,若存在区域重叠的元素,记录该元素的参数信息,将该元素抽离并存入至自由元素集合的步骤包括以下步骤:
记录该元素的参数信息,按照设定的优先级抽离该元素,并存入至自由元素集合。
其中,对于区域重叠的元素预先设定有优先级,在判断得出存在区域重叠的元素后,记录该元素的参数信息,按照设定的优先级抽离该元素,并存入至所述自由元素集合。可选的,对于区域重叠的元素设定优先级时,可以根据具体需求确定优先级,例如,本公开对于区域重叠的元素设定优先级时,可设定“表格<文本<图片和路径”的优先级,则在抽离区域重叠的元素,按照“表格<文本<图片和路径”的优先级抽离元素,若表格元素和文本元素重叠时,则优先抽取文本元素,若文本元素和路径元素重叠时,则优先抽取路径元素。再例如,本公开对于区域重叠的元素设定优先级时,可设定“文本<表格<图片和路径”优先级抽离元素,若表格元素和文本元素重叠时,则优先抽取表格元素,若表格元素和路径元素重叠时,则优先抽取路径元素。
进一步的,所述参数信息包括元素的重叠数量、大小以及类型。
其中,对于区域重叠的元素进行抽离时,若区域重叠的元素的优先级相同,则可参考元素的参数信息,即元素的重叠数量、大小以及类型。例如,若文本元素和表格元素的优先级相同,则分别参考文本元素和表格元素的大小、类型以及与其他元素的重叠数量,进而确定优先抽取的元素。
在本公开中,遍历元素时,可以设置参数指定哪些元素转换为流式布局,例如,设置参数指定表格元素和文本元素使用流式布局方式输出至所述Word文档中,则图片元素和路径元素等其他文档元素直接作为自由元素,使用绝对定位方式输出至所述Word文档中,降低了开发难度。
进一步的,请返回结合参阅图2,本公开提供的版式文档的转换装置10包括提取模块11、处理模块12、组织模块13以及输出模块14。
所述提取模块11用于提取版式文档中的文档元素。
所述处理模块12用于遍历所述文档元素,判断所述文档元素中是否存在区域重叠的元素,若存在区域重叠的元素,记录该元素的参数信息,将该元素抽离并存入至自由元素集合;对不存在区域重叠的元素,按照预设位置进行排序。
所述组织模块13用于按照所述预设位置组织中间数据结构,并遍历排序后的元素,将排序后的元素插入至所述中间数据结构,得到中间数据。
所述输出模块14用于遍历所述中间数据,以流式布局的方式将所述中间数据输出至Word文档中,并将所述自由元素集合以绝对定位的方式输出至所述Word文档中。
进一步的,中间数据结构包括第一区域、多个第二区域、第三区域以及第四区域;所述第一区域包含多个所述第二区域;各所述第二区域包含多个所述第三区域,各所述第三区域包含多个第四区域;所述组织模块13用于按照所述预设位置组织中间数据结构,并遍历排序后的元素,得到中间数据包括:
所述组织模块13用于根据所述预设位置,组织所述中间数据结构的所述第一区域、各所述第二区域、各所述第三区域以及各所述第四区域的排版格式,并遍历排序后的元素,根据所述第一区域、各所述第二区域、各所述第三区域以及各所述第四区域的排版格式,将所述排序后的元素插入至所述第四区域,并进行封装,得到所述中间数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的转换装置10的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
综上,本公开提供的版式文档的转换方法及装置,通过提取版式文档中的文档元素,在遍历提取的文档元素后,判断文档元素中是否存在区域重叠的元素,若存在区域重叠的元素,记录该元素的参数信息,将该元素抽离并存入至自由元素集合,对不存在区域重叠的元素,则按照预设位置进行排序,并按照预设位置组织中间数据结构,遍历排序后的元素,将排序后的元素插入至中间数据结构,得到中间数据,在得到中间数据后,遍历中间数据,以流式布局的方式将中间数据输出至Word文档中,同时并将自由元素集合以绝对定位的方式输出至Word文档中,实现了版式文档转换为Word文档,保证了文档元素位置的精确性以及文档内容的连续性,同时降低了文档编辑的开发难度。
在本公开所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本公开的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本公开各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
以上所述仅为本公开的可选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (10)
1.一种版式文档的转换方法,其特征在于,所述方法包括:
提取版式文档中的文档元素;
遍历所述文档元素,判断所述文档元素中是否存在区域重叠的元素;
若存在区域重叠的元素,记录该元素的参数信息,将该元素抽离并存入至自由元素集合;对不存在区域重叠的元素,按照预设位置进行排序;
按照所述预设位置组织中间数据结构,并遍历排序后的元素,将排序后的元素插入至所述中间数据结构,得到中间数据;
遍历所述中间数据,以流式布局的方式将所述中间数据输出至Word文档中,并将所述自由元素集合以绝对定位的方式输出至所述Word文档中。
2.根据权利要求1所述的版式文档的转换方法,其特征在于,所述中间数据结构包括第一区域、多个第二区域、第三区域以及第四区域;所述第一区域包含多个所述第二区域;各所述第二区域包含多个所述第三区域,各所述第三区域包含多个所述第四区域;按照所述预设位置组织中间数据结构,并遍历排序后的元素,将排序后的元素插入至所述中间数据结构,得到中间数据的步骤包括:
根据所述预设位置,组织所述中间数据结构的所述第一区域、各所述第二区域、各所述第三区域以及各所述第四区域的排版格式;
遍历排序后的元素,根据所述第一区域、各所述第二区域、各所述第三区域以及各所述第四区域的排版格式,将所述排序后的元素插入至所述第四区域,并进行封装,得到所述中间数据。
3.根据权利要求2所述的版式文档的转换方法,其特征在于,遍历所述中间数据,以流式布局的方式将所述中间数据输出至Word文档中的步骤包括:
判断所述第一区域是否存在所述第二区域,如果存在所述第二区域,删除所述第二区域并判断该第二区域中是否存在所述第三区域;
如果存在所述第三区域,删除所述第三区域并判断该第三区域是否存在所述第四区域;
如果不存在所述第三区域,插入分节标记,并判断该第二区域是否存在多个已遍历的第三区域,如果存在多个已遍历的第三区域,写入分栏信息,继续判断所述第一区域是否存在下一个所述第二区域,在存在下一个所述第二区域时,判断下一个所述第二区域是否存在所述第三区域,直至所述第一区域不存在所述第二区域,则插入换页标记;
如果不存在多个已遍历的第三区域,继续判断所述第一区域是否存在下一个所述第二区域,在存在下一个所述第二区域时,判断下一个所述第二区域是否存在所述第三区域,直至所述第一区域不存在所述第二区域,则插入换页标记。
4.根据权利要求3所述的版式文档的转换方法,其特征在于,如果存在所述第三区域,删除所述第三区域并判断该第三区域是否存在所述第四区域的步骤还包括:
如果该第三区域存在所述第四区域,删除所述第四区域,将该所述第四区域中的元素输出至所述Word文档中,并插入空段落控制上下间距,继续判断该第三区域是否存在下一个所述第四区域;
如果该第三区域不存在所述第四区域,判断该第三区域是否为该第二区域中的最后一个未遍历的第三区域,如果该第三区域为该第二区域中的最后一个未遍历的第三区域,插入分节标记;
如果该第三区域不为该第二区域中的最后一个未遍历的第三区域,插入分栏切换标记,继续判断该第二区域是否存在下一个所述第三区域,在存在下一个所述第三区域时,判断下一个所述第三区域是否存在所述第四区域,直至该第二区域不存在所述第三区域,插入分节标记。
5.根据权利要求1所述的版式文档的转换方法,其特征在于,在遍历所述中间数据,以流式布局的方式将所述中间数据输出至Word文档中之前,所述方法还包括:
根据所述版式文档的格式信息,设置所述Word文档的页面格式信息,并将所述Word文档的页面格式信息写入至所述中间数据结构中。
6.根据权利要求1所述的版式文档的转换方法,其特征在于,所述区域重叠的元素预先设定有优先级,若存在区域重叠的元素,记录该元素的参数信息,将该元素抽离并存入至自由元素集合的步骤包括:
记录该元素的参数信息,按照设定的优先级抽离该元素,并存入至所述自由元素集合。
7.根据权利要求6所述的版式文档的转换方法,其特征在于,所述参数信息包括元素的重叠数量、大小以及类型。
8.根据权利要求1所述的版式文档的转换方法,其特征在于,所述文档元素包括文档段落元素、图片元素、路径元素以及表格元素。
9.一种版式文档的转换装置,其特征在于,包括提取模块、处理模块、组织模块以及输出模块;
所述提取模块用于提取版式文档中的文档元素;
所述处理模块用于遍历所述文档元素,判断所述文档元素中是否存在区域重叠的元素,若存在区域重叠的元素,记录该元素的参数信息,将该元素抽离并存入至自由元素集合;对不存在区域重叠的元素,按照预设位置进行排序;
所述组织模块用于按照所述预设位置组织中间数据结构,并遍历排序后的元素,将排序后的元素插入至所述中间数据结构,得到中间数据;
所述输出模块用于遍历所述中间数据,以流式布局的方式将所述中间数据输出至Word文档中,并将所述自由元素集合以绝对定位的方式输出至所述Word文档中。
10.根据权利要求9所述的版式文档的转换装置,其特征在于,中间数据结构包括第一区域、多个第二区域、第三区域以及第四区域;所述第一区域包含多个所述第二区域;各所述第二区域包含多个所述第三区域,各所述第三区域包含多个第四区域;所述组织模块用于按照所述预设位置组织中间数据结构,并遍历排序后的元素,将排序后的元素插入至所述中间数据结构,得到中间数据包括:
所述组织模块用于根据所述预设位置,组织所述中间数据结构的所述第一区域、各所述第二区域、各所述第三区域以及各所述第四区域的排版格式;
并遍历排序后的元素,根据所述第一区域、各所述第二区域、各所述第三区域以及各所述第四区域的排版格式,将所述排序后的元素插入至所述第四区域,并进行封装,得到所述中间数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811476474.8A CN109582934B (zh) | 2018-12-04 | 2018-12-04 | 版式文档的转换方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811476474.8A CN109582934B (zh) | 2018-12-04 | 2018-12-04 | 版式文档的转换方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109582934A CN109582934A (zh) | 2019-04-05 |
CN109582934B true CN109582934B (zh) | 2023-02-10 |
Family
ID=65927200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811476474.8A Active CN109582934B (zh) | 2018-12-04 | 2018-12-04 | 版式文档的转换方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109582934B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459423B (zh) * | 2020-03-25 | 2023-12-26 | 佛山市七彩祥云信息技术有限公司 | 一种利用像素碰撞法确定印刷合版最优借位位置方法 |
CN114663902B (zh) * | 2022-04-02 | 2023-06-02 | 北京百度网讯科技有限公司 | 文档图像处理方法、装置、设备和介质 |
CN115510821A (zh) * | 2022-10-28 | 2022-12-23 | 深圳市网旭科技有限公司 | 文档转换方法及装置、计算机可读存储介质、计算机设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001092820A (ja) * | 1999-09-22 | 2001-04-06 | Fuji Xerox Co Ltd | 文書処理装置および方法 |
CN1784664A (zh) * | 2003-05-14 | 2006-06-07 | 夏普株式会社 | 能够适当地输出包括文本和布局信息的文档数据的文档数据输出设备 |
CN101963955A (zh) * | 2010-09-17 | 2011-02-02 | 深圳市万兴软件有限公司 | XML格式文档转换为Word格式文档的系统和方法 |
CN102236653A (zh) * | 2010-04-26 | 2011-11-09 | 北京开普互联科技有限公司 | 一种实现版式文档与关系数据库交互的方法 |
CN103186510A (zh) * | 2011-12-30 | 2013-07-03 | 北大方正集团有限公司 | 一种转换文档格式的方法和装置 |
CN104424174A (zh) * | 2013-09-11 | 2015-03-18 | 北京大学 | 文档处理系统和文档处理方法 |
CN105446946A (zh) * | 2014-07-17 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 版式文档的重排方法、系统及电子阅读终端 |
CN106462555A (zh) * | 2014-05-14 | 2017-02-22 | 网页云股份有限公司 | 用于web内容生成的方法和系统 |
CN106649213A (zh) * | 2016-09-22 | 2017-05-10 | 深圳万兴信息科技股份有限公司 | 一种文档中空格识别方法及系统 |
CN108153717A (zh) * | 2017-12-29 | 2018-06-12 | 北京仁和汇智信息技术有限公司 | 一种科技期刊论文word文档的结构化处理方法及装置 |
CN108647305A (zh) * | 2018-05-09 | 2018-10-12 | 天津字节跳动科技有限公司 | 文档格式转换方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10146746B2 (en) * | 2016-11-29 | 2018-12-04 | Kukudocs Inc. | Method and system for converting a document |
-
2018
- 2018-12-04 CN CN201811476474.8A patent/CN109582934B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001092820A (ja) * | 1999-09-22 | 2001-04-06 | Fuji Xerox Co Ltd | 文書処理装置および方法 |
CN1784664A (zh) * | 2003-05-14 | 2006-06-07 | 夏普株式会社 | 能够适当地输出包括文本和布局信息的文档数据的文档数据输出设备 |
CN102236653A (zh) * | 2010-04-26 | 2011-11-09 | 北京开普互联科技有限公司 | 一种实现版式文档与关系数据库交互的方法 |
CN101963955A (zh) * | 2010-09-17 | 2011-02-02 | 深圳市万兴软件有限公司 | XML格式文档转换为Word格式文档的系统和方法 |
CN103186510A (zh) * | 2011-12-30 | 2013-07-03 | 北大方正集团有限公司 | 一种转换文档格式的方法和装置 |
CN104424174A (zh) * | 2013-09-11 | 2015-03-18 | 北京大学 | 文档处理系统和文档处理方法 |
CN106462555A (zh) * | 2014-05-14 | 2017-02-22 | 网页云股份有限公司 | 用于web内容生成的方法和系统 |
CN105446946A (zh) * | 2014-07-17 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 版式文档的重排方法、系统及电子阅读终端 |
CN106649213A (zh) * | 2016-09-22 | 2017-05-10 | 深圳万兴信息科技股份有限公司 | 一种文档中空格识别方法及系统 |
CN108153717A (zh) * | 2017-12-29 | 2018-06-12 | 北京仁和汇智信息技术有限公司 | 一种科技期刊论文word文档的结构化处理方法及装置 |
CN108647305A (zh) * | 2018-05-09 | 2018-10-12 | 天津字节跳动科技有限公司 | 文档格式转换方法和装置 |
Non-Patent Citations (4)
Title |
---|
"Signature Extraction for Overlap Detection in Documents";Rapheal A Finkel 等;《ACSC》;20021231;第59-64页 * |
"中文文档图像的数学公式定位";陈凯燕;《中国优秀硕士学位论文全文数据库 (信息科技辑)》;20170215;第I138-3559页 * |
"基于移动终端的报纸版面分析及识别";张文杰;《中国优秀硕士学位论文全文数据库 (信息科技辑)》;20150415;第I138-975页 * |
"流式文档到固定版式文档的可逆转换方法研究";李宁 等;《北京大学学报(自然科学版)》;20141201;第51卷(第2期);第203-212页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109582934A (zh) | 2019-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109582934B (zh) | 版式文档的转换方法及装置 | |
US8107727B2 (en) | Document processing apparatus, document processing method, and computer program product | |
US7853869B2 (en) | Creation of semantic objects for providing logical structure to markup language representations of documents | |
US8213717B2 (en) | Document processing apparatus, document processing method, recording medium and data signal | |
KR20150128921A (ko) | 고정 서식 문서에서의 동아시아 레이아웃 특징들의 검출 및 재구성 | |
CN101578597A (zh) | 转换文本 | |
US8522138B2 (en) | Content analysis apparatus and method | |
US8538154B2 (en) | Image processing method and image processing apparatus for extracting heading region from image of document | |
CN111859865A (zh) | 用于转换pdf文档的方法、装置、终端及介质 | |
CN110569489A (zh) | 基于pdf文件的表格数据解析方法及装置 | |
US20220301285A1 (en) | Processing picture-text data | |
JP5412903B2 (ja) | 文書画像処理装置、文書画像処理方法および文書画像処理プログラム | |
CN101008940A (zh) | 自动处理字体缺失的方法与装置 | |
CN114359533B (zh) | 一种基于页面文本的页码识别方法和计算机设备 | |
JP5950700B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
CN112686000B (zh) | 电子书文档的格式转换方法、电子设备及存储介质 | |
CN112365402B (zh) | 智能组卷方法、装置、存储介质及电子设备 | |
CN111695414B (zh) | 文档处理方法及装置、电子设备、计算机可读存储介质 | |
CN117291152A (zh) | 表格的提取方法和装置 | |
CN110457659B (zh) | 条款文档生成方法及终端设备 | |
US9400926B2 (en) | Image processing apparatus, image processing method, and non-transitory computer readable medium | |
CN109992749A (zh) | 一种文字显示方法、装置、电子设备及可读存储介质 | |
CN109325215B (zh) | Word文本的输出方法及装置 | |
CN113378526A (zh) | Pdf段落处理方法、装置、存储介质及设备 | |
CN115965002A (zh) | 数据处理方法、装置、电子设备、存储介质及程序产品 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |