PAdES版本控制:如何从签名PDF中获取原始版本?
从PAdES签名PDF中获取原始版本的方法
首先明确:PAdES的版本控制依赖PDF的增量更新机制——每次签名都是在原有PDF基础上追加新的修订(revision),原始版本对应PDF的第一个修订内容,而非被内嵌的独立文件。
可行的获取方法
1. 用命令行工具提取
- pdftk:执行命令查看所有修订记录:
输出中会标记pdftk signed.pdf dump_data_utf8Revision: N条目,随后提取第一个修订(原始版本):pdftk signed.pdf cat 1 output original.pdf - qpdf:先查看版本列表:
再提取原始版本:qpdf --show-versions signed.pdfqpdf --extract-version=1 signed.pdf original.pdf
2. 手动截取原始内容(适合技术人员)
PDF以%%EOF作为每个修订的结束标记。你可以:
- 如果PDF未压缩,直接用文本编辑器打开,找到第一个
%%EOF,截取该标记之前的所有内容保存为新PDF,这就是原始版本。 - 如果PDF被压缩,先执行
qpdf --qdf signed.pdf uncompressed.pdf解压,再按上述步骤操作。
3. 关于Adobe Reader的局限
Adobe Reader默认仅展示最新版本的内容和签名信息,不会主动暴露所有修订记录。你可以在「文档属性」→「描述」→「高级」中查看修订次数,但无法直接导出原始版本,必须借助外部工具。
内容的提问来源于stack exchange,提问作者Cristie
相关产品推荐
相关产品推荐

