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

TXT转换PDF方法1:利用WPS转换的效率及适应性研究(JAVA环境) 博客分类: 文档处理 文档格式转换javaWPSTXTPDF 

程序员文章站 2024-03-25 09:13:46
...

结论:处理的文件越大,单页输出效率越高,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来判断,可以根据文字内容来判断编码。