如何解决数字签名的 PDF 增量更新:使用常规外部参照表,使用外部参照流中断
我一直在用 Typescript 编写一些代码来计算两个 PDF 的增量更新,因为我们使用的库不支持这个 (pdf-lib)
流程如下:
- 将 PDF 加载到 pdf-lib
- 进行修改(在我的例子中:写一个 数字签名)
- 写入新文件
- 比较两个文件 逐个对象并将差异放在原始对象的末尾 文件作为增量更新,然后写入外部参照/预告片。
我的代码运行良好,直到我在对象流中测试了带有 XREF 表的 PDF。在这种情况下,Adobe Reader 会抱怨:
从我看来,作为流的 XREF 的格式是不同的,但是我的代码总是在最后写入一个常规的 XREF 表。
我在此处上传了原始和修改后的 PDF: http://www.wikiupload.com/JPM2J1I9H3HD4JP
重要的部分是:
- 原始文件以 XREF 流结束:
8 0 obj
...
endobj
startxref
116
- 我得到的增量更新以:
xref
0 1
0000000000 65535 f
...
trailer
<<
/Size 79
/Root 21 0 R
/Info 19 0 R
/Prev 116
>>
startxref
152863
%%EOF
我的问题是:如果原始 PDF 包含 XREF 流,增量更新是否也应将 XREF 写入与替换相同的对象中?或者有没有办法让这两种方法一起工作?还是问题无关?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。