欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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