WORD文件转换PDF方法1:利用Word转换的效率及适应性研究(JAVA环境) 博客分类: 文档处理
程序员文章站
2024-03-25 09:13:58
...
结论:5页文件每页用时153.4ms,1430页文件每页用时141.4ms,差别并不明显。
0. 运行环境
既然是利用Microsoft Office word,所以理所当然需要运行在Windows下。测试用的Office版本:2010。
1.需要的辅助工具:
由于java环境无法直接调用ActiveX,所以借助于开源的jacob。版本: 1.17。
2.代码准备:
这里只列举几个关键步骤吧,完整代码就不列举了,可以自行组合。
2.1 创建Word的ActiveX对象
ActiveXComponent app = new ActiveXComponent("Word.Application"); app.setProperty("Visible", false);
2.2 打开word文档
Dispatch docs = app.getProperty("Documents").toDispatch(); Dispatch doc = Dispatch.call(docs, "Open", in, // FileName false, // ConfirmConversions true // ReadOnly ).toDispatch();
2.3 输出为PDF文档
Dispatch.call(doc, "SaveAs", out, // FileName 17);
2.4 关闭文档
Dispatch.call(doc, "Close", false); doc.safeRelease();
2.5 关闭ActiveX
if (docs != null) { docs.safeRelease(); } if (app != null) { app.invoke("Quit", 0); app.safeRelease(); }
3. 转换效率
场景1:word文件大小:18.7k,5页。生成pdf后123k。生成的文件不都是相同大小,这个问题还有待研究。处理1024个文件,用时:785555ms,13分5秒。平均每个文件用时:767.1ms。
场景2:word文件大小:2.27m,1430页。生成pdf是13.3m。pdf文件还是大小不一。处理4个文件,用时:808589ms,13分28秒。平均每个文件用时:202147ms。
可以看出,场景1的5页文件每页用时153.4ms,场景2的1430页文件每页用时141.4ms,差别并不明显。