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

Python使用OCR實(shí)現(xiàn)提取掃描PDF的文本

 更新時(shí)間:2025年09月12日 15:10:28   作者:E-iceblue  
從 PDF 中提取文本一直是很多人的需求,本文將帶你了解如何借助 Python + OCR 技術(shù),從掃描 PDF 中提取可編輯文本,希望對(duì)大家有所幫助

從 PDF 中提取文本一直是很多人的需求。市面上的工具雖然能處理大部分?jǐn)?shù)字 PDF,但遇到掃描件 PDF 時(shí)往往無(wú)能為力,想要直接復(fù)制或獲取其中的文字并不容易。其實(shí)這個(gè)問(wèn)題并不是沒(méi)有解法 —— 本文將帶你了解如何借助 Python + OCR 技術(shù),從掃描 PDF 中提取可編輯文本。

為什么提取掃描件 PDF 需要用到 OCR 技術(shù)

在探討如何從掃描件 PDF 中提取文本之前,我們先來(lái)了解一下 OCR 技術(shù) 及其重要性。

OCR(Optical Character Recognition,光學(xué)字符識(shí)別),是一種將圖像或視頻中的文字內(nèi)容轉(zhuǎn)化為可編輯文本的技術(shù)。它不僅能識(shí)別字符,還能保留一定的排版信息,因此被廣泛應(yīng)用在文檔數(shù)字化、檔案管理以及數(shù)據(jù)提取等場(chǎng)景中。

為什么提取掃描件 PDF 的文本離不開(kāi) OCR?原因在于 PDF 文件主要分為兩類(lèi):

  • 標(biāo)準(zhǔn) PDF(數(shù)字 PDF):文檔中的文字是以字符形式存儲(chǔ)的,可以直接復(fù)制、搜索和提取。
  • 掃描件 PDF:內(nèi)容本質(zhì)上是圖片,不包含可識(shí)別的文本信息,傳統(tǒng)的提取方法無(wú)法處理。

因此,當(dāng)面對(duì)掃描件 PDF 時(shí),OCR 技術(shù)就顯得尤為必要,它能幫助我們將圖片中的文字識(shí)別出來(lái),轉(zhuǎn)換為真正可操作的文本。

安裝必要的 Python 庫(kù)

在了解了基礎(chǔ)知識(shí)之后,我們進(jìn)入到 工具準(zhǔn)備環(huán)節(jié)。本文將主要使用兩款庫(kù):Spire.PDF for Python 和 Spire.OCR for Python。有了它們,處理掃描件 PDF 并提取文本會(huì)變得高效而簡(jiǎn)單。

  • Spire.PDF:負(fù)責(zé)將掃描件 PDF 轉(zhuǎn)換為適合 OCR 處理的圖片。
  • Spire.OCR:對(duì)這些圖片進(jìn)行文字識(shí)別,并輸出可編輯的文本內(nèi)容。

它們的安裝方式十分便捷,只需在命令行中運(yùn)行以下命令:

pip install spire.pdf
pip install spire.ocr

除了使用 pip 安裝外,你也可以前往 E-iceblue 官網(wǎng) 下載相應(yīng)的安裝包并手動(dòng)安裝。

通過(guò) Python 將 PDF 轉(zhuǎn)換為圖像

正如前面提到的,OCR 無(wú)法直接處理 PDF 文件,尤其是掃描件 PDF。因此,第一步我們需要先將其轉(zhuǎn)換為圖片。借助 Spire.PDF,這個(gè)過(guò)程十分簡(jiǎn)便:只需加載 PDF 文檔,遍歷頁(yè)面,然后調(diào)用 PdfDocument.SaveAsImage() 方法,就能將每一頁(yè)保存為圖像文件。

在保存時(shí),你還可以根據(jù)需求選擇 PNG、JPG 或 BMP 等常見(jiàn)格式。下面的示例代碼演示了如何使用 Python 將掃描件 PDF 轉(zhuǎn)換為 PNG 圖片:

from spire.pdf import *

# 加載 PDF 文件
pdf = PdfDocument()
pdf.LoadFromFile("E:/Administrator/Python1/input/AI繪畫(huà)的利與弊.pdf")

# 遍歷 PDF 頁(yè)面
for i in range(pdf.Pages.Count):
    # 將每一頁(yè)轉(zhuǎn)換為圖像
    with pdf.SaveAsImage(i) as image:
        
        # 保存圖像
        image.Save(f"E:/Administrator/Python1/output/pdftoimage/ToImage_{i}.png")
        # image.Save(f"Output/ToImage_{i}.jpg")
        # image.Save(f"Output/ToImage_{i}.bmp")

pdf.Close()

OCR 識(shí)別并提取掃描件 PDF 中的文本

完成 PDF 轉(zhuǎn)圖片 的步驟后,我們就可以進(jìn)入核心環(huán)節(jié)——使用 OCR 掃描圖片并提取文字。借助 OcrScanner.Scan() 方法,這個(gè)過(guò)程非常簡(jiǎn)單。它不僅能夠從圖片中獲取文本,還支持包括 中文、英文、法語(yǔ) 在內(nèi)的多種語(yǔ)言識(shí)別,可以做到“一字不落”。

下面的示例演示了如何在 Python 中調(diào)用 OCR,對(duì)前一步生成的 PDF 圖片進(jìn)行文字識(shí)別,并將結(jié)果保存為 .txt 文檔:

from spire.ocr import *

# 創(chuàng)建 OCR 掃描器實(shí)例
scanner = OcrScanner()

# 配置 OCR 模型路徑和語(yǔ)言
configureOptions = ConfigureOptions()
configureOptions.ModelPath = r'E:/DownloadsNew/win-x64/'
configureOptions.Language = 'Chinese'
scanner.ConfigureDependencies(configureOptions)

# 使用 OCR 掃描圖片
scanner.Scan(r'E:/Administrator/Python1/output/pdftoimage/ToImage_0.png')

# 將提取的文本保存為文本文件
text = scanner.Text.ToString()
with open('E:/Administrator/Python1/output/掃描件PDF文本提取.txt', 'a', encoding='utf-8') as file:
    file.write(text + '\n')

結(jié)論

通過(guò)本文的示例,我們完成了從掃描件 PDF 轉(zhuǎn)換為圖片,再利用 OCR 技術(shù)識(shí)別并提取文本的全過(guò)程。借助 Spire.PDF for Python 和 Spire.OCR for Python,這一流程不僅簡(jiǎn)單高效,而且對(duì)多語(yǔ)言的支持也非常友好。如果你也在尋找快速處理掃描件 PDF 的方法,不妨嘗試一下這兩個(gè)庫(kù)。

到此這篇關(guān)于Python使用OCR實(shí)現(xiàn)提取掃描PDF的文本的文章就介紹到這了,更多相關(guān)Python提取掃描PDF內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決安裝python庫(kù)時(shí)windows error5 報(bào)錯(cuò)的問(wèn)題

    解決安裝python庫(kù)時(shí)windows error5 報(bào)錯(cuò)的問(wèn)題

    今天小編就為大家分享一篇解決安裝python庫(kù)時(shí)windows error5 報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • Python閉包思想與用法淺析

    Python閉包思想與用法淺析

    這篇文章主要介紹了Python閉包思想與用法,結(jié)合實(shí)例形式簡(jiǎn)單分析了Python閉包的概念、原理、使用方法與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2018-12-12
  • 基于Python實(shí)現(xiàn)給喜歡的主播自動(dòng)發(fā)彈幕

    基于Python實(shí)現(xiàn)給喜歡的主播自動(dòng)發(fā)彈幕

    這篇文章主要介紹了python如何實(shí)現(xiàn)給喜歡的主播自動(dòng)發(fā)彈幕的功能,文中的示例代碼對(duì)我們學(xué)習(xí)Python有一定的幫助,感興趣的朋友可以了解下
    2021-12-12
  • Python深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)基本原理

    Python深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)基本原理

    人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks,簡(jiǎn)寫(xiě)為ANNs)也簡(jiǎn)稱(chēng)為神經(jīng)網(wǎng)絡(luò)(NNs)或稱(chēng)作連接模型(Connection Model),它是一種模仿動(dòng)物神經(jīng)網(wǎng)絡(luò)行為特征,進(jìn)行分布式并行信息處理的算法數(shù)學(xué)模型
    2021-10-10
  • python實(shí)現(xiàn)代碼統(tǒng)計(jì)器

    python實(shí)現(xiàn)代碼統(tǒng)計(jì)器

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)代碼統(tǒng)計(jì)器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • python忽略warnings的幾種方法

    python忽略warnings的幾種方法

    本文主要介紹了幾種在Python忽略警告信息的方法,,可以使用Python 內(nèi)置的警告控制機(jī)制來(lái)抑制特定類(lèi)型的警告,下面就來(lái)介紹一下,感興趣的可以了解一下
    2025-01-01
  • Python pygame實(shí)現(xiàn)中國(guó)象棋單機(jī)版源碼

    Python pygame實(shí)現(xiàn)中國(guó)象棋單機(jī)版源碼

    今天給大家?guī)?lái)的是關(guān)于Python實(shí)戰(zhàn)的相關(guān)知識(shí),文章圍繞著用Python pygame實(shí)現(xiàn)中國(guó)象棋單機(jī)版展開(kāi),文中有非常詳細(xì)的代碼示例,需要的朋友可以參考下
    2021-06-06
  • Python數(shù)據(jù)可視化之分析熱門(mén)話(huà)題“丁克家庭都怎么樣了”

    Python數(shù)據(jù)可視化之分析熱門(mén)話(huà)題“丁克家庭都怎么樣了”

    今天小編就以一個(gè)數(shù)據(jù)分析師的視角來(lái)向大家講述一下年輕人群體對(duì)于丁克的態(tài)度以及那些丁克家庭他們的想法是怎么樣的?他們是否有過(guò)后悔當(dāng)初的決定,需要的朋友可以參考下
    2021-06-06
  • python如果快速判斷數(shù)字奇數(shù)偶數(shù)

    python如果快速判斷數(shù)字奇數(shù)偶數(shù)

    這篇文章主要介紹了python如果快速判斷數(shù)字奇數(shù)偶數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Python如何提取chm數(shù)據(jù)

    Python如何提取chm數(shù)據(jù)

    這篇文章主要介紹了Python如何提取chm數(shù)據(jù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01

最新評(píng)論

浦江县| 临江市| 左权县| 龙陵县| 扶沟县| 襄城县| 襄城县| 绥化市| 宝坻区| 嘉义市| 荥阳市| 乡宁县| 香港 | 简阳市| 怀化市| 昌图县| 汶上县| 建昌县| 黄冈市| 泌阳县| 凤凰县| 根河市| 徐汇区| 荥经县| 太白县| 石河子市| 邹平县| 五台县| 花垣县| 如东县| 台前县| 华安县| 凭祥市| 琼海市| 兴城市| 姜堰市| 定结县| 罗定市| 朝阳区| 嘉义市| 三明市|