验证 PDF
如何判断 PDF 是否存在结构错误
这里检查 PDF 的对象、页面树和交叉引用结构,并生成可复制或下载的文字报告。检查采用宽松模式,不修改原 PDF。通过结构检查不代表页面显示、印刷标准或数字签名也已通过验证。
费用: 可免费使用。文件大小和使用次数有上限。
检查 PDF 的步骤
上传一份 PDF
点击 选择 PDF 或 上传 PDF,也可将文件拖入预览区。界面标示的上限为 200 MB。其他工具用过的 PDF 可以从 上传文件 中选择。
确认源文件
源 PDF 显示文件名和大小,预览区显示页面。即使预览无法显示这份 PDF,仍可提交结构检查。
开始验证
点击 验证 PDF。这个工具没有需要选择的设置;服务器完成检查后,预览区会显示报告。
查看报告末尾
末尾的
validation ok表示未发现结构错误。若末尾是错误信息,请根据下方说明判断问题;前面的提示不一定表示验证失败。复制或下载报告
复制 将报告放入剪贴板,便于附在问题反馈中。下载报告 保存 TXT 文件。原 PDF 不会被修改。
报告信息怎么看
报告来自执行检查的开源 PDF 工具 pdfcpu,是纯文本。validating(mode=relaxed) 表示宽松检查模式,末尾给出结果。读取文件时产生的说明或 PDF 2.0 提示也可能出现在报告中。
validation ok
在宽松模式允许的范围内,文档对象、交叉引用数据和必需条目通过了结构检查。这个结果并非完整的 PDF 合规认证。
validation error (obj#:…): …
文件可以读取,但某个部分不符合检查规则。dict=pageDict required entry=MediaBox missing 表示页面缺少尺寸信息;validatePages: page tree invalid 表示页面树不一致,例如声明的页数与实际页面不符;validateFontDict: missing Subtype 表示字体定义缺少类型。
Read: xRefTable failed: …
读取器无法解析文档结构。记录对象位置的交叉引用数据可能损坏,也可能有对象被截断。no matching %%EOF for startxref 表示找不到所需的文件结束标记。请确认收到的是完整文件,再从来源获取一份新副本。
pdfcpu skipped: 与 pdfcpu repaired:
这些是读取过程的说明。skipped: missing obj #12 表示索引所指位置没有预期对象;repaired: 表示读取器在内存中作了修复以继续检查,并未改写原文件。连续出现多条 missing obj 可能说明索引位置整体不符,例如文件传输时换行符发生了变化。
please provide the correct password
文件设有打开密码。如果知道密码,先用 PDF 解锁 去除,再检查解锁后的副本。仅限制打印或复制的 PDF 可以直接检查。
Catalog: missing root dict
未找到文档目录这一根对象,它负责指向页面。文件可能只是开头看起来像 PDF,实际内容不是 PDF;也可能已严重损坏。
PDF 2.0 提示
声明为 PDF 2.0 的文件会出现框状提示,说明 pdfcpu 仅提供基础 PDF 2.0 支持。该提示本身不是错误,检查结果在后面。
检查范围与结果的限制
PDF 由带编号的页面、字体、图像等对象组成。交叉引用表记录对象位置,文件尾部的信息指向文档目录。检查会读取这些结构,依据 ISO 32000-1:2008(PDF 1.7)规则验证,并对 PDF 2.0 作基础检查。
本工具固定使用宽松模式。它沿用结构规则,但容许部分常见偏差,例如文档目录缺少 /Type,或数据流声明的 /Length 不正确。页面上没有严格/宽松模式切换。
检查不会解码页面内容或图像数据,所以损坏的图像或绘图仍可能通过。它也不检查 PDF/A、PDF/X、无障碍合规、数字签名、字体是否嵌入或链接是否有效。如需这些结果,应使用相应的专业预检工具。
遇到结构问题,可先从原始文档重新导出或保存 PDF;若下载不完整,则重新获取文件。打印为 PDF 也会创建新文件,但可能将可填写的表单变为普通页面内容,并丢失链接或书签。选择这种方式前,应考虑是否还需要这些功能。
格式与限制
- 输入格式
- PDF。带打开密码的文件须先解锁;仅限制打印或复制的文件可以检查。
- 输出
- 页面中的纯文本报告;可用 复制 或 下载报告 保存为 TXT。
- 原 PDF
- 只读取,不修改,也不生成新的 PDF。
- 文件大小上限
- 200 MiB(209,715,200 字节;界面标示 200 MB)。
- 每次处理
- 1 份 PDF。
- 设置
- 无可选设置;固定使用宽松模式,检查 PDF 1.7 结构并提供基础 PDF 2.0 支持。
- 处理方式
- 服务器本地运行 pdfcpu,不调用外部或 AI 服务。单次任务的服务器处理时限为 15 分钟。
- 水印
- 不添加水印。
- 存储期限
- 游客的上传文件和报告在 48 小时后自动删除,免费账户为 30 天;付费方案可按方案保留更久。
常见问题
PDF 能正常打开,为什么报告仍有错误?
阅读器可能自行重建损坏的交叉引用表,或略过缺失条目,因此看起来能打开。结构检查会报告这些问题;更严格的印刷系统、归档系统或 PDF 库可能拒绝同一文件。重要文件应从来源重新导出后检查。
报告显示 validation ok,为什么页面仍不正常?
检查针对结构,不验证页面实际显示效果。图像和绘图数据没有被解码,损坏的数据可能通过结构检查。请在阅读器中逐页查看,并在实际要使用该文件的软件中确认显示效果。
为什么只报告一个错误?
检查遇到第一个不符合规则的地方就会停止。处理该问题后,例如从原始文档重新导出,再检查一次,才能确认是否还有其他错误。
验证会修复或改写 PDF 吗?
不会。文件只被读取,上传文件 中的原 PDF 保持不变;新增的是文字报告。检查通过后,可用 PDF 信息 查看版本、页数等详情。
PDF 会发送给外部服务吗?
不会。验证在本网站服务器上运行 pdfcpu,不使用 AI 或第三方服务。上传文件和报告按上述账户存储期限自动删除。