Java 从PDF文件中删除矩形
我想要一个从PDF文件中删除所有矩形的程序。其中一个用例是打开给定的PDF文件,查看矩形后面是否有隐藏的信息。PDF文件的其余部分应保持原样 哪个PDF库适合此任务?在Java中,我希望代码如下所示:Java 从PDF文件中删除矩形,java,pdf,Java,Pdf,我想要一个从PDF文件中删除所有矩形的程序。其中一个用例是打开给定的PDF文件,查看矩形后面是否有隐藏的信息。PDF文件的其余部分应保持原样 哪个PDF库适合此任务?在Java中,我希望代码如下所示: PdfDocument doc = PdfDocument.load(new File("original.pdf")); PdfDocument unblackened = doc.transform(new CopyingPdfVisitor() { public void visitRe
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文档,我的自定义代码将省去所有黑色矩形。Itext PDF库有修改PDF内容的方法
*ITEXT CONTENTPARSER示例*可能会让您有所了解。“qname”参数(限定名)可用于检测矩形元素
其他选项,如果要获取文档上的文本,请使用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();
}
public void parsePdf(String pdf,String txt)抛出IOException{
PdfReader reader=新PdfReader(pdf);
PdfReaderContentParser=新的PdfReaderContentParser(读取器);
PrintWriter out=新的PrintWriter(新文件输出流(txt));
文本抽取策略;
对于(int i=1;i Itext)来说,还没有按照矢量图形实现所有可能的功能。在这方面,您可能会对PDFBox更满意。