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

相关推荐
User_芊芊君子1 小时前
【JavaSE】复习总结
java·开发语言·python
我有一颗五叶草1 小时前
线程间通信
java·开发语言
somethingGoWay2 小时前
wpf .netcore 导出pdf文件
pdf·wpf·.netcore
我真的是大笨蛋5 小时前
K8S-Pod(下)
java·笔记·云原生·容器·kubernetes
碳水加碳水5 小时前
Java代码审计实战:XML外部实体注入(XXE)深度解析
java·安全·web安全·代码审计
努力也学不会java6 小时前
【设计模式】 原型模式
java·设计模式·原型模式
方渐鸿7 小时前
【2024】k8s集群 图文详细 部署安装使用(两万字)
java·运维·容器·kubernetes·k8s·运维开发·持续部署
晓衣7 小时前
2025“獬豸杯”全国电子数据取证竞赛-k8s服务器取证wp
服务器·经验分享·程序人生·网络安全·容器·kubernetes·学习方法
学亮编程手记7 小时前
K8S v1.33 版本主要新特性介绍
java·容器·kubernetes
Haven-8 小时前
Java-面试八股文-JVM篇
java·jvm·面试