一种改进WORD文档自动转PDF文档的新型方法
文献发布时间:2023-06-19 11:57:35
技术领域
本发明属于技术领域,具体涉及一种改进WORD文档自动转PDF文档的新型方法。
背景技术
随着市场需求变化,日常工作中的使用的办公软件及文档管理大量的用到Word文档转换Pdf文档,这个时候就需要用工具来批量的将Word文档转换成Pdf文档,减少重复且繁杂的工作,提高工作效率。
为了解决这个问题,市场上就出现一些Word文档自动转Pdf文档的工具,比如:1、使用.NET技术调用Office接口来进行转换Pdf;2、使用Java POI技术进行Word文档转换Pdf文档;3、使用Java Page Office组件技术进行Word文档转换Pdf文档;等等,这些方法都可以进行Word文档转换Pdf文档。
目前市场上的背景技术包括:
方案一:.NET技术调用Office接口,
实现方法:通过Visual Studio开发工具使用.NET技术引用Office API,打开Word文档另存为Pdf文档,
缺陷:对Office环境的要求比较高,必须要求服务器上安装的Office版本和客户端安装的Office版本一致,由于客户端Office很难做到统一编辑的Word文档上传到服务器出现格式错乱;
方案二:Java POI技术做Word转换Pdf文档
实现方法:通过Java导入POI的jar包,调用XWPFDocument打开Word文档,然后调用函数PdfConverter.getInstance().convert();将Word文档转换成Pdf文档,
缺陷:无法满足相对复杂格式的Word文档,存在图片丢失问题等
方案三:Java Page Office组件技术
实现方法:先安装Page Office组件,Java引用Page Office组件,创建WordDocument对象,调用函数webOpen()打开Word文档,再调用函数WebSaveAsPDF()将Word文档转换成Pdf文档。
缺陷:只能在Windows操作系统安装,且无法满足复杂格式的word文档。
随着市场需求不断变化Word文档格式要求越来越高,一些企业定制化的Word文档格式复杂,传统的Word自动转换Pdf文档无法满足复杂格式需求,为此我们提出一种改进WORD文档自动转PDF文档的新型方法。
发明内容
本发明的目的在于提供一种改进WORD文档自动转PDF文档的新型方法,以解决上述背景技术中提出的问题。
为了实现上述目的,本发明采用了如下技术方案:一种改进WORD文档自动转PDF文档的新型方法,包括如下步骤:
A、Import Win32com模块和Import Dispatch模块导入至Python程序;
B、建立主函数并在主函数中命名word变量,使用函数打开word程序;
C、在主函数中命名变量doc,调用函数doc.Documents.Open(file_open_path)对进行读写,根据函数中的参数为word文件路径,并实行函数打开需要转换的word文档;
D、调用函数doc.PrintOut(OutputFileName=file_out_path),其中函数的参数为打印输出的Pdf文件路径,执行打印word文档操作;
E、Java调用Python程序,获取pdf文件。
进一步地,所述步骤E中,具体为Java代码通过执行cmd命令,调用python程序main()函数,执行word文档打印Pdf文档,Java程序等待python程序执行完成,拿到Pdf文件转换完成。
进一步地,函数为Runtime.exec(file_python_path,file_open_path,file_out_path),其中参数file_python_path为python程序路径,参数file_open_path为word文档路径,参数file_out_path为输出的Pdf文档路径。
进一步地,所述步骤C中函数参数file_open_path为word文件路径。
进一步地,所述步骤D中,函数参数file_out_path为打印输出的pdf文件路径。
相比于现有技术,本发明的有益效果在于:
本申请利用Java程序调用Python打开Word程序调用Word打印机打印文档实现自动打印PDF,打印出来的Pdf基本和Word文档保持一致,不会出现格式不对,图片丢失等问题,有效解决转换成功率,同时通过Python调用Word打印PDF的方法,具有功能开发简单,代码量少,简化重复繁杂工作的优点。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
图1为本发明的流程图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
在本发明的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
参照图1,本发明提出的一种技术方案:
第一步、安装Java开发工具Idea和JDK1.8。
第二步、安装Python3.7.9和安装Office2016 64位。
第三步、设置虚拟打印机为Microsoft Print to Pdf,进入系统控制面板—>设备和打印机,找到Microsoft Print to PDF打印机,右键设置为默认打印机。
第四步、编写Python调用Word程序,传入word文件路径打开Word文档,在python程序编辑器导入模块import win32com和import Dispatch,写一个main()函数,在main()函数中命名word变量使用函数win32com.client.Dispatch('Word.Application')打开word程序,设置word程序不显示word.Visible=0和word.DisplayAlerts=0不弹窗提示;
在main()函数中命名变量doc,然后调用函数doc.Documents.Open(file_open_path),函数中的参数file_open_path为word文件路径,执行函数打开需要转换的word文档;
调用函数doc.PrintOut(OutputFileName=file_out_path),其中参数file_out_path为打印输出的Pdf文件路径,执行打印word文档操作。
第五步、Java调用python程序,或取Pdf文件,具体为Java代码通过执行cmd命令,函数为Runtime.exec(file_python_path,file_open_path,file_out_path),其中参数file_python_path为python程序路径,参数file_open_path为word文档路径,参数file_out_path为输出的Pdf文档路径,调用python程序main()函数,执行word文档打印Pdf文档,Java程序等待python程序执行完成,拿到Pdf文件转换完成。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
- 一种改进WORD文档自动转PDF文档的新型方法
- 一种PDF文档编辑器和PDF文档编辑方法