CN113297425B - 文档转换方法、装置、服务器及存储介质 - Google Patents
文档转换方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN113297425B CN113297425B CN202110692863.XA CN202110692863A CN113297425B CN 113297425 B CN113297425 B CN 113297425B CN 202110692863 A CN202110692863 A CN 202110692863A CN 113297425 B CN113297425 B CN 113297425B
- Authority
- CN
- China
- Prior art keywords
- document
- xml
- picture
- converted
- sub
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/84—Mapping; Conversion
- G06F16/88—Mark-up to mark-up conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/81—Indexing, e.g. XML tags; Data structures therefor; Storage structures
-
- 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
Abstract
本申请实施例涉及计算机技术领域,提供一种文档转换方法、装置、服务器及存储介质,将文档转换为XML格式时,先通过获得待转换文档的XML结构并进行解析,得到待转换文档中每个组成部分对应的对象集;再对得到的每个对象集依次进行转换,最终得到待转换文档对应的XML文档。因此,基于待转换文档本身的XML结构进行文档转换,所以整个转换过程可控,转换效果好。
Description
技术领域
本申请实施例涉及计算机技术领域,具体而言,涉及一种文档转换方法、装置、服务器及存储介质。
背景技术
随着信息时代的到来,各类文档格式在日常工作中被广泛使用。但是,在某些场合需要提供特定格式的文档,在这种情况下,需要进行文档转换。以专利申请为例,专利审查官方机构要求提供PDF或者XML(Extensible Markup Language,可扩展标记语言)格式的文档,即,需要将文档转换为PDF或者XML格式。
目前将文档转换为XML格式时,采用的是先另存为网页、再对网页进行调整的方式,转换结果依赖于另存为网页操作,导致转换过程不可控,转换效果不佳。
发明内容
本申请实施例的目的在于提供一种文档转换方法、装置、服务器及存储介质,用以解决现有的文档转换方式转换效果不佳的问题。
为了实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种文档转换方法,所述方法包括:获得待转换文档的可扩展标记语言XML结构,其中,所述待转换文档包括至少一个组成部分;解析所述待转换文档的XML结构,得到每个所述组成部分对应的对象集;对每个所述对象集依次进行转换,得到所述待转换文档对应的XML文档。
第二方面,本申请实施例还提供了一种文档转换装置,所述装置包括:获得模块,用于获得待转换文档的可扩展标记语言XML结构,其中,所述待转换文档包括至少一个组成部分;解析模块,用于解析所述待转换文档的XML结构,得到每个所述组成部分对应的对象集;第一转换模块,用于对每个所述对象集依次进行转换,得到所述待转换文档对应的XML文档。
第三方面,本申请实施例还提供了一种服务器,所述服务器包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的文档转换方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的文档转换方法。
相对现有技术,本申请实施例提供的一种文档转换方法、装置、服务器及存储介质,将文档转换为XML格式时,先通过获得待转换文档的XML结构并进行解析,得到待转换文档中每个组成部分对应的对象集;再对得到的每个对象集依次进行转换,最终得到待转换文档对应的XML文档。本申请实施例基于待转换文档本身的XML结构进行文档转换,所以整个转换过程可控,转换效果好。
附图说明
图1示出了本申请实施例提供的文档转换方法的一种流程示意图。
图2为图1所示的文档转换方法中步骤S20的流程示意图。
图3为图2所示的步骤S20中步骤S202的流程示意图。
图4为图1所示的文档转换方法中步骤S30的流程示意图。
图5示出了本申请实施例提供的文档转换方法的另一种流程示意图。
图6为图5所示的文档转换方法中步骤S40的流程示意图。
图7示出了本申请实施例提供的文档转换装置的方框示意图。
图8示出了本申请实施例提供的服务器的方框示意图。
图标:10-服务器;11-处理器;12-存储器;13-总线;100-文档转换装置;110-获得模块;120-解析模块;130-第一转换模块;140-第二转换模块。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述。
目前,各类文档格式在日常工作中被广泛使用。但是,在某些场合需要提供特定格式的文档,在这种情况下,用户需要将文档转换为特定格式。
以专利申请为例,专利审查官方机构要求提供PDF或者XML格式的文档,即,需要将文档转换为PDF或者XML格式。目前在进行格式转换时,常见的操作方式有两种:一是人工对文档进行重新录入及编辑,这种方式效率低下,不仅浪费时间还会造成不必要的工作;二是采用软件对文档进行转换。
采用软件对文档进行转换的方式,不仅转换效率高,而且能满足用户的不同需求。但是,将文档转换为XML格式时,是先将文档另存为网页、再对网页进行调整,转换结果依赖于另存为网页操作,导致转换过程不可控,转换效果不佳,例如,图片、公式清晰度不够,丢失原始文档内容等。
为了解决现有的文档转换方式转换效果不佳的问题,本申请实施例提供的文档转换方法,将文档转换为XML格式时,基于待转换文档本身的XML结构进行文档转换,所以整个转换过程可控,转换效果好。
下面对本申请实施例提供的文档转换方法的应用场景进行介绍。
现有技术中,采用软件对文档进行转换时,每次打开文档前都会对系统中的程序(例如,Word进程)强制关闭,导致一台服务器同时只能运行一套程序,转换效率低下。
为了解决现有技术中一台服务器只能启用一个服务程序,转换效率低下的问题,本申请实施例中,针对一台服务器,构建内置通道集合,该通道集合包括多个通道,每个通道确保开启一个服务程序(例如,Word应用程序)。同时,每个通道均能执行本申请实施例提供的文档转换方法,即,每个通道就能独立的完成文档转换任务。这样就能保证一台服务器同时启用多个服务程序,并且,一个通道内服务程序的异常不会影响其他通道内服务程序的工作,从而提高了转换效率。
需要指出的是,本申请实施例提供的文档转换方法,可以应用于专利申请递交的场景,也可以应用于其它需要进行文档转换的场景,具体可以根据实际应用场景确定,在此不作限制。
下面对本申请实施例提供的文档转换方法进行详细介绍。
请参照图1,图1示出了本申请实施例提供的文档转换方法的流程示意图,该文档转换方法应用于服务器,可以包括以下步骤:
S10,获得待转换文档的可扩展标记语言XML结构,其中,待转换文档包括至少一个组成部分。
待转换文档可以是任意一个需要进行格式转换的Word文档,例如,专利申请文件、论文等。组成部分可以是待转换文档中各个标题对应的文档部分,例如,待转换文档为专利申请文档,则组成部分可以是说明书摘要部分、摘要附图部分、权利要求书部分、说明书部分、说明书附图部分;待转换文档为学位论文,则组成部分可以是中文摘要部分、英文摘要部分、目录部分、每一章、致谢部分、参考文献部分。全部的组成部分构成所述待转换文档。
服务器可以预先配置有开发平台(例如,基于VSTO开发包),对于待转档文档,服务器可以基于开发平台实现对文档的相关操作,例如,文档读取、文档保存、文档内容选择、文档写入等。
在本实施例中,获得待转换文档的XML结构的过程,可以包括:
获取待转换文档;
调用预先配置的开发平台,获得待转换文档的XML结构。
例如,服务器获取到待转换文档之后,调用VSTO开发包中的API打开待转换文档,从打开的待转换文档中获取到待转换文档的XML结构。待转换文档的XML结构包括待转换文档的全部内容。
可选地,调用VSTO开发包中的API打开待转换文档之后,可以对待转换文档进行预处理,例如,文档图片的灰度化、移除文本标注、移除文档书签、接受文档所有修订等。
S20,解析待转换文档的XML结构,得到每个组成部分对应的对象集。
获得待转换文档的XML结构之后,可以先根据每个组成部分的标题,例如,说明书摘要、摘要附图、权利要求书、说明书、说明书附图,从XML结构中识别出每个组成部分对应的XML部分,全部的XML部分构成该XML结构。再分别对每个XML部分进行解析,就能得到每个XML部分的对象集,也即每个组成部分对应的对象集。
以一个组成部分为例,该组成部分包括若干段落,每个段落包括文本、表格、图片、公式、特殊符号中的一种或多种。该组成部分对应的对象集包括:全部的对象集每个对象对应的所有的子对象,其中,一个对象对应一个段落,对象对应的子对象分别对应段落包括的文本、表格、图片、公式、特殊符号。
S30,对每个对象集依次进行转换,得到待转换文档对应的XML文档。
经过步骤S20对XML结构进行解析,得到各个组成部分对应的对象集之后,依次对每个对象集进行转换,就能得到转换后的XML文档。以一个对象集为例,对该对象集进行转换时,依次对该对象集中的每个对象进行转换。同样地,以一个对象为例,对该对象进行转换时,依次对该对象中的每个子对象进行转换。
下面对步骤S20进行详细介绍,在图1的基础上,请参照图2,步骤S20可以包括:
S201,在XML结构中,确定出每个组成部分对应的XML部分。
针对获得的XML结构,可以根据每个组成部分的标题,例如,说明书摘要、摘要附图、权利要求书、说明书、说明书附图,从XML结构中识别出各个组成部分的起始段落索引和截止段落索引;再根据各个组成部分的索引范围,即,起始段落索引到截止段落索引,调用开发平台(例如,VSTO开发包)中的工具(例如,Document.Range(起始段落索引,截止段落索引))提取到每个组成部分对应的XML部分。也就是,待转换文档中的组成部分和XML结构中的XML部分一一对应。
在本实施例中,在XML结构中,确定出每个组成部分对应的XML部分的过程,可以包括:
按照设定标题,在XML结构中识别每个组成部分对应的起止范围;
根据每个起止范围,得到每个组成部分对应的XML部分。
设定标题可以是各个组成部分的标题,例如,待转换文档为专利申请文件,则设定标题可以包括说明书摘要、摘要附图、权利要求书、说明书、说明书附图;待转换文档为学位论文,则设定标题可以包括中文摘要、英文摘要、目录、各个章标题、致谢、参考文献。
以一个组成部分为例,该组成部分对应的起止范围,是指该组成部分从哪一段开始到哪一段结束,即,起始段落索引到截止段落索引。
需要指出的是,若待转换文档包含表格,则XML结构中相应会包含表格相关内容,这种在识别起止范围时,要将表格所占的段落数也考虑在内。可以调用开发平台(例如,VSTO开发包)提供的API获取表格所占的段落数,再根据该表格在待转换文档中的位置,重置起始段落索引和截止段落索引。
另外,有些情况下采用S201的方式,可能无法确定出每个组成部分对应的XML部分,例如,待转换文档的格式不标准等。这种情况下,可以使用调用开发平台(例如,VSTO开发包)提供的API,采用逐个段落匹配的方式,来确定每个组成部分对应的XML部分。
可选地,对于每个组成部分对应的XML部分,如果其中包含域组件,则需要将该域组件转换为图片或者文本、或者直接删除。并且,具体的操作方式与域组件本身有关。例如,类型为Title、Subject等的域组件通常可以直接转换为文本,但是,如果此类域组件包含图片、公式、表格等内容,则需要转换为图片;类型为Embed、Formula等的域组件只能转换为图片;类型为Empty、Addin等的域组件可以直接删除。
可选地,对于待转换文档,如果其中包含非嵌入式组件,则需要该非嵌入式组件进行特殊的命名操作,例如,CH-SHAPE-序号,此处的命名可以由用户自定义设置,在此不做限定。便于在后续文档转换时,能准确识别出非嵌入式组件。
S202,对每个XML部分依次进行解析,得到每个组成部分对应的对象集。
对每个XML部分进行解析的过程是类似的,所以下述实施例以一个XML部分为例进行说明。
XML部分包括各个节点,一个节点又包括各个子节点。其中,节点对应组成部分中的段落,子节点对应的是段落中的文本、表格、图片、公式、特殊符号。对XML部分进行解析时,要依次对其中的各个节点进行解析,并且,对节点进行解析时,也要依次对其中的各个子节点进行解析。
下面对步骤S202进行详细介绍,在图2的基础上,请参照图3,步骤S202可以包括:
S2021,获取任意一个目标XML部分,其中,目标XML部分包括至少一个标签和每个标签对应的XML节点,目标XML部分对应目标组成部分。
目标XML部分是指,步骤S201中确定出的全部XML部分中的任意一个。目标XML部分对应目标组成部分,例如,说明书部分。目标XML部分包括各个XML节点,一个XML节点对应目标组成部分中的一个段落,每个XML节点都有对应的标签名,例如,w:p标签、w:tbl标签等,其中,w:p标签表示段落,w:tbl标签表示表格,相应地,对应的XML节点分别为w:p节点和w:tbl节点。
另外,根据标签确定出XML节点之后,要检测该XML节点是否包含段落序号,如果包含段落序号,则通过开发平台(例如,VSTO开发包)提供的API提取出序号内容并插入到该XML节点的内容起始位置。
S2022,将XML节点转换为对象,其中,对象包括段落序号、XML节点内容、节点文本、对象索引、第一标识、第二标识及段落内容节点集,第一标识表征是否以句号结尾,第二标识表征是否包含图片和/或公式,段落内容节点集包括至少一个XML子节点。
对象索引是指,该XML节点是目标XML部分中的第几个XML节点。对于一个XML节点,该XML节点对应的段落可能包括文本、表格、图片、公式、特殊符号中的一种或多种,而文本、表格、图片、公式、特殊符号都可以作为XML子节点。并且,每个XML子节点都有对应的标签名,例如,w:sym标签、w:object标签、w:drawing标签、w:pict标签等,其中,w:sym标签表示特殊符号,w:object标签、w:drawing标签、w:pict标签表示图片。如果是w:object标签、w:drawing标签、w:pict标签,则需要根据步骤S201中介绍的特殊命名判断是嵌入式对象还是非嵌入式对象,并且输出相应的类型标识,例如,嵌入式对象为InlineShape,非嵌入式对象为Shape等。
S2023,将XML子节点转换为子对象,其中,子对象包括文本对象、表格对象、嵌入式对象、非嵌入式对象、公式对象中的至少一种;文本对象包括文本内容及文本格式;表格对象包括表格序号及表格模式;嵌入式对象包括第一对象序号;非嵌入式对象包括第二对象序号及预先设定的特殊标识;公式对象包括公式序号。
对于一个XML节点,需要将依次将该XML节点中包含的各个XML子节点转换为子对象,一个XML子节点对应一个子对象。每个子对象均包含对应的XML子节点的节点类型,节点类型可以是文本、表格、图片、公式、特殊符号。
对于XML节点,如果节点类型为文本,则转换后的子对象为文本对象,例如,Text对象,文本对象包括文本内容及文本格式,文本格式可以是加粗、斜体、下划线、上角标、下角标等。
如果节点类型为表格,则转换后的子对象为表格对象,例如,Table对象,表格对象包括表格序号及表格模式,表格序号是指该表格是目标组成部分中的第几个表格,表格模式可以是简单模式或者复杂模式。
可选地,对于表格,在转换为表格对象之前,还需要对表格的表格模式进行检测。检测表格模式的过程,可以包括:
1、通过开发平台(例如,VSTO开发包)提供的API获取待转换文档的XML结构;
2、基于该XML结构,检测表格的单元格中是否包含公式、图片、嵌入式对象、或者表格等内容;
3、基于该XML结构,检测表格单元格中是否存在拆分、合并、或者左上到右下的线条等操作;
4、如果满足2或3中的人一个,则确定该表格的表格模式为复杂模式,否则为简单模式。
如果节点类型为图片,则需要根据步骤S2022输出的类型标识,转换为与该类型标识对应的嵌入式对象或者非嵌入式对象。嵌入式对象可以表示为InlineShape对象,非嵌入式对象可以表示为Shape对象。嵌入式对象包括第一对象序号,第一对象序号是指该嵌入式对象是目标组成部分中的第几个嵌入式对象。非嵌入式对象包括第二对象序号及预先设定的特殊标识,第二对象序号是指该嵌入式对象是待转换文档中的第几个非嵌入式对象,特殊标识可以是步骤S201中的特殊命名操作产生的。
如果节点类型为公式,则转换后的子对象为公式对象,例如,Math对象,公式对象包括公式序号,表格序号是指该表格是目标组成部分中的第几个表格。
S2024,获得目标组成部分对应的对象集,其中,对象集包括所有对象及每个对象对应的所有子对象。
需要指出的是,虽然S2021~S2024是以任意一个XML部分为例,来说明对该XML部分进行解析的内容,但是本领域技术人员应当理解,在实际中,需要对每个XML部分都按照S2021~S2024的过程依次进行解析,最终得到每个组成部分对应的对象集。
在一种可能的情形下,如果待转换文档包括特殊字符,在转换为XML文档时,特殊字符可能无法转换,因此,需要将特殊字符转换为图片,因此,请再次参照图3,在步骤S2023之前,S202还可以包括:
S202a,若XML子节点为特殊字符,则将特殊字符转换为图片。
如果节点类型为特殊字符,则在转换为子对象之前,需要先将特殊字符转换为图片。
在本实施例中,将特殊字符转换为图片的过程,可以包括:
计算特殊字符的尺寸;
通过预先配置的开发平台,生成初始图片,其中,初始图片中包括数字,数字是对特殊字符进行转换得到的;
将初始图片中尺寸对应的图片区域备份为目标格式,得到图片。
也就是,由于特殊字符为char型文本,所以先将特殊字符转换为数字;再通过开发平台(例如,.net平台)创建组件(例如,Label组件),将该组件中的文本设置为转换后的数字;再设置该组件的背景色(例如,白色)和文本格式(例如,宋体、小四);之后,利用组价生成画板对象,并通过画板对象计算特殊字符的尺寸,例如,利用Label组件的CreateGraphics方法生成画板对象,利用生成的画板对象提供的方法MeasureString计算特殊字符的尺寸。
接下来,生成初始图片,例如,利用Label组件的DrawToBitmap方法将Label组件显示的内容输出为位图,该位图即为初始图片,并且,该位图的尺寸与Label组件一致。
最后,将初始图片中的特殊字符的尺寸对应的图片区域备份为目标格式,得到图片。目标格式可以是JPG,图片的输出质量可以是255L、分辨率可以是96。
可选地,备份的图片区域的起始点坐标可以设置为(6,5)。特殊字符的尺寸可以包括宽和高,备份的图片区域的高度可以是特殊字符的高-10,备份的图片区域的宽度可以是特殊字符的宽-5。
可选地,得到图片后,还可以将图片的尺寸转换为毫米单位。将图片的尺寸转换为毫米单位的过程,可以包括:
首先,获取图片的宽和高、以及图片的水平分辨率和垂直分辨率;
然后,根据以下公式转换为毫米单位:
宽=图片的宽/水平分辨率*25.4;
高=图片的高/垂直分辨率*25.4。
需要指出的是,在步骤S202中,如果待转换文档为专利申请文件,则需要对权利要求书部分和说明书部分进行特殊处理,主要包括以下内容:
对于说明书部分对应的XML部分,要在每个XML节点的内容前插入段落序号。同时,对仅包含公式、表格、图片的XML节点,序号可以统一设置为XXXX。对包含文本的段落,如果文本的内容为小标题,例如,技术发明内容、具体实施方式等,则不插入段落序号,否则插入段落序号,例如,[0001]、[0002]等。
对于权利要求书部分对应的XML部分,需要统一序号格式。例如,如果权利要求的序号为数字+小数点/顿号,则需要统一序号格式为数字+小数点。
下面对步骤S30进行详细介绍,在图1的基础上,请参照图4,步骤S30可以包括:
S301,获取任意一个目标对象集。
S302,遍历目标对象集中的所有对象,并对对象中的每个子对象依次进行处理,得到目标对象集对应的XML组成部分。
S303,遍历每个对象集,根据每个对象集对应的XML组成部分得到待转换文档对应的XML文档。
在本实施例中,步骤S302中对对象中的每个子对象依次进行处理的过程,可以包括:
若子对象为文本对象,则根据子对象生成文本标签;
若子对象为嵌入式对象、或者非嵌入式对象、或者公式对象,则将子对象转换为图片,并生成图片标签及图片索引;
若子对象为表格对象且表格模式为简单模式,则根据子对象输出预设格式的表格XML结构内容;
若子对象为表格对象且表格模式为复杂模式,则将子对象转换为图片,并生成图片标签及图片索引。
文本标签可以是<p>标签,如果子对象为文本对象,则可以直接生成<p>标签。图片标签可以是<img>标签,如果子对象为嵌入式对象、或者非嵌入式对象、或者公式对象,则将子对象转换为图片,并生成<img>标签及图片索引。图片索引是指,该图是待转换文档中的第几个图。
如果子对象是表格对象,需要根据表格模式进行转换。如果表格模式为简单模式,则直接根据子对象输出预设格式的表格XML结构内容,预设格式可以是专利审查机构要求的格式等,在此不做限定。如果表格模式为复杂模式,则将子对象转换为图片,并生成<img>标签及图片索引。图片索引同上,是指该图是待转换文档中的第几个图。
从上述内容可知,如果子对象是嵌入式对象、或者非嵌入式对象、或者公式对象、或者表格对象且表格模式为复杂模式,则需要将子对象转换为图片,下面对该转换过程进行详细介绍。
在本实施例中,将子对象转换为图片的过程,可以包括:
通过预先配置的开发平台,识别子对象的增强元文件;
解析增强元文件,识别出图片范围;
将增强元文件转换为矢量图片;
通过开发平台,将矢量图片中图片范围对应的图片区域备份为目标格式,得到图片。
也就是,首先,基于开发平台(例如,VSTO开发包)提供的API,识别出待转换文档中的公式、表格、图片等内容;同时,基于开发平台(例如,VSTO开发包)提供的API提取到上一步识别出的公式、表格、图片等的byte[]数据包,byte[]数据包可以是增强元文件。
然后,解析增强元文件,识别出图片范围,识别逻辑可以是:从byte[]数据包中第8位开始取4个byte,将其作为图片左上角的X坐标;从byte[]数据包中第12位开始取4个byte,将其作为图片左上角的Y坐标;从byte[]数据包中第16位开始取4个byte,将其作为图片右下角的X坐标;从byte[]数据包中第20位开始取4个byte,将其作为图片右下角的Y坐标。
接下来,将byte[]数据包转换为矢量图片,例如,.wmf图元文件。
接下来,通过开发平台(例如,.net平台)的控件(例如,PictureBox控件)隐藏展示上一步得到的矢量图片,设置控件的尺寸与矢量图片的尺寸一致,并且设置控件的背景色为白色。同时,利用PictureBox控件提供的方法DrawToBitmap将隐藏展示的矢量图片暂存为位图,该位图的尺寸与控件的尺寸一致。
最后,将上一步得到的位图中,与第二步得到的图片范围对应的图片区域备份为目标格式,得到图片。目标格式可以是JPG,图片的输出质量可以是255L、分辨率可以是96~300。
可选地,图片区域的起始点的X坐标可以是,图片左上角的X坐标与0中的最大值。图片区域的起始点的Y坐标可以是,图片左上角的Y坐标与0中的最大值。图片区域的宽可以是A1和A2中的最小值,其中,A1=控件的宽-图片左上角的X坐标;A2=图片右下角的X坐标-图片左上角的X坐标+2。图片区域的高可以是B1和B2中的最小值,其中,B1=控件的高-图片左上角的Y坐标;B2=图片右下角的Y坐标-图片左上角的Y坐标+2。
可选地,得到图片后,还可以将图片的尺寸转换为毫米单位。将图片的尺寸转换为毫米单位的过程与步骤S202a中的过程类似,在此不再赘述。
在一种可能的情形下,将待转换文档转换为XML文档之后,用户可能想要浏览一下该XML文档是否满足要求,例如,是否存在乱码、不清晰的情形,因此,为了便于用户浏览,还可以根据得到的XML文档生成预览文档,因此,在图1的基础上,请参照图5,在步骤S30之后,该文档转换方法还可以包括:
S40,根据XML文档,生成待转换文档对应的预览文档。
下面对步骤S40进行详细介绍,在图5的基础上,请参照图6,步骤S40可以包括:
S401,根据文本标签,生成预览文档中的文档段落。
S402,根据图片标签及图片索引,将对应的图片插入到预览文档中。
在生成预览文档的过程中,对于文本标签,例如,<p>标签,则直接生成预览文档的文档段落。同时,如果文本包含特殊格式,例如,上下角标、下划线、删除线、加粗、斜体等,则需要针对性的对生成的文档段落进行调整。
对于图片标签,例如,<img>标签,则需要根据步骤S302得到的图片索引,将对应的图片插入到预览文档中。
在本实施例中,根据图片标签及图片索引,将对应的图片插入到预览文档中的过程,可以包括:
获取图片的编码文本、图片范围和分辨率;
根据图片范围和分辨率,计算图片在预览文档中的内嵌绘图对象范围;
根据图片标签和图片索引,将图片插入到内嵌绘图对象范围处。
可选地,编码文本可以是Base64编码文本,图片范围可以包括图片宽度和图片高度,分辨率可以包括图片水平分辨率和图片垂直分辨率。
内嵌绘图对象范围可以包括宽度和高度,并且宽度和高度可以分别用cx和cy表示,计算cx和cy的过程可以包括:
cx=(long)(72.0/图片水平分辨率)*图片宽度;
cy=(long)(72.0/图片垂直分辨率)*图片高度;
其中,long表示数据类型为长整型。
与现有技术相比,本申请实施例提供的文档转换方法具有以下有益效果:
首先,服务器构建内置通道集合,各个通道间相互独立,互不影响,确保了服务程序的多开及多个通道同时存在的可能,提升了单台服务器转档的效率。
其次,基于待转换文档本身的XML结构进行文档转换,整个转换过程可控,转换效果好。
第三,文档转换过程不依赖于第三方,能够对保存的图片质量有更好的控制,清晰度提升明显。
为了执行上述实施例及各个可能的实施方式中的相应步骤,下面给出应用于服务器的文档转换装置的实现方式。需要说明的是,本实施例所述的文档转换装置,其基本原理及产生的技术效果与前述方法实施例相同,为简要描述,本实施例中未提及部分,可参考前述方法实施例的相应内容。
请参照图7,图7示出了本申请实施例提供的文档转换装置100的方框示意图。文档转换装置100应用于服务器,包括:获得模块110、解析模块120及第一转换模块130。
获得模块110,用于获得待转换文档的可扩展标记语言XML结构,其中,待转换文档包括至少一个组成部分。
解析模块120,用于解析待转换文档的XML结构,得到每个组成部分对应的对象集。
第一转换模块130,用于对每个对象集依次进行转换,得到待转换文档对应的XML文档。
可选地,获得模块110具体用于:
获取待转换文档;调用预先配置的开发平台,获得待转换文档的XML结构。
可选地,解析模块120具体用于:
在XML结构中,确定出每个组成部分对应的XML部分;对每个XML部分依次进行解析,得到每个组成部分对应的对象集。
可选地,解析模块120执行在XML结构中,确定出每个组成部分对应的XML部分的方式,包括:
按照设定标题,在XML结构中识别每个组成部分对应的起止范围;根据每个起止范围,得到每个组成部分对应的XML部分。
可选地,解析模块120执行对每个XML部分依次进行解析,得到每个组成部分对应的对象集的方式,包括:
获取任意一个目标XML部分,其中,目标XML部分包括至少一个标签和每个标签对应的XML节点,目标XML部分对应目标组成部分;
将XML节点转换为对象,其中,对象包括段落序号、XML节点内容、节点文本、对象索引、第一标识、第二标识及段落内容节点集,第一标识表征是否以句号结尾,第二标识表征是否包含图片和/或公式,段落内容节点集包括至少一个XML子节点;
将XML子节点转换为子对象,其中,子对象包括文本对象、表格对象、嵌入式对象、非嵌入式对象、公式对象中的至少一种;文本对象包括文本内容及文本格式;表格对象包括表格序号及表格模式;嵌入式对象包括第一对象序号;非嵌入式对象包括第二对象序号及预先设定的特殊标识;公式对象包括公式序号;
获得目标组成部分对应的对象集,其中,对象集包括所有对象及每个对象对应的所有子对象。
可选地,解析模块120执行对每个XML部分依次进行解析,得到每个组成部分对应的对象集的方式,还包括:
若XML子节点为特殊字符,则将特殊字符转换为图片。
可选地,解析模块120执行将特殊字符转换为图片的方式,包括:
计算特殊字符的尺寸;通过预先配置的开发平台,生成初始图片,其中,初始图片中包括数字,数字是对特殊字符进行转换得到的;将初始图片中尺寸对应的图片区域备份为目标格式,得到图片。
可选地,第一转换模块130具体用于:
获取任意一个目标对象集;遍历目标对象集中的所有对象,并对对象中的每个子对象依次进行处理,得到目标对象集对应的XML组成部分;遍历每个对象集,根据每个对象集对应的XML组成部分得到待转换文档对应的XML文档。
可选地,第一转换模块130执行对对象中的每个子对象依次进行处理的方式,包括:
若子对象为文本对象,则根据子对象生成文本标签;
若子对象为嵌入式对象、或者非嵌入式对象、或者公式对象,则将子对象转换为图片,并生成图片标签及图片索引;
若子对象为表格对象且表格模式为简单模式,则根据子对象输出预设格式的表格XML结构内容;
若子对象为表格对象且表格模式为复杂模式,则将子对象转换为图片,并生成图片标签及图片索引。
可选地,第一转换模块130执行将子对象转换为图片的方式,包括:
通过预先配置的开发平台,识别子对象的增强元文件;解析增强元文件,识别出图片范围;将增强元文件转换为矢量图片;通过开发平台,将矢量图片中图片范围对应的图片区域备份为目标格式,得到图片。
可选地,文档转换装置100还包括第二转换模块140。
第二转换模块140,用于根据XML文档,生成待转换文档对应的预览文档。
可选地,第二转换模块140具体用于:
根据文本标签,生成预览文档中的文档段落;根据图片标签及图片索引,将对应的图片插入到预览文档中。
可选地,第二转换模块140执行根据图片标签及图片索引,将对应的图片插入到预览文档中的方式,包括:
获取图片的编码文本、图片范围和分辨率;根据图片范围和分辨率,计算图片在预览文档中的内嵌绘图对象范围;根据图片标签和图片索引,将图片插入到内嵌绘图对象范围处。
请参照图8,图8示出了本申请实施例提供的服务器10的方框示意图。服务器10包括处理器11、存储器12及总线13,处理器11通过总线13与存储器12连接。
存储器12用于存储程序,例如图7所示的文档转换装置100,文档转换装置100包括至少一个可以软件或固件(firmware)的形式存储于存储器12中的软件功能模块,处理器11在接收到执行指令后,执行所述程序以实现上述实施例揭示的文档转换方法。
存储器12可能包括高速随机存取存储器(Random Access Memory,RAM),也可能还包括非易失存储器(non-volatile memory,NVM)。
处理器11可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器11中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器11可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、微控制单元(Microcontroller Unit,MCU)、复杂可编程逻辑器件(Complex Programmable LogicDevice,CPLD)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、嵌入式ARM等芯片。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器11执行时实现上述实施例揭示的文档转换方法。
综上所述,本申请实施例提供的一种文档转换方法、装置、服务器及存储介质,将文档转换为XML格式时,先通过获得待转换文档的XML结构并进行解析,得到待转换文档中每个组成部分对应的对象集;再对得到的每个对象集依次进行转换,最终得到待转换文档对应的XML文档。因此,基于待转换文档本身的XML结构进行文档转换,所以整个转换过程可控,转换效果好。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种文档转换方法,其特征在于,所述方法包括:
获得待转换文档的可扩展标记语言XML结构,其中,所述待转换文档包括至少一个组成部分,所述组成部分是所述待转换文档中各个标题对应的文档部分,所述组成部分包括若干段落,每个段落包括文本、表格、图片、公式、特殊符号中的一种或多种;
在所述XML结构中,确定出每个所述组成部分对应的XML部分;所述待转换文档中的组成部分和XML结构中的XML部分一一对应;
对每个所述XML部分依次进行解析,得到所述每个所述组成部分对应的对象集;所述组成部分对应的对象集包括所有对象及每个对象对应的所有子对象,一个对象对应一个段落,对象对应的子对象分别对应段落包括的文本、表格、图片、公式、特殊符号;
对每个所述对象集依次进行转换,得到所述待转换文档对应的XML文档。
2.如权利要求1所述的方法,其特征在于,所述在所述XML结构中,确定出每个所述组成部分对应的XML部分的步骤,包括:
按照设定标题,在所述XML结构中识别每个所述组成部分对应的起止范围;
根据每个所述起止范围,得到每个所述组成部分对应的XML部分。
3.如权利要求1所述的方法,其特征在于,所述对每个所述XML部分依次进行解析,得到所述每个所述组成部分对应的对象集的步骤,包括:
获取任意一个目标XML部分,其中,所述目标XML部分包括至少一个标签和每个所述标签对应的XML节点,所述目标XML部分对应目标组成部分;
将所述XML节点转换为对象,其中,所述对象包括段落序号、XML节点内容、节点文本、对象索引、第一标识、第二标识及段落内容节点集,所述第一标识表征是否以句号结尾,所述第二标识表征是否包含图片和/或公式,所述段落内容节点集包括至少一个XML子节点;
将所述XML子节点转换为子对象,其中,所述子对象包括文本对象、表格对象、嵌入式对象、非嵌入式对象、公式对象中的至少一种;所述文本对象包括文本内容及文本格式;所述表格对象包括表格序号及表格模式;所述嵌入式对象包括第一对象序号;所述非嵌入式对象包括第二对象序号及预先设定的特殊标识;所述公式对象包括公式序号;
获得所述目标组成部分对应的所述对象集。
4.如权利要求3所述的方法,其特征在于,所述将所述XML子节点转换为子对象的步骤之前,还包括:
若所述XML子节点为特殊字符,则将所述特殊字符转换为图片。
5.如权利要求4所述的方法,其特征在于,所述将所述特殊字符转换为图片的步骤,包括:
计算所述特殊字符的尺寸;
通过预先配置的开发平台,生成初始图片,其中,所述初始图片中包括数字,所述数字是对所述特殊字符进行转换得到的;
将所述初始图片中所述尺寸对应的图片区域备份为目标格式,得到所述图片。
6.如权利要求3所述的方法,其特征在于,所述对每个所述对象集依次进行转换,得到所述待转换文档对应的XML文档的步骤,包括:
获取任意一个目标对象集;
遍历所述目标对象集中的所有对象,并对所述对象中的每个子对象依次进行处理,得到所述目标对象集对应的XML组成部分;
遍历每个所述对象集,根据每个所述对象集对应的XML组成部分得到所述待转换文档对应的XML文档。
7.如权利要求6所述的方法,其特征在于,所述对所述对象中的每个子对象依次进行处理的步骤,包括:
若所述子对象为文本对象,则根据所述子对象生成文本标签;
若所述子对象为嵌入式对象、或者非嵌入式对象、或者公式对象,则将所述子对象转换为图片,并生成图片标签及图片索引;
若所述子对象为表格对象且表格模式为简单模式,则根据所述子对象输出预设格式的表格XML结构内容;
若所述子对象为表格对象且表格模式为复杂模式,则将所述子对象转换为图片,并生成图片标签及图片索引。
8.如权利要求7所述的方法,其特征在于,所述将所述子对象转换为图片的步骤,包括:
通过预先配置的开发平台,识别所述子对象的增强元文件;
解析所述增强元文件,识别出图片范围;
将所述增强元文件转换为矢量图片;
通过所述开发平台,将所述矢量图片中所述图片范围对应的图片区域备份为目标格式,得到所述图片。
9.如权利要求7所述的方法,其特征在于,所述方法还包括:
根据所述XML文档,生成所述待转换文档对应的预览文档。
10.如权利要求9所述的方法,其特征在于,所述根据所述XML文档,生成所述待转换文档对应的预览文档的步骤,包括:
根据所述文本标签,生成所述预览文档中的文档段落;
根据所述图片标签及所述图片索引,将对应的图片插入到所述预览文档中。
11.如权利要求10所述的方法,其特征在于,所述根据所述图片标签及所述图片索引,将对应的图片插入到所述预览文档中的步骤,包括:
获取所述图片的编码文本、图片范围和分辨率;
根据所述图片范围和所述分辨率,计算所述图片在所述预览文档中的内嵌绘图对象范围;
根据所述图片标签和所述图片索引,将所述图片插入到所述内嵌绘图对象范围处。
12.如权利要求1所述的方法,其特征在于,所述获得待转换文档的可扩展标记语言XML结构的步骤,包括:
获取待转换文档;
调用预先配置的开发平台,获得所述待转换文档的XML结构。
13.一种文档转换装置,其特征在于,所述装置包括:
获得模块,用于获得待转换文档的可扩展标记语言XML结构,其中,所述待转换文档包括至少一个组成部分,所述组成部分是所述待转换文档中各个标题对应的文档部分,所述组成部分包括若干段落,每个段落包括文本、表格、图片、公式、特殊符号中的一种或多种;
解析模块,用于:
在所述XML结构中,确定出每个所述组成部分对应的XML部分;所述待转换文档中的组成部分和XML结构中的XML部分一一对应;
对每个所述XML部分依次进行解析,得到所述每个所述组成部分对应的对象集;所述组成部分对应的对象集包括所有对象及每个对象对应的所有子对象,一个对象对应一个段落,对象对应的子对象分别对应段落包括的文本、表格、图片、公式、特殊符号;
第一转换模块,用于对每个所述对象集依次进行转换,得到所述待转换文档对应的XML文档。
14.一种服务器,其特征在于,所述服务器包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-12中任一项所述的文档转换方法。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-12中任一项所述的文档转换方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110692863.XA CN113297425B (zh) | 2021-06-22 | 2021-06-22 | 文档转换方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110692863.XA CN113297425B (zh) | 2021-06-22 | 2021-06-22 | 文档转换方法、装置、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113297425A CN113297425A (zh) | 2021-08-24 |
CN113297425B true CN113297425B (zh) | 2023-09-12 |
Family
ID=77329068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110692863.XA Active CN113297425B (zh) | 2021-06-22 | 2021-06-22 | 文档转换方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113297425B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116702712B (zh) * | 2023-08-09 | 2023-10-17 | 北京凯锐远景科技有限公司 | 一种Word任务书转换方法、装置、电子设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101980183A (zh) * | 2010-09-17 | 2011-02-23 | 深圳市万兴软件有限公司 | 一种解析Word文件信息的方法及其系统 |
CN107644027A (zh) * | 2016-07-20 | 2018-01-30 | 江苏云媒数字科技有限公司 | 一种超媒体元数据合成与转换系统 |
CN108153717A (zh) * | 2017-12-29 | 2018-06-12 | 北京仁和汇智信息技术有限公司 | 一种科技期刊论文word文档的结构化处理方法及装置 |
CN112507666A (zh) * | 2020-12-21 | 2021-03-16 | 北京百度网讯科技有限公司 | 文档转换方法、装置、电子设备及存储介质 |
CN112527291A (zh) * | 2020-12-01 | 2021-03-19 | 瀚云科技有限公司 | 网页生成方法、装置、电子设备及存储介质 |
CN112667563A (zh) * | 2020-12-04 | 2021-04-16 | 深圳先进技术研究院 | 一种文档管理及操作方法和系统 |
CN112699641A (zh) * | 2021-03-25 | 2021-04-23 | 南京国睿信维软件有限公司 | Word内容批量拷贝到基于s1000d标准dm的快速转换方法 |
CN112861489A (zh) * | 2020-07-28 | 2021-05-28 | 浙江明度智控科技有限公司 | 一种对word文档进行处理的方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352857B2 (en) * | 2008-10-27 | 2013-01-08 | Xerox Corporation | Methods and apparatuses for intra-document reference identification and resolution |
JP6308169B2 (ja) * | 2015-05-20 | 2018-04-11 | コニカミノルタ株式会社 | 文書変換プログラム及び文書変換方法 |
-
2021
- 2021-06-22 CN CN202110692863.XA patent/CN113297425B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101980183A (zh) * | 2010-09-17 | 2011-02-23 | 深圳市万兴软件有限公司 | 一种解析Word文件信息的方法及其系统 |
CN107644027A (zh) * | 2016-07-20 | 2018-01-30 | 江苏云媒数字科技有限公司 | 一种超媒体元数据合成与转换系统 |
CN108153717A (zh) * | 2017-12-29 | 2018-06-12 | 北京仁和汇智信息技术有限公司 | 一种科技期刊论文word文档的结构化处理方法及装置 |
CN112861489A (zh) * | 2020-07-28 | 2021-05-28 | 浙江明度智控科技有限公司 | 一种对word文档进行处理的方法和装置 |
CN112527291A (zh) * | 2020-12-01 | 2021-03-19 | 瀚云科技有限公司 | 网页生成方法、装置、电子设备及存储介质 |
CN112667563A (zh) * | 2020-12-04 | 2021-04-16 | 深圳先进技术研究院 | 一种文档管理及操作方法和系统 |
CN112507666A (zh) * | 2020-12-21 | 2021-03-16 | 北京百度网讯科技有限公司 | 文档转换方法、装置、电子设备及存储介质 |
CN112699641A (zh) * | 2021-03-25 | 2021-04-23 | 南京国睿信维软件有限公司 | Word内容批量拷贝到基于s1000d标准dm的快速转换方法 |
Non-Patent Citations (1)
Title |
---|
XML格式字处理文档的WEB发布系统的设计与实现;宋超;《中国优秀硕士学位论文全文数据库 信息科技辑》(第01期);I138-570 * |
Also Published As
Publication number | Publication date |
---|---|
CN113297425A (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109801347B (zh) | 一种可编辑图像模板的生成方法、装置、设备和介质 | |
CN100440222C (zh) | 用于文本易读性增强的系统和方法 | |
US8738415B2 (en) | Automated workflow assignment to print jobs | |
CN110879937A (zh) | 文档生成网页的方法、装置、计算机设备和存储介质 | |
US20010014900A1 (en) | Method and system for separating content and layout of formatted objects | |
CN113190781B (zh) | 页面布局方法、装置、设备及存储介质 | |
CN111782216A (zh) | 页面生成方法、服务器和存储介质 | |
CN110990010B (zh) | 一种软件界面代码的生成方法及装置 | |
CN111831384A (zh) | 语言切换方法和装置、设备及存储介质 | |
CN113419729A (zh) | 基于组件化的前端页面搭建方法、装置、设备及存储介质 | |
CN113297425B (zh) | 文档转换方法、装置、服务器及存储介质 | |
CN116402020A (zh) | 基于ofd文档的签名图像化处理方法、系统和存储介质 | |
CN110674437A (zh) | 网页页面数据转换成pdf附件的方法与装置 | |
CN113360106A (zh) | 一种网页打印方法和装置 | |
CN102467490B (zh) | 一种字体数据的处理方法及装置 | |
CN110727458A (zh) | 一种通过后台管理切换页面模板设置的方法和装置 | |
CN114791988A (zh) | 一种基于浏览器的pdf文件解析方法、系统、存储介质 | |
CN103034990A (zh) | 出版物校验的方法和装置 | |
CN113392354B (zh) | 一种网页正文解析方法、系统、介质及电子设备 | |
CN114691712A (zh) | 一种生成票据的方法、装置以及存储介质 | |
CN102099806B (zh) | 信息输出装置及信息输出方法 | |
CN113177389A (zh) | 文本处理方法、装置、电子设备及存储介质 | |
CN112800078A (zh) | 基于javascript的轻量级文本标注方法、系统、设备及存储介质 | |
CN114676097A (zh) | 一种ofd文件处理方法、装置、设备及介质 | |
CN112650492A (zh) | 一种Web页面的渲染方法、系统及相关装置 |
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 |