【发布时间】:2020-02-26 01:58:19
【问题描述】:
每当我尝试阅读 Office 生成的 PDF 文件时,似乎都会出现错误:
com.itextpdf.kernel.PdfException: Append mode requires a document without errors, even if recovery is possible.
at com.itextpdf.kernel.pdf.PdfDocument.open
有问题的文件示例:https://drive.google.com/open?id=1fnwtXfEGg6BIeVuAi-l28Ol_dxbCd12F 和我用来打开它的代码片段。我的目标是做一个分离的签名,只要不是由 MS Office 生成的,这对每个文件都适用。
PdfReader reader = new PdfReader(docPath);
StampingProperties properties = new StampingProperties();
properties.useAppendMode();
//This is where the error is thrown.
PdfSigner signer = new PdfSigner(reader, new FileOutputStream(outputPath), properties);
我读过这个基本上是相同问题的问题:Append mode requires a document without errors, even if recovery is possible,尝试了 Lowagie 建议的删除字节
xref
0 24
0000000000 65535 f
0000011981 00000 n
0000000239 00000 n
0000003212 00000 n
0000000022 00000 n
0000000220 00000 n
0000000343 00000 n
0000003176 00000 n
0000000000 00000 n
0000003345 00000 n
0000000440 00000 n
0000003155 00000 n
0000003295 00000 n
0000003863 00000 n
0000003519 00000 n
0000003843 00000 n
0000004099 00000 n
0000011737 00000 n
0000011758 00000 n
0000011803 00000 n
0000011877 00000 n
0000011900 00000 n
0000011942 00000 n
0000011961 00000 n
trailer
<< /Size 24 /Root 12 0 R /Info 1 0 R /ID [ <8e4b8658dd1d1f745bdf99a0eb05bb97>
<8e4b8658dd1d1f745bdf99a0eb05bb97> ] >>
startxref
12125
%%EOF
但我的 PDF 抱怨并停止工作,也尝试离开 %%EOF 但得到了相同的结果。
所以两件事:
1) Lowagie 和 MKL 讨论的错误是否有修复?
2) 有什么办法可以解决这个问题?
【问题讨论】:
-
你真的需要追加模式吗?如果该文档尚不包含任何签名,那么对我而言,您为什么需要使用它并不明显。你能详细说明一下吗?
标签: pdf itext ms-office itext7