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

使用Python實(shí)現(xiàn)在PDF中查找和高亮文字的方法

 更新時(shí)間:2025年07月25日 11:05:15   作者:nuclear2011  
在日常工作和學(xué)習(xí)中,我們常常需要處理各種PDF文件,其中對(duì)文字內(nèi)容進(jìn)行查找和高亮是非常常見的需求,本文將探討如何使用Python實(shí)現(xiàn)在PDF中查找和高亮文字,需要的朋友可以參考下

引言

在日常工作和學(xué)習(xí)中,我們常常需要處理各種PDF文件。其中對(duì)文字內(nèi)容進(jìn)行查找和高亮是非常常見的需求。以工作場(chǎng)景為例,我們可能需要快速檢索一份長(zhǎng)篇報(bào)告中的關(guān)鍵信息。利用PDF的查找功能,我們能夠迅速定位到相關(guān)內(nèi)容,大幅提高工作效率。同時(shí),通過高亮標(biāo)注重要信息,我們能夠方便地進(jìn)行日后復(fù)習(xí)和回顧。這篇博客將探討如何使用Python實(shí)現(xiàn)在PDF中查找和高亮文字,主要涵蓋以下內(nèi)容:

  • Python在PDF中查找和高亮文字并統(tǒng)計(jì)出現(xiàn)次數(shù)和頁(yè)碼
  • Python在PDF的特定頁(yè)面區(qū)域中查找和高亮文字
  • Python使用正則表達(dá)式在PDF中查找和高亮文字
  • Python在PDF中查找文字并獲取它的坐標(biāo)位置
  • 其他查找條件設(shè)置

使用工具

要在Python應(yīng)用程序中查找和高亮PDF中的文字,可以使用Spire.PDF for Python庫(kù)。它支持在Python應(yīng)用程序中創(chuàng)建、讀取、操作和轉(zhuǎn)換PDF文檔。

你可以通過在終端運(yùn)行以下命令來從PyPI安裝Spire.PDF for Python:

pip install Spire.PDF

Python在PDF中查找和高亮文字并統(tǒng)計(jì)出現(xiàn)次數(shù)和頁(yè)碼

Spire.PDF for Python提供了PdfTextFinder類,用于查找PDF頁(yè)面上的文字。使用該類的Find() 方法,你可以搜索特定的文字或句子。找到后,你可以為其設(shè)置高亮顏色,同時(shí)還能獲取該文字在PDF文檔中出現(xiàn)的次數(shù)以及所在的頁(yè)碼信息。

下面是在PDF中查找和高亮文字的具體步驟:

  • 創(chuàng)建PdfDocument類的實(shí)例并使用PdfDocument.LoadFromFile()加載PDF文檔。
  • 初始化一個(gè)計(jì)數(shù)器來跟蹤文本出現(xiàn)的次數(shù)以及一個(gè)列表來存儲(chǔ)文本出現(xiàn)的頁(yè)碼。
  • 遍歷PDF中的頁(yè)面。
  • 為每個(gè)頁(yè)面創(chuàng)建一個(gè)PdfTextFinder實(shí)例并將當(dāng)前頁(yè)面對(duì)象作為參數(shù)傳入該類的構(gòu)造函數(shù)。
  • 使用PdfTextFinder.Find()方法查找特定文本。該方法將返回一個(gè)PdfTextFragment對(duì)象列表,其中每個(gè)對(duì)象代表該文本在文檔中的一個(gè)實(shí)例。
  • 遍歷列表中的PdfTextFragment對(duì)象,使用PdfTextFragment.Highlight()方法高亮每個(gè)實(shí)例,同時(shí)遞增文本出現(xiàn)的次數(shù)并將當(dāng)前頁(yè)碼添加到列表。
  • 使用PdfDocument.SaveToFile()方法保存結(jié)果文檔。
  • 打印文本在PDF中出現(xiàn)的次數(shù)和頁(yè)碼。

下面是在PDF中查找和高亮文字的Python代碼:

from spire.pdf.common import *
from spire.pdf import *

# 創(chuàng)建 PdfDocument 類的對(duì)象
doc = PdfDocument()
# 加載 PDF 文件
doc.LoadFromFile("什么是python.pdf")

# 初始化一個(gè)計(jì)數(shù)器來跟蹤文本出現(xiàn)的次數(shù)
occurrence_count = 0
# 初始化一個(gè)列表來存儲(chǔ)頁(yè)碼
page_numbers = []

# 遍歷文檔中的頁(yè)面
for i in range(doc.Pages.Count):
    page = doc.Pages[i]
    # 創(chuàng)建 PdfTextFinder 實(shí)例
    finder = PdfTextFinder(page)
    # 查找特定文本
    results = finder.Find("Python")
    # 遍歷找到的所有實(shí)例
    for text in results:
        # 設(shè)置高亮顏色
        text.HighLight(Color.get_Yellow())
        # 遞增文本出現(xiàn)次數(shù)
        occurrence_count += 1
        # 將頁(yè)碼添加到列表中
        page_numbers.append(i+1)

# 保存結(jié)果文檔
doc.SaveToFile("查找和高亮文本.pdf")
doc.Close()

# 打印出現(xiàn)次數(shù)和頁(yè)碼
print(f"文本 'Python' 在 PDF 中出現(xiàn)了 {occurrence_count} 次。")
print(f"該文本出現(xiàn)在以下頁(yè)碼: {', '.join(map(str, page_numbers))}")

Python在PDF的特定頁(yè)面區(qū)域中查找和高亮文字

除了在PDF文檔的所有頁(yè)面或特定頁(yè)面中查找和高亮文字(見以上例子)以外,你還可以在特定的頁(yè)面區(qū)域中查找和高亮文字。使用PdfTextFinder.Options.Area屬性,你可以指定查找的頁(yè)面區(qū)域。

下面是在PDF的特定頁(yè)面區(qū)域中查找和高亮文字的具體步驟:

  • 創(chuàng)建PdfDocument類的實(shí)例并使用PdfDocument.LoadFromFile()加載PDF文檔。
  • 遍歷PDF中的頁(yè)面。
  • 為每個(gè)頁(yè)面創(chuàng)建一個(gè)PdfTextFinder實(shí)例并將當(dāng)前頁(yè)面對(duì)象作為參數(shù)傳入該類的構(gòu)造函數(shù)。
  • 通過PdfTextFinder.Options.Area屬性指定查找的頁(yè)面區(qū)域。
  • 使用PdfTextFinder.Find()方法查找特定文本。
  • 使用PdfTextFragment.Highlight()方法高亮每個(gè)找到的實(shí)例。
  • 使用PdfDocument.SaveToFile()方法保存結(jié)果文檔。

下面是在PDF的特定頁(yè)面區(qū)域中查找和高亮文字的Python代碼:

from spire.pdf.common import *
from spire.pdf import *

# 創(chuàng)建 PdfDocument 類的對(duì)象
doc = PdfDocument()
# 加載 PDF 文件
doc.LoadFromFile("什么是python.pdf")

# 遍歷文檔中的頁(yè)面
for i in range(doc.Pages.Count):
    page = doc.Pages[i]
    # 創(chuàng)建 PdfTextFinder 實(shí)例
    finder = PdfTextFinder(page)
    # 指定查找的頁(yè)面區(qū)域
    finder.Options.Area = RectangleF(0.0, 0.0, 300.0, 300.0)
    # 查找特定文本
    results = finder.Find("Python")
    # 遍歷找到的所有實(shí)例
    for text in results:
        # 設(shè)置高亮顏色
        text.HighLight(Color.get_Yellow())

# 保存結(jié)果文檔
doc.SaveToFile("在頁(yè)面區(qū)域中查找和高亮文本.pdf")
doc.Close()

Python使用正則表達(dá)式在PDF中查找和高亮文字

要在PDF中使用正則表達(dá)式查找和高亮文字,你首先需要將PdfTextFinder.Options.Parameter屬性設(shè)置為TextFindParameter.Regex,以啟用正則表達(dá)式查找。然后,你需要將正則表達(dá)式作為參數(shù)傳遞給Find()方法來實(shí)現(xiàn)基于正則表達(dá)式查找文字。

下面是使用正則表達(dá)式在PDF中查找和高亮文字的具體步驟:

  • 創(chuàng)建PdfDocument類的實(shí)例并使用PdfDocument.LoadFromFile()加載PDF文檔。
  • 遍歷PDF中的頁(yè)面。
  • 為每個(gè)頁(yè)面創(chuàng)建一個(gè)PdfTextFinder實(shí)例并將當(dāng)前頁(yè)面對(duì)象作為參數(shù)傳入該類的構(gòu)造函數(shù)。
  • PdfTextFinder.Options.Parameter屬性設(shè)置為TextFindParameter.Regex以啟用正則表達(dá)式文本查找模式。
  • 將正則表達(dá)式傳遞給PdfTextFinder.Find()方法來實(shí)現(xiàn)基于正則表達(dá)式查找特定文本。
  • 使用PdfTextFragment.Highlight()方法高亮每個(gè)匹配到的實(shí)例。
  • 使用PdfDocument.SaveToFile()方法保存結(jié)果文檔。

下面是使用正則表達(dá)式在PDF中查找和高亮文字的Python代碼:

from spire.pdf.common import *
from spire.pdf import *

# 創(chuàng)建 PdfDocument 類的對(duì)象
doc = PdfDocument()
# 加載 PDF 文件
doc.LoadFromFile("示例.pdf")

# 遍歷文檔中的頁(yè)面
for i in range(doc.Pages.Count):
    page = doc.Pages[i]
    # 創(chuàng)建 PdfTextFinder 實(shí)例
    finder = PdfTextFinder(page)
    # 設(shè)置文本查找條件為使用正則表達(dá)式查找
    finder.Options.Parameter = TextFindParameter.Regex

    # 查找以符號(hào) “#” 開頭的文本
    results = finder.Find("""\\#\\w+\\b""")
    # 遍歷找到的所有實(shí)例
    for text in results:
        # 設(shè)置高亮顏色
        text.HighLight(Color.get_Yellow())

# 保存結(jié)果文檔
doc.SaveToFile("使用正則表達(dá)式查找和高亮文本.pdf")
doc.Close()

Python在PDF中查找文字并獲取它的坐標(biāo)位置

在找到特定的文字后,你還可以獲取它的相關(guān)信息,例如它的坐標(biāo)位置。下面是在PDF中查找文字并獲取它的坐標(biāo)信息的具體步驟:

  • 創(chuàng)建PdfDocument類的實(shí)例并使用PdfDocument.LoadFromFile()加載PDF文檔。
  • 遍歷PDF中的頁(yè)面。
  • 為每個(gè)頁(yè)面創(chuàng)建一個(gè)PdfTextFinder實(shí)例并將當(dāng)前頁(yè)面對(duì)象作為參數(shù)傳入該類的構(gòu)造函數(shù)。
  • 使用PdfTextFinder.Find()方法查找特定文本。
  • 使用PdfTextFragment.Positions[0].XPdfTextFragment.Positions[0].Y屬性獲取每個(gè)找到的實(shí)例的X和Y坐標(biāo)。

下面是在PDF中查找文字并獲取它的坐標(biāo)位置的Python代碼:

from spire.pdf.common import *
from spire.pdf import *

# 創(chuàng)建 PdfDocument 類的對(duì)象
doc = PdfDocument()
# 加載 PDF 文件
doc.LoadFromFile("什么是python.pdf")

# 遍歷文檔中的頁(yè)面
for i in range(doc.Pages.Count):
    page = doc.Pages[i]
    # 創(chuàng)建 PdfTextFinder 實(shí)例
    finder = PdfTextFinder(page)

    # 查找特定文本
    results = finder.Find("Python")
    # 遍歷找到的所有實(shí)例
    for text in results:
        # 打印當(dāng)前實(shí)例的坐標(biāo)信息
        print(f"文本坐標(biāo): ({text.Positions[0].X}, {text.Positions[0].Y})")        
        
doc.Close()

其他查找條件設(shè)置

Spire.PDF for Python還支持設(shè)置其他查找條件,如不區(qū)分大小寫全詞匹配。具體代碼如下:

from spire.pdf.common import *
from spire.pdf import *

# 創(chuàng)建 PdfDocument 類的對(duì)象
doc = PdfDocument()
# 加載 PDF 文件
doc.LoadFromFile("什么是python.pdf")

# 遍歷文檔中的頁(yè)面
for i in range(doc.Pages.Count):
    page = doc.Pages[i]
    # 創(chuàng)建 PdfTextFinder 實(shí)例
    finder = PdfTextFinder(page)
    # 設(shè)置文本查找條件為不區(qū)分大小寫和全詞匹配
    finder.Options.Parameter = TextFindParameter.IgnoreCase
    finder.Options.Parameter = TextFindParameter.WholeWord
    # 查找特定文本
    results = finder.Find("Python")
    # 遍歷找到的所有實(shí)例
    for text in results:
        # 設(shè)置高亮顏色
        text.HighLight(Color.get_Yellow())

# 保存結(jié)果文檔
doc.SaveToFile("其他查找條件.pdf")
doc.Close()

這篇文章介紹了使用Python在PDF中查找和高亮文字的多種不同的場(chǎng)景,你需要根據(jù)自己的實(shí)際情況對(duì)代碼中的文檔路徑、待查找的文字、頁(yè)面區(qū)域、或正則表達(dá)式等內(nèi)容進(jìn)行相應(yīng)的修改。

以上就是使用Python實(shí)現(xiàn)在PDF中查找和高亮文字的方法的詳細(xì)內(nèi)容,更多關(guān)于Python PDF查找和高亮文字的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Pytorch Tensor的統(tǒng)計(jì)屬性實(shí)例講解

    Pytorch Tensor的統(tǒng)計(jì)屬性實(shí)例講解

    今天小編就為大家分享一篇Pytorch Tensor的統(tǒng)計(jì)屬性實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python內(nèi)置函數(shù)object、oct()、ord()的實(shí)用指南

    Python內(nèi)置函數(shù)object、oct()、ord()的實(shí)用指南

    本文詳細(xì)介紹了Python中的object類、oct()函數(shù)和ord()函數(shù),分別作為所有類的基類、八進(jìn)制轉(zhuǎn)換工具和字符編碼解碼器,適用于基類設(shè)計(jì)、進(jìn)制轉(zhuǎn)換和字符編碼處理等場(chǎng)景,需要的朋友可以參考下
    2026-01-01
  • 如何使用python提取字符串的中英文(正則判斷)

    如何使用python提取字符串的中英文(正則判斷)

    這篇文章主要給大家介紹了關(guān)于如何使用python提取字符串中英文的相關(guān)資料,主要通過正則re中的sub函數(shù)、findall函數(shù)以及compile函數(shù)判斷來實(shí)現(xiàn),需要的朋友可以參考下
    2021-05-05
  • Python基本運(yùn)算幾何運(yùn)算處理數(shù)字圖像示例

    Python基本運(yùn)算幾何運(yùn)算處理數(shù)字圖像示例

    這篇文章主要介紹了Python基本運(yùn)算,同個(gè)幾個(gè)幾何運(yùn)算處理數(shù)字圖像示例來為大家詳細(xì)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • python學(xué)習(xí)之whl文件解釋與安裝詳解

    python學(xué)習(xí)之whl文件解釋與安裝詳解

    whl格式本質(zhì)上是一個(gè)壓縮包,里面包含了py文件,以及經(jīng)過編譯的pyd文件,下面這篇文章主要給大家介紹了關(guān)于python學(xué)習(xí)之whl文件解釋與安裝的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • Python中閉包和裝飾器的學(xué)習(xí)攻略

    Python中閉包和裝飾器的學(xué)習(xí)攻略

    Python中的閉包和裝飾器是兩種非常重要的編程概念,它們都是基于函數(shù)的特性,特別是涉及到作用域和函數(shù)的嵌套,這篇文章主要介紹了Python中閉包和裝飾器的相關(guān)資料,需要的朋友可以參考下
    2026-05-05
  • python實(shí)現(xiàn)圖書館借閱系統(tǒng)

    python實(shí)現(xiàn)圖書館借閱系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)圖書館借閱系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • python引入導(dǎo)入自定義模塊和外部文件的實(shí)例

    python引入導(dǎo)入自定義模塊和外部文件的實(shí)例

    下面小編就為大家?guī)硪黄猵ython引入導(dǎo)入自定義模塊和外部文件的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • 利用Python如何將數(shù)據(jù)寫到CSV文件中

    利用Python如何將數(shù)據(jù)寫到CSV文件中

    在數(shù)據(jù)分析中經(jīng)常需要從csv格式的文件中存取數(shù)據(jù)以及將數(shù)據(jù)寫書到csv文件中。下面這篇文章主要給大家介紹了關(guān)于利用Python如何將數(shù)據(jù)寫到CSV文件中的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-06-06
  • Django CSRF跨站請(qǐng)求偽造防護(hù)過程解析

    Django CSRF跨站請(qǐng)求偽造防護(hù)過程解析

    這篇文章主要介紹了Django CSRF跨站請(qǐng)求偽造防護(hù)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07

最新評(píng)論

平和县| 聂拉木县| 科尔| 泽州县| 阳新县| 封丘县| 西乌| 酒泉市| 花莲市| 明溪县| 乌拉特后旗| 乌鲁木齐市| 许昌县| 六安市| 泗洪县| 丰城市| 宁阳县| 定陶县| 开封市| 铁岭市| 司法| 浑源县| 平江县| 华宁县| 仙游县| 绥化市| 潞城市| 洪湖市| 洛隆县| 咸丰县| 成安县| 兴城市| 政和县| 岳池县| 奉贤区| 十堰市| 舞阳县| 枣阳市| 浑源县| 安徽省| 博爱县|