java - iText 4.2.0 - com.itextpdf.text.exceptions.InvalidPdfException: No message found for trailer.not.found
问题描述
I am trying to flatten PDF document which mostly has Digital Signatures in them. However, I am facing an exception with a particular PDF file. The PDFReader throws an exception :
com.itextpdf.text.exceptions.InvalidPdfException: No message found for trailer.not.found
at com.itextpdf.text.pdf.PdfReader.rebuildXref(Unknown Source)
at com.itextpdf.text.pdf.PdfReader.readPdf(Unknown Source)
at com.itextpdf.text.pdf.PdfReader.<init>(Unknown Source)
at com.itextpdf.text.pdf.PdfReader.<init>(Unknown Source)
Below is my code segment:
public static void newFlatten() {
System.out.println("Started new flattening process :: " + new Date().getTime());
PdfReader reader;
boolean bRet = false;
try {
reader = new PdfReader(SRC); // Place where i am getting exception
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(DEST));
AcroFields form = stamper.getAcroFields();
Set<String> fieldKeys = form.getFields().keySet();
/*for (String fieldKey : fieldKeys) {
form.setField(fieldKey, "X");
}*/
stamper.setFormFlattening(true);
stamper.close();
reader.close();
System.out.println("Stop new flattening process :: " + new Date().getTime());
System.out.println("Destination FIle :: " + DEST);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
解决方案
推荐阅读
- google-drive-api - 如何恢复应用程序已撤销的 Google Drive API?
- azure-service-fabric - Service Fabric -“System.Replicator”报告了属性“RemoteReplicatorConnectionStatus”的警告。无法访问副本 xyz
- mule - 如何检查有效负载中是否存在密钥并在选择条件下使用它
- java - Java - 带有语法的抽象语法树
- mqtt - Telegraf + MQTT + influxdb:修改 mqtt 的输入
- c++ - 使用 std::ifstream 从文件中读取产品价格
- css - 仅在调整大小低于特定宽度时更改 IE 浏览器中的样式属性
- python - Python,文件之间的变量导入
- tensorflow - 在张量流中查找一个值的张量到另一个张量的索引
- javascript - 尝试构建反应库但不断收到错误:元素类型无效:预期为字符串