我想要一个程序从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文档,而我的自定义代码会遗漏所有黑色矩形。
答案 0 :(得分:0)
Itext pdf库有办法修改pdf内容。
* ITEXT CONTENTPARSER示例*可能会给你任何想法。 "的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();
}