PDF 合并测试:性能与内容完整性

我们一直在改进 PDF 合并工具 JPedal,并希望通过测试对比其与其他工具的表现。该工具支持合并包括大文件在内的完整文档。

如何测试 PDF 合并输出

我们在示例文件上进行了对比测试,您也可以用自有文件复现。 测试中使用的方法之一是借助 Adobe Reader:若打开文件时(即使未做修改)立即弹出保存对话框,通常表明文件存在结构或有效性问题。 虽然这并非权威检测,但可作为检测输出文件问题的实用预警手段,目标是确保合并后的 PDF 能在所有标准阅读器中无缝打开,不触发修复提示。

第一项测试:大文件合并

第一个测试旨在评估各工具处理超大文件合并的能力 ------ 具体为将文件与自身合并,生成 26.5 万页的 PDF。 测试重点为性能:处理时间、内存占用及能否成功生成输出文件。

1 iText 9:合并未完成,运行 2 分钟后内存报错,占用内存达 4GB,未生成文件。

2 JPedal:稳定完成合并,耗时 5 分 20 秒,内存占用仅 1.8GB,成功生成文件,是唯一未崩溃或内存耗尽的工具。

3 PDFBox:耗时 5 分 44 秒,与 JPedal 速度接近,但同样因内存报错(占用 4.2GB)未生成文件。

4 PDFSam:速度最慢,耗时 11 分钟后因内存问题失败,内存占用 5GB,未生成文件。

第二项测试:内容完整性

第二项测试聚焦内容完整性及合并过程对内容的处理,以评估不同工具的合并质量。 测试内容:将 39 页无表单字段的文档与 1 页含多个表单字段的文档合并(共 40 页),观察各工具对表单字段的处理。

1 iText 9:文件合并成功,但部分表单字段不可见,虽有可点击区域但无响应;Adobe 提示保存文件,表明输出存在问题。

2 JPedal:文档成功合并,所有页面和表单项可见且交互正常;Adobe 提示保存,但测试中未发现外观和功能问题。

3 PDFSam:表单页合并成功,但存在特定表单需更新值才可见的问题;更新其他值时,该表单会完全消失。原始文件无此问题,且 Adobe 未提示保存,暗示字段被 Adobe Reader 判定为损坏。

4 PDFBox:页面和表单合并无明显问题,但 "打开动作" 受合并影响,生成的文档默认打开第 40 页(原文件为 1 页)。合并大文件时,此问题会导致用户难以维持上下文。

结论

在测试中,JPedal 是唯一在大规模文件合并和表单内容测试中均无重大问题的工具。其他工具虽在速度或基础合并上有优势,但存在内存错误、表单功能或文档结构问题。

我们的主页:PDF 转 HTML5、Java 图像库、Java PDF SDK - IDRsolutions

相关推荐
桦说编程2 小时前
从 ForkJoinPool 的 Compensate 看并发框架的线程补偿思想
java·后端·源码阅读
躺平大鹅4 小时前
Java面向对象入门(类与对象,新手秒懂)
java
初次攀爬者5 小时前
RocketMQ在Spring Boot上的基础使用
java·spring boot·rocketmq
花花无缺5 小时前
搞懂@Autowired 与@Resuorce
java·spring boot·后端
Derek_Smart6 小时前
从一次 OOM 事故说起:打造生产级的 JVM 健康检查组件
java·jvm·spring boot
NE_STOP7 小时前
MyBatis-mybatis入门与增删改查
java
孟陬10 小时前
国外技术周刊 #1:Paul Graham 重新分享最受欢迎的文章《创作者的品味》、本周被划线最多 YouTube《如何在 19 分钟内学会 AI》、为何我不
java·前端·后端
想用offer打牌11 小时前
一站式了解四种限流算法
java·后端·go
华仔啊11 小时前
Java 开发千万别给布尔变量加 is 前缀!很容易背锅
java