gpt4 book ai didi

java - Java中如何检测PDF是否压缩了外部参照表?

转载 作者:太空宇宙 更新时间:2023-11-04 07:51:46 25 4
gpt4 key购买 nike

iText中有可用的API吗?检测PDF文件是否有压缩外部参照表的库?

PDFReader该库的类有一些关于外部参照的有用 API,但没有一个能满足我的目的。

要求是:

  1. 检查 PDF 是否具有外部参照压缩表。
  2. 如果 1 为 true -> 则“解压缩”外部参照表。
  3. 发送字节流以进行进一步处理。
  4. 处理完成后,将外部参照表“压缩”回其原始形式

任何这方面的指示将不胜感激。

P.S.:该实现不限于 iText。任何其他可以实现它的 Java 库都可以使用。许可(如果需要)也不是问题。

最佳答案

事实证明,iText 已支持此功能。您需要创建一个 PdfReader 实例,然后使用 isNewXrefType()

要解压缩PDF文档的外部参照表,可以使用以下方法:

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();
}

要重新压缩外部参照表,请使用以下方法:

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();
}

关于java - Java中如何检测PDF是否压缩了外部参照表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14342041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com