最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實現(xiàn)PDF中文文本查找與高亮的四種方法

 更新時間:2026年05月17日 08:30:55   作者:用戶372157426135  
在實際開發(fā)中,PDF文檔幾乎無處不在,在處理這些文檔時,常常需要對文本進行搜索和高亮,本文將通過四個示例詳細介紹如何在 Java 中實現(xiàn) PDF 中文文本的查找與高亮操作,感興趣的小伙伴可以了解下

在實際開發(fā)中,PDF 文檔幾乎無處不在,從報告、合同到教材、試卷都有廣泛應(yīng)用。在處理這些文檔時,常常需要對文本進行搜索和高亮,例如標記報告中的關(guān)鍵術(shù)語、合同條款,或者提取特定內(nèi)容進行分析。手動處理不僅費時,還容易遺漏關(guān)鍵內(nèi)容,因此自動化的文本查找和高亮就顯得非常必要。

本文將通過四個示例,詳細介紹如何在 Java 中實現(xiàn) PDF 中文文本的查找與高亮操作:

  1. 單頁文本查找與高亮
  2. 指定區(qū)域內(nèi)文本查找與高亮
  3. 整篇文檔文本查找與高亮
  4. 使用正則表達式查找并高亮

庫安裝

本文示例使用 Spire.PDF for Java 來處理 PDF 文檔,它提供了完整的 PDF 操作接口,包括加載、查找、編輯和高亮文本。你可以通過官網(wǎng)下載 JAR 包并引入項目,也可以通過 Maven 引入依賴:

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

安裝好庫之后,就可以在 Java 中對 PDF 文檔進行操作,無需依賴 Adobe Acrobat 等第三方軟件。

示例一:在單頁中查找并高亮中文文本

有時候,我們只需要對 PDF 中某一頁進行查找,例如查找第一頁報告中的關(guān)鍵術(shù)語“數(shù)據(jù)庫”。這種場景適用于快速標注或頁面內(nèi)容審閱。

完整代碼示例如下:

import com.spire.ms.System.Collections.Generic.List;
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.texts.PdfTextFinder;
import com.spire.pdf.texts.PdfTextFragment;
import com.spire.pdf.texts.TextFindParameter;
import java.awt.*;
import java.util.EnumSet;
public class FindAndHighlightTextInPage {
    public static void main(String[] args) {
        PdfDocument doc = new PdfDocument();
        doc.loadFromFile("C:\Users\Administrator\Desktop\示例文檔.pdf");
        PdfPageBase page = doc.getPages().get(0);
        PdfTextFinder finder = new PdfTextFinder(page);
        // 設(shè)置查找選項:全字匹配且忽略大小寫
        finder.getOptions().setTextFindParameter(EnumSet.of(TextFindParameter.WholeWord));
        finder.getOptions().setTextFindParameter(EnumSet.of(TextFindParameter.IgnoreCase));
        // 查找文本“數(shù)據(jù)庫”
        List<PdfTextFragment> results = finder.find("數(shù)據(jù)庫");
        // 高亮找到的文本
        for (PdfTextFragment textFragment : results) {
            textFragment.highLight(Color.LIGHT_GRAY);
        }
        doc.saveToFile("output/HighlightTextInPage.pdf", FileFormat.PDF);
        doc.dispose();
    }
}

適用場景:單頁注釋、報告審閱、快速查找某頁重要內(nèi)容。

示例二:在指定矩形區(qū)域內(nèi)查找并高亮文本

有些時候,我們只希望查找 PDF 頁面中的特定區(qū)域,如頁眉、頁腳或表格區(qū)域,避免對整頁內(nèi)容無差別高亮。此時可以使用 ??setFindArea()?? 方法指定矩形區(qū)域。

示例代碼:

import java.awt.geom.Rectangle2D;

finder.getOptions().setFindArea(new Rectangle2D.Float(0, 0, 841, 180)); // 頁眉區(qū)域
List<PdfTextFragment> results = finder.find("報告");

for (PdfTextFragment textFragment : results) {
    textFragment.highLight(Color.LIGHT_GRAY);
}

在完整項目中,你可以結(jié)合示例一的頁面加載邏輯,將矩形區(qū)域限定在頂部頁眉、底部頁腳或任意自定義區(qū)域。這樣不僅可以提高查找效率,還能避免誤高亮文檔中其他部分的相同詞匯。

適用場景:合同頁眉高亮、報告章節(jié)標題標注、表格內(nèi)容查找。

示例三:在整個文檔中查找并高亮文本

對于需要處理整篇文檔的需求,例如在合同集合、教材或報告中查找“合同條款”,可以遍歷每一頁進行查找和高亮。

示例代碼:

for (Object pageObj : doc.getPages()) {
    PdfPageBase page = (PdfPageBase) pageObj;
    PdfTextFinder finder = new PdfTextFinder(page);

    finder.getOptions().setTextFindParameter(EnumSet.of(TextFindParameter.WholeWord));
    finder.getOptions().setTextFindParameter(EnumSet.of(TextFindParameter.IgnoreCase));

    List<PdfTextFragment> results = finder.find("合同條款");
    for (PdfTextFragment textFragment : results) {
        textFragment.highLight(Color.LIGHT_GRAY);
    }
}

通過這種方式,可以一次性處理整個文檔,無需手動翻頁查找,大幅節(jié)省人工操作時間。

適用場景:合同全文審查、批量報告注釋、教材關(guān)鍵內(nèi)容標注。

示例四:使用正則表達式查找并高亮文本

當查找的文本具有一定規(guī)律性,例如章節(jié)標題、編號或特殊格式時,正則表達式會非常有用。例如查找所有以“第”開頭、以“章”結(jié)尾的章節(jié)標題:

finder.getOptions().setTextFindParameter(EnumSet.of(TextFindParameter.Regex));
String pattern = "\b第\w*章\b";

List<PdfTextFragment> results = finder.find(pattern);
for (PdfTextFragment textFragment : results) {
    textFragment.highLight(Color.LIGHT_GRAY);
}

正則匹配不僅可以查找固定詞匯,還能匹配模式化文本,如編號、日期、序列號等,提高查找靈活性。

適用場景:章節(jié)標題標注、序列號提取、敏感信息查找與標注。

總結(jié)

通過這四個示例,我們可以看到 Java 中 PDF 中文文本查找與高亮的幾種典型場景:

  1. 單頁高亮:快速標注指定頁面文本。
  2. 矩形區(qū)域高亮:精確控制搜索范圍,避免誤高亮。
  3. 整篇文檔高亮:適合批量處理文檔內(nèi)容。
  4. 正則表達式高亮:靈活匹配復(fù)雜文本模式。

借助 Spire.PDF,我們可以用簡單的代碼實現(xiàn)強大的 PDF 文本處理功能,非常適合在合同審查、報告分析、教材標注等場景中使用。

到此這篇關(guān)于Java實現(xiàn)PDF中文文本查找與高亮的四種方法的文章就介紹到這了,更多相關(guān)Java PDF文本查找與高亮內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 深入探究如何使用Java編寫MapReduce程序

    深入探究如何使用Java編寫MapReduce程序

    MapReduce是一種用于處理大規(guī)模數(shù)據(jù)集的并行編程模型,其特點高效性和可擴展性,在本文中,我們將深入了解MapReduce,并使用Java編寫一個簡單的MapReduce程序,需要的朋友可以參考下
    2023-05-05
  • SpringSecurity+jwt+redis基于數(shù)據(jù)庫登錄認證的實現(xiàn)

    SpringSecurity+jwt+redis基于數(shù)據(jù)庫登錄認證的實現(xiàn)

    本文主要介紹了SpringSecurity+jwt+redis基于數(shù)據(jù)庫登錄認證的實現(xiàn),其中也涉及到自定義的過濾器和處理器,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • mybatis-plus自定義排序的實現(xiàn)

    mybatis-plus自定義排序的實現(xiàn)

    本文主要介紹了mybatis-plus自定義排序的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • ehcache開源緩存框架_動力節(jié)點Java學院整理

    ehcache開源緩存框架_動力節(jié)點Java學院整理

    Ehcache是現(xiàn)在最流行的純Java開源緩存框架,這篇文章主要介紹了ehcache框架的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • SpringBoot對接Twilio實現(xiàn)發(fā)送驗證碼和驗證短信碼

    SpringBoot對接Twilio實現(xiàn)發(fā)送驗證碼和驗證短信碼

    Twilio是一家提供云通信服務(wù)的公司,旨在幫助開發(fā)者和企業(yè)通過簡單的API實現(xiàn)各種通信功能,下面我們來看看如何對接Twilio實現(xiàn)發(fā)送驗證碼和驗證短信碼吧
    2025-03-03
  • Mybatis中where標簽與if標簽結(jié)合使用詳細說明

    Mybatis中where標簽與if標簽結(jié)合使用詳細說明

    mybatis中if和where用于動態(tài)sql的條件拼接,在查詢語句中如果缺失某個條件,通過if和where標簽可以動態(tài)的改變查詢條件,下面這篇文章主要給大家介紹了關(guān)于Mybatis中where標簽與if標簽結(jié)合使用的詳細說明,需要的朋友可以參考下
    2023-03-03
  • 最新Spring Security的基于內(nèi)存用戶認證方式

    最新Spring Security的基于內(nèi)存用戶認證方式

    本文講解SpringSecurity內(nèi)存認證配置,適用于開發(fā)、測試等場景,通過代碼創(chuàng)建用戶及權(quán)限管理,支持密碼加密,雖簡單但不持久化,生產(chǎn)環(huán)境推薦使用數(shù)據(jù)庫或JWT等認證方式,感興趣的朋友一起看看吧
    2025-07-07
  • Tomcat集群和Session復(fù)制應(yīng)用介紹

    Tomcat集群和Session復(fù)制應(yīng)用介紹

    本文將詳細介紹Tomcat集群和Session復(fù)制應(yīng)用,需要了解的朋友可以參考下
    2012-11-11
  • 劍指Offer之Java算法習題精講N叉樹的遍歷及數(shù)組與字符串

    劍指Offer之Java算法習題精講N叉樹的遍歷及數(shù)組與字符串

    跟著思路走,之后從簡單題入手,反復(fù)去看,做過之后可能會忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會發(fā)現(xiàn)質(zhì)的變化
    2022-03-03
  • Java 壓縮包解壓實現(xiàn)代碼

    Java 壓縮包解壓實現(xiàn)代碼

    Java標準庫(Java SE)提供了對ZIP格式的原生支持,通過java.util.zip包中的類來實現(xiàn)壓縮和解壓功能,本文將重點介紹如何使用Java來解壓ZIP或RAR壓縮包,感興趣的朋友一起看看吧
    2025-05-05

最新評論

房产| 新安县| 平乡县| 桓仁| 和硕县| 陆丰市| 龙江县| 宜宾县| 新闻| 左云县| 海口市| 东平县| 锦屏县| 莱西市| 广南县| 三原县| 武陟县| 沧源| 民乐县| 辽源市| 澳门| 榆林市| 霞浦县| 循化| 巴东县| 元谋县| 新竹市| 明光市| 安陆市| 平陆县| 顺平县| 贞丰县| 象山县| 滁州市| 弥渡县| 青冈县| 祁东县| 黄山市| 开阳县| 义马市| 定陶县|