`
doingwell
  • 浏览: 34038 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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来判断,可以根据文字内容来判断编码。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics