WORD文件转换PDF方法1:利用Word转换的效率及适应性研究(JAVA环境)

结论: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,差别并不明显。

猜你喜欢

转载自doingwell.iteye.com/blog/1811071
今日推荐