一种Word文档向LaTeX文档转换的方法及系统技术方案

技术编号:21914199 阅读:60 留言:0更新日期:2019-08-21 12:30
本发明专利技术提供了一种Word文档向LaTeX文档转换的方法及系统,用户提交Microsoft Office Word文档文件,系统利用JACOB技术对文件中的文本、图片、公式、表格等数据进行初始分析;利用Apache POI、JACOB技术提取源文件中的数据元素,并记录各元素的相对位置信息;根据朴素贝叶斯算法对提取的各文本元素进行分类,基于层叠自动编码器对源文件公式实现转换;将所述相对位置信息与各数据元素相结合,形成LaTeX目标文档的信息流;将上述信息流写入到目标文件中,从而转换成最终的LaTeX文档。本发明专利技术能够降低由Microsoft Office Word文档向LaTeX文档转换的困难性和复杂性,为高校师生及科研人员等提供了专业的文档转换方法,提高了对文档处理的工作效率。

A Method and System for Converting Word Document to LaTeX Document

【技术实现步骤摘要】
一种Word文档向LaTeX文档转换的方法及系统
本专利技术涉及文档转换和数据处理领域,具体涉及一种Word文档向LaTeX文档转换的方法及系统。
技术介绍
TeX提供了一套功能强大并且十分灵活的排版语言,它多达900条指令,并且TeX有宏功能,用户可以不断地定义自己适用的新命令来扩展TeX系统的功能。LeslieLamport开发的LaTeX是当今世界上最流行和使用最为广泛的TeX宏集。MicrosoftOfficeWord作为Office套件的核心程序,提供了许多易于使用的文档创建工具,也是目前市场上占有量最大的文字处理器。Word专用的文件格式Word文件(.docx)成为事实上最通用的文档标准。文档转换是将Word、Pdf、Txt、Ooxml、Odf、Html等文档格式进行转化。例如专利技术人黒木纯提出的将Ooxml、Odf的文档转换为HTML格式文档的方法、AdobeAcrobatProfessional软件实现Word格式和Pdf格式的转换等。ApachePOI是一个开放源代码的Java数据库,其主要目标是访问Word的底层文件。JACOB是一个Java-COM中间件,通过这个组件可以在Java应用程序中调用COM组件和Win程序库。利用ApachePOI和JACOB可以实现对MicrosoftOfficeWord格式文档的读写功能。在实现本专利技术过程中,专利技术人发现现有文档转换在技术与用户使用方面主要存在以下三类问题:首先,现有的文档转换技术一般是针对少数源格式文档和特定目标的格式文档,转化功能单一,对于用户来说,实际使用价值不高。其次,对于编码方式不同的文档实现转换具有一定的困难性,例如MicrosoftOfficeWord与LaTeX文档之间的转换难题。最后,LaTeX文档由Tex语言的标记语言构成,制成一份完整的LaTeX文档,需要掌握TeX语言的几乎所有记述规则以及代码编写能力,对于非专业人士而言,文档撰写和排版存在较高的困难性和复杂性。
技术实现思路
本专利技术要解决的技术问题在于,针对上述目前现有的文档转换技术转化功能单一、实际使用价值不高的技术问题,提供一种Word文档向LaTeX文档转换的方法及系统,能够实现不同类型文档之间的转换,降低多文档呈现的难度,提高文档使用的高效性。一种Word文档向LaTeX文档转换的方法,应用于计算机设备内的应用程序中,所述应用程序是响应人为触发指令后才进行启动的,包括:S1、用户向系统提交MicrosoftOfficeWord源文件;S2、系统打开所述MicrosoftOfficeWord源文件;S3、通过JACOB组件对源文件中的文本、图片、表格、公式数据元素进行初始分析,获取每个数据元素的类别以及在源文档中的相对位置信息,并记录分析后的类别及位置参数;S4、利用ApachePOI和JACOB技术提取源文件中的各类数据元素;S5、利用朴素贝叶斯算法对提取的数据元素进行分类判定以形成相对应的LaTeX文本元素信息流,基于层叠自动编码器对源文件公式元素进行转换以形成最佳的LaTeX公式元素信息流,其余数据元素直接按照相对位置信息直接转换为目标文档格式信息流;S6、将上述相对位置信息与各目标数据元素信息流相结合,形成LaTeX目标文档的信息流;S7、将所述信息流写入到目标文件中,从而转换成LaTeX文档。进一步的,所述步骤S1中:所提交的MicrosoftOfficeWord源文档文件为.docx或.doc格式。进一步的,所述步骤S2中,系统通过调用ApacheJACOB组件中openDocument方法打开该MicrosoftOfficeWord源文档。进一步的,所述步骤S3包括:S31、对源文件中的所有数据元素的存储状态进行判断,包括文本、公式和表格;S32、通过JACOB组件中的Paragraphs、Item、Text接口记录各元素的类别参数以及相对位置信息。进一步的,所述步骤S4包括:S41、结合上述类别参数并通过JACOB组件中的get(“Text”)、get(“Font”)、get(“Size”)提取源文档文件中的文本数据内容、文本类型及文本格式;S42、利用ApachePOI中XWPFDocument的接口提取源文档中图片数据,使用FileOutputStream方法将所有图片保存为本地文件;S43、结合JACOB组件中getTable、以及ReadTable函数获得源文档中的表格数据;对于表格的规格是通过getTableRowsCount方法以及getTableColumnsCount方法获得;S44、结合S32中的类别参数,通过JACOB组件中copy方法,以及Toolkit中粘贴板子类函数getContents函数获得源文档公式数据;对于粘贴板的使用是通过Java类库Toolkit工具类中getDefaultToolkit().getSystemClipboard()的Transferable变量获得,并且通过getTransferData方法将数据进行转换;S45、记录文本数据、图片、表格、公式数据的相对位置。进一步的,所述步骤S5对于文本内容分类还包括:S51、将上述提取的文本数据元素通过JIEBA分词算法转换成向量;S52、将提取到的文本数据分类问题转化为一个二值分类问题,即任意未知文本数据样本d必定属于类别集合C={C0,C1},C0代表正文文本,C1代表标题文本;S53、朴素贝叶斯算法识别每项文本数据类型,其中包括正文文本,标题文本两类;S54、对于一个拥有特征向量X的未知文本样本d属于类别C的概率表示为:取概率最大者表示为该文本样本的类别,以此判别文本类别形成对应的LaTeX文本元素;S55、利用层叠自动编码算法将所提取的公式数据进行编码;S56、将所得编码结果与系统内部公式模板库中已有数据进行近似匹配;S57、将匹配度最高的公式模板数据输入到系统公式转换函数模块WordMathToLaTeX中,转换为LaTeX文档识别的编码方式。进一步的,所述步骤S56中,匹配程度最高的判断依据为层叠自动编码算法结果和已知样本的欧几里得距离,其计算方式为:其中x,y分别代表层叠自动编码算法输出结果和已知样本,x1、x2、…、y1、y2..yn代表公式编码后每个向量空间的值。进一步的,所述步骤S6中,根据转换系统中参数存储的源Word文档中各元素的相对位置信息,在保证源文档中各元素位置不变的情况下,生成目标文档信息流。进一步的,所述步骤S7中,通过调用BufferedWriter函数写入到目标LaTeX文件。一种Word文档向LaTeX文档转换的系统,包括:提交模块:用于用户向系统提交MicrosoftOfficeWord源文件;读取模块:用于系统打开所述MicrosoftOfficeWord源文件;分析模块:用于通过JACOB组件对源文件中的文本、图片、表格、公式数据元素进行初始分析,获取每个数据元素的类别以及在源文档中的相对位置信息,并记录分析后的类别及位置参数;提取模块:用于利用ApachePOI和JACOB技术提取源文件中的各类数据元素;转换模块:用于利用朴素贝叶斯算法对提取的数据元素进行分类判定以形成相对应的LaTeX文本元本文档来自技高网
...

【技术保护点】
1.一种Word文档向LaTeX文档转换的方法,应用于计算机设备内的应用程序中,所述应用程序是响应人为触发指令后才进行启动的,其特征在于,包括:S1、用户向系统提交Microsoft Office Word源文件;S2、系统打开所述Microsoft Office Word源文件;S3、通过JACOB组件对源文件中的文本、图片、表格、公式数据元素进行初始分析,获取每个数据元素的类别以及在源文档中的相对位置信息,并记录分析后的类别及位置参数;S4、利用Apache POI和JACOB技术提取源文件中的各类数据元素;S5、利用朴素贝叶斯算法对提取的数据元素进行分类判定以形成相对应的LaTeX文本元素信息流,基于层叠自动编码器对源文件公式元素进行转换以形成最佳的LaTeX公式元素信息流,其余数据元素按照相对位置信息转换为目标文档格式信息流;S6、将上述相对位置信息与各目标数据元素信息流相结合,形成LaTeX目标文档的信息流;S7、将所述信息流写入到目标文件中,从而转换成LaTeX文档。

【技术特征摘要】
1.一种Word文档向LaTeX文档转换的方法,应用于计算机设备内的应用程序中,所述应用程序是响应人为触发指令后才进行启动的,其特征在于,包括:S1、用户向系统提交MicrosoftOfficeWord源文件;S2、系统打开所述MicrosoftOfficeWord源文件;S3、通过JACOB组件对源文件中的文本、图片、表格、公式数据元素进行初始分析,获取每个数据元素的类别以及在源文档中的相对位置信息,并记录分析后的类别及位置参数;S4、利用ApachePOI和JACOB技术提取源文件中的各类数据元素;S5、利用朴素贝叶斯算法对提取的数据元素进行分类判定以形成相对应的LaTeX文本元素信息流,基于层叠自动编码器对源文件公式元素进行转换以形成最佳的LaTeX公式元素信息流,其余数据元素按照相对位置信息转换为目标文档格式信息流;S6、将上述相对位置信息与各目标数据元素信息流相结合,形成LaTeX目标文档的信息流;S7、将所述信息流写入到目标文件中,从而转换成LaTeX文档。2.根据权利要求1所述的一种Word文档向LaTeX文档转换的方法,其特征在于,所述步骤S1中:所提交的MicrosoftOfficeWord源文档文件为.docx或.doc格式。3.根据权利要求1所述的一种Word文档向LaTeX文档转换的方法,其特征在于,所述步骤S2中,系统通过调用ApacheJACOB组件中openDocument方法打开该MicrosoftOfficeWord源文档。4.根据权利要求1所述的一种Word文档向LaTeX文档转换的方法,其特征在于,所述步骤S3包括:S31、对源文件中的所有数据元素的存储状态进行判断,包括文本、公式和表格;S32、通过JACOB组件中的Paragraphs、Item、Text接口记录各元素的类别参数以及相对位置信息。5.根据权利要求1所述的一种Word文档向LaTeX文档转换的方法,其特征在于,所述步骤S4包括:S41、结合上述类别参数并通过JACOB组件中的get(“Text”)、get(“Font”)、get(“Size”)提取源文档文件中的文本数据内容、文本类型及文本格式;S42、利用ApachePOI中XWPFDocument的接口提取源文档中图片数据,使用FileOutputStream方法将所有图片保存为本地文件;S43、结合JACOB组件中getTable、以及ReadTable函数获得源文档中的表格数据;对于表格的规格是通过getTableRowsCount方法以及getTableColumnsCount方法获得;S44、结合S32中的类别参数,通过JACOB组件中copy方法,以及Toolkit中粘贴板子类函数getContents函数获得源文档公式数据;对于粘贴板的使用是通过Java类库Toolkit工具类中getDefaultToolkit().getSystemClipboard()的Transfer...

【专利技术属性】
技术研发人员:宋军徐衡朱超群彭艳张坤曹威吴雅笛
申请(专利权)人:中国地质大学武汉
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1