编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

Java 查找并高亮显示PDF中的跨行文本

wxchong 2024-08-03 03:02:14 开源技术 25 ℃ 0 评论

在前文中我曾介绍过如何使用Free Spire.PDF for Java来查找PDF文档中的指定文本并对其高亮显示。今天这篇文章将演示如何用这个工具来查找和高亮显示跨行文本

安装Free Spire.PDF for Java

首先需要在E-iceblue中文官网获取Free Spire.PDF for Java产品包,将Spire.Pdf.jar作为依赖项添加到Java程序中;或者是创建Maven项目,然后在pom.xml文件中添加如下代码引入JAR包。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf.free</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>

代码示例

以下是查找和高亮显示跨行文本的具体实现步骤:

  • 创建PdfDocument实例并通过PdfDocument.loadFromFile()方法加载一个PowerPoint示例文档。
  • 使用PdfDocument.getPages()方法获取文档所有页面。
  • 使用PdfPageBase.findText(java.lang.String searchPatternText, java.util.EnumSet<TextFindParameter> parameter)方法查找跨行文本,并使用PdfTextFindCollection.getFinds()方法获取文本信息。
  • 使用PdfTextFind.appplyHighLight()方法高亮显示文本。
  • 使用PdfDocument.saveToFile()方法保存结果文档至指定路径。
import com.spire.pdf.*;
import com.spire.pdf.general.find.PdfTextFind;
import com.spire.pdf.general.find.TextFindParameter;
import java.awt.geom.Rectangle2D;
import java.util.EnumSet;

public class FindAndHighlightText {
    public static void main(String[] args) throws Exception {
        //加载示例文档
        PdfDocument pdf = new PdfDocument();
        pdf.loadFromFile("C:\\Users\\Test1\\Desktop\\sample.pdf");

        PdfTextFind[] result = null;
        for (Object pageObj : pdf.getPages()) {
            PdfPageBase page =(PdfPageBase)pageObj;
            // 查找跨行文本
            result = page.findText("人工智能", EnumSet.of(TextFindParameter.CrossLine)).getFinds();
            for (PdfTextFind find : result) {
                //高亮文本
                find.applyHighLight();
                Rectangle2D bounds = find.getBounds();
            }
        }
        //保存文档
        pdf.saveToFile("output/FindAndHighlightText.pdf", FileFormat.PDF);
    }
}

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表