0

我想要一个从 PDF 文件中删除所有矩形的程序。一个用例是使给定的 PDF 文件变黑,以查看矩形后面是否有任何隐藏信息。PDF 文件的其余部分应保持原样。

哪个 PDF 库适合这项任务?在 Java 中,我希望代码如下所示:

PdfDocument doc = PdfDocument.load(new File("original.pdf"));
PdfDocument unblackened = doc.transform(new CopyingPdfVisitor() {
  public void visitRectangle(PdfRect rect) {
    if (rect.getFillColor().getBrightness() >= 0.1) {
      super.visitRectangle(rect);
    }
  }
});
unblackened.save(new File("unblackened.pdf"));

CopyingPdfVisitor将完全按原样复制 PDF 文档,而我的自定义代码将忽略所有黑色矩形。

4

1 回答 1

0

Itext pdf 库有修改 pdf 内容的方法。

*ITEXT CONTENTPARSER Example * 可能会给你任何想法。“qname”参数(限定名称)可用于检测矩形元素。

http://itextpdf.com/book/chapter.php?id=15

其他选项,如果要获取文档上的文本,请使用 PdfReaderContentParser 提取文本内容

public void parsePdf(String pdf, String txt) throws IOException {
    PdfReader reader = new PdfReader(pdf);
    PdfReaderContentParser parser = new PdfReaderContentParser(reader);
    PrintWriter out = new PrintWriter(new FileOutputStream(txt));
    TextExtractionStrategy strategy;
    for (int i = 1; i <= reader.getNumberOfPages(); i++) {
        strategy = parser.processContent(i, new SimpleTextExtractionStrategy());
        out.println(strategy.getResultantText());
    }
    out.flush();
    out.close();
    reader.close();
}

http://itextpdf.com/examples/iia.php?id=277上的示例

于 2013-10-12T16:53:26.217 回答