iText库中是否有可用的API来检测PDF文件是否已压缩xref表?
这个库的PDFReader类有一些关于xref的有用API,但没有一个符合我的目的。
要求是:
- 检查PDF是否有xref压缩表
- 如果1为true ->,则"Uncompress"xref .
- 发送字节流进行进一步处理。
- 一旦处理完成"压缩"回xref表到其原始形式
如能提供这方面的建议,我将不胜感激。
注::实现不局限于ittext。可以使用任何其他可以实现此功能的Java库。许可(如果需要)也不是问题。
事实证明,iText已经支持这一点。您需要创建一个PdfReader
实例,然后使用isNewXrefType()
。
要解压缩PDF文档的XRef表,可以使用以下方法:
public void uncompressXRef(String src, String dest)
throws IOException, DocumentException {
PdfReader reader = new PdfReader(src);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
stamper.close();
reader.close();
}
要重新压缩XRef表,使用以下方法:
public void recompressXRef(String src, String dest)
throws IOException, DocumentException {
PdfReader reader = new PdfReader(src);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
stamper.getWriter().setFullCompression();
stamper.close();
reader.close();
}
您最好的办法可能是看看您还想对PDF做什么,然后使用该库。