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

相关推荐
llwszx3 小时前
深入理解Java锁原理(一):偏向锁的设计原理与性能优化
java·spring··偏向锁
云泽野4 小时前
【Java|集合类】list遍历的6种方式
java·python·list
二进制person4 小时前
Java SE--方法的使用
java·开发语言·算法
技术小赵4 小时前
优化Facebook广告投放的五大关键策略
经验分享
小阳拱白菜5 小时前
java异常学习
java
FrankYoou6 小时前
Jenkins 与 GitLab CI/CD 的核心对比
java·docker
麦兜*7 小时前
Spring Boot启动优化7板斧(延迟初始化、组件扫描精准打击、JVM参数调优):砍掉70%启动时间的魔鬼实践
java·jvm·spring boot·后端·spring·spring cloud·系统架构
KK溜了溜了7 小时前
JAVA-springboot 整合Redis
java·spring boot·redis
天河归来7 小时前
使用idea创建springboot单体项目
java·spring boot·intellij-idea
weixin_478689767 小时前
十大排序算法汇总
java·算法·排序算法