TXT转换PDF方法2:利用Word转换的效率及适应性研究(JAVA环境)

结论:处理文件的页数约多,单页处理效率约高。相比wps,不论是大文件还是小文件,都明显要慢很多。处理文字编码为UTF-8的文件时速度较快。(查看WPS测试结果

 

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 打开txt文档

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:txt文件大小:5.02k,GBK编码。生成pdf后123k~124k,4页。生成的文件不都是相同大小,这个问题还有待研究。处理1024个文件,用时:898889ms,14分58秒。平均每个文件用时:877.8ms。比WPS文字603.5ms慢了45%。

 

场景2:txt文件大小:6.04k,UTF-8编码。生成pdf是122k,4页。pdf文件还是大小不一。处理1024个文件,用时:876222ms,14分36秒。平均每个文件用时:855.7ms。时间略低于场景1。原因有可能是word需要把GBK编码的文件转换成UTF-8编码后才能再执行操作,这一点有待证实。

 

场景3:txt文件大小:2.42m,GBK编码。生成pdf后13.4m,1430页。处理2个文件,用时:464491ms,7分44秒。平均每个文件用时:232245.5ms。比WPS文字慢3.6倍。

 

分析结果得出:处理文件的页数约多,单页处理效率约高。相比wps,不论是大文件还是小文件,都明显要慢很多。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值