PDF Box Reader 中如何高亮文本?

3

我想在PDF文档中突出显示特定的文本。我已经编写了以下代码,但是生成的PDF文档是空的,并且只有一个方框。我想要展示现有的PDF内容,并在文本上绘制一个方框,以便它可以作为文本高亮显示。

      File file = new File(pdfName);
      PDDocument document = PDDocument.load(file);

      PDPage page = document.getPage(0);

      //Instantiating the PDPageContentStream class
      PDPageContentStream contentStream = new PDPageContentStream(document, page);

      //Setting the non stroking color
      contentStream.setNonStrokingColor(Color.DARK_GRAY);

      //Drawing a rectangle 
      contentStream.addRect(data.get(0).getX(), data.get(0).getY(), data.get(0).getWidth(), data.get(0).getHeight());

      //Drawing a rectangle
      contentStream.fill();

      System.out.println("rectangle added");

      //Closing the ContentStream object
      contentStream.close();

      //Saving the document
      //File file2 = new File("CompareOutput.pdf");

      //File fileOutput = new File("CompareOutput.pdf");
      document.save("CompareOutput.pdf");

      //Closing the document
      document.close();
1个回答

3

替代

PDPageContentStream contentStream = new PDPageContentStream(document, page);

使用

PDPageContentStream contentStream = new PDPageContentStream(document, page, AppendMode.APPEND, true, true))

这样,您的新内容流将被追加。

但是我预计还会有另一个问题,您可能希望"highlight"是透明的。请看这篇答案


1
它正在工作,非常感谢您。我一直在思考如何更改追加模式。我创建了一个新的输出流并使用追加模式,但它没有起作用。现在我得到了预期的输出。现在我需要使它透明或创建一个红色描边框。我可以慢慢来 :)。 - Chandhan Sai

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接