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

结论:处理的文件越大,单页输出效率越高,4页文件的平均效率:151ms/page,1311页文件的平均效率:38.3ms/page。处理效率和文字编码无明显关联。(查看word测试结果

 

0.运行环境

需要运行在windows环境下,原因当下wps的linux版本还处在beta阶段,所以不推荐使用。笔者所使用的wps为2012个人版。“wps文字”版本号:8.1.0.3526

 

1.需要的辅助工具:

由于java环境无法直接调用ActiveX,所以借助于开源的jacob。版本: 1.17

 

2.代码准备:

这里只列举几个关键步骤吧,完整代码就不列举了,可以自行组合。

2.1 创建WPS文字的ActiveX对象

ActiveXComponent app = new ActiveXComponent("WPS.Application");
//后台转换,隐藏界面
app.setProperty("Visible", false);
 

 

2.2 打开txt文档

//获取到所有文档对象
Dispatch documents=app.getProperty("Documents").toDispatch();
//open 有15个参数,第一个是打开文档文件名,最后一个控制是否【不显示】编码选择对话框
Object[] attr=new Object[15];
attr[0]=in;
attr[14]=true;
Dispatch doc = Dispatch.call(documents, "open",attr).toDispatch();

 

2.3 输出为pdf文档

Dispatch.call(doc, "ExportPdf",out);

 

2.4 关闭文档

Dispatch.call(doc, "Close", 0);

 

2.5 关闭WPS文字的ActiveX对象

 

Dispatch.call(documents, "Close", 0);
documents.safeRelease();
Dispatch.call(app, "Quit", 0);
app.safeRelease();

 

3. 转换效率

场景1:txt文件大小:5.02k,GBK编码。生成pdf后109k,4页。处理1024个文件,用时:618026毫秒,10分钟。平均每个文件用时:603.5ms。

 

场景2:txt文件大小:6.04k,UTF-8编码。生成pdf后依然是109k,4页。处理1024个文件,用时:617839毫秒,10分钟。平均每个文件用时:603.4ms。和场景1的结果无明显差别。

 

场景3:txt文件大小:2.42m,GBK编码。生成pdf后4.56m,1311页。处理16个文件,用时:803473毫秒,13分钟。平均每个文件用时:50217ms。

 

从以上结果分析出,处理的文件越大,单页输出效率越高,4页文件的平均效率:151ms/page,1311页文件的平均效率:38.3ms/page。处理效率和文字编码无明显关联。

 

4. 适应性分析:

4.1 文件占用

由于采用了只读方式打开txt文件,所以不受文件是否被其他程序打开的影响。

4.2 文字编码

文字编码由WPS来判断,可以根据文字内容来判断编码。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值