最近,公司要求做个文件转pdf的调研报告,于是在网上找了一些实现方法,现在将这些方法做个对比,并记录下来,以后或许有用呢,哈哈。
首先说一下需求,产品要求不能使用第三方软件实现,因为这种实现方式效率不高,所以需要使用“纯Java代码”实现。同时也对跨平台有要求,系统需要运行在linux系统上。综合现阶段发现的方案,决定采用基于Aspose的方式进行实现。
好了,现在先看一下对比的结果:
各实现对比表
于Windows平台进行测试:
测试文件:
Word:大小380k、页数225页。内含图片(排版),文字(不同颜色、字体、不同语言)、表格(含样式)
Excel:大小297k。内含插入图形、长表格。
PPT:大小539k、内含图片、自定义图形、文字(不同颜色、字体、不同语言)、表格(含样式)
|
基于Openoffice |
基于libreOffice |
基于Office |
基于Pio+Itext |
基于Aspose |
|
跨平台性 |
跨平台 |
跨平台 |
仅Windows |
跨平台 |
跨平台 |
|
是否安装软件 |
需安装Openoffice |
需安装libreOffice |
需安装Microsoft Office |
否 |
否 |
|
是否收费 |
免费 |
免费 |
软件收费 (可破解) |
免费 |
Jar包收费 (可破解) |
|
转换Word |
效率 |
未测 |
首次开启14s。 平均8s |
平均10s |
平均10s |
平均4.2s |
效果 |
未测 |
支持不同字体、不同文字、支持表格样式。 插入图形走样 转换后页数相当 (225-227) 大小相当 (380k-360k) |
完全一致 转换后大小上升 (380k-1.24M) |
字体、表格样式、插入图形失真。(严重失真) 转换后页数下降 (225-105) 大小飙升 (380k-1.74M) |
字体样式或无法转换。 转换后页数相当(225-224) 大小上升 (380k-721k) |
|
转换Excel |
效率 |
未测 |
首次开启10s 平均4.5s |
异常(Office2016) |
平均5.8s |
平均2.6s |
效果 |
未测 |
支持文本颜色。 不支持插入图形 文本会发生走样 转换后大小相当 (297k-140k) |
提示异常 (Office 2016) |
样式失真。 excel页面大小过长导致PDF页面被截断,无法显示完整 |
不支持插入图片转换 转换后大小减小 (297k-196k) |
|
转换PPT |
效率 |
未测 |
平均5.3s |
平均4s |
平均15s |
平均15.5s |
效果 |
未测 |
几乎完全一致 能完美支持表格、自定义图形、图片、文字等 大小减小 (539k-255k) |
转换成功,无法打开(Office 2016) |
样式严重失真。甚至错误。 转换后大小上升 (539K-1.3M) 页数 (225-105) |
几乎完全一致 转换后大小减小 (539k-398k) |
|