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

Python實(shí)現(xiàn)精準(zhǔn)提取?PDF中的文本,表格與圖片

 更新時(shí)間:2025年06月13日 11:21:23   作者:E-iceblue  
在實(shí)際的系統(tǒng)開發(fā)中,處理?PDF?文件不僅限于讀取整頁文本,還有提取文檔中的表格數(shù)據(jù),圖片或特定區(qū)域的內(nèi)容,下面我們來看看如何使用Python實(shí)現(xiàn)精準(zhǔn)提取PDF

在實(shí)際的系統(tǒng)開發(fā)中,處理 PDF 文件不僅限于讀取整頁文本,還有提取文檔中的表格數(shù)據(jù)、圖片或特定區(qū)域的內(nèi)容。這些任務(wù)看似簡(jiǎn)單,實(shí)則對(duì)精度與處理能力提出了更高要求。本文將以 Python 語言為例,結(jié)合 Spire.PDF 控件,帶你實(shí)戰(zhàn)演練如何精準(zhǔn)提取 PDF 中的表格、圖片以及指定區(qū)域的文本內(nèi)容,助力你高效完成數(shù)據(jù)分析、內(nèi)容重用等任務(wù)。

安裝 Python 庫(kù)

本文將使用 Spire.PDF for Python 來演示怎樣完成 PDF 文檔中的元素提取。作為一個(gè)獨(dú)立的第三方組件,Spire.PDF 不依賴微軟 Office,還可以兼容大部分國(guó)產(chǎn)系統(tǒng),是你的 PDF 自動(dòng)化好幫手。

通過 pip 命令安裝它:

pip install Spire.PDF

或使用:

pip install spire.pdf.free

安裝免費(fèi)版,免費(fèi)版存在一些篇幅限制,但對(duì)于處理小型任務(wù)來說足夠了。

提取 PDF 文本內(nèi)容:獲取整頁文本與指定區(qū)域內(nèi)容

通常情況下,提取 PDF 文檔文本的需求主要有兩種:

  • 一種是提取整頁或整份文檔中的全部文本,如合同全文提取、批量歸檔場(chǎng)景。
  • 另一種是提取特定區(qū)域內(nèi)的文本,如從表單、票據(jù)中提取某一欄位內(nèi)容。

在本章節(jié),我們將使用 Spire.PDF 來分別完成這兩個(gè)任務(wù)。

獲取頁面上的所有文本內(nèi)容

文本是 PDF 文檔中最常見的內(nèi)容形式。無論是提取整份合同內(nèi)容,還是其他需要批量處理的文檔,掌握 PDF 文本提取技巧都至關(guān)重要。本節(jié)將向你展示如何快速通過 Python 從 PDF 文檔中提取頁面上的所有文本內(nèi)容。

完整代碼示例 - 獲取第一頁所有文本:

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


# 創(chuàng)建 PdfDocument 對(duì)象
pdf = PdfDocument()

# 加載 PDF 文檔
pdf.LoadFromFile("/AI繪畫的利與弊.pdf")

# 獲取 PDF 第一頁,遍歷文檔所有頁便可提取文檔所有文本內(nèi)容
page = pdf.Pages.get_Item(0)

# 創(chuàng)建 PdfTextExtractor 對(duì)象
textExtractor = PdfTextExtractor(page)

# 創(chuàng)建 PdfTextExtractOptions 對(duì)象
extractOptions = PdfTextExtractOptions()

# 從頁面中提取文本
text = textExtractor.ExtractText(extractOptions)

# 寫入到 txt 文件中
extractedText = open("/提取第一頁文本.txt", "w", encoding = "utf-8")
extractedText.write(text)

# 釋放對(duì)象
extractedText.close()
pdf.Close()

效果預(yù)覽:

(Python 提取 PDF 頁面上的文本)

主要步驟解析:

  • 創(chuàng)建新的 PdfDocument 對(duì)象,然后加載 PDF 文檔。
  • 獲取文檔的第一頁或遍歷所有頁面以便提取整個(gè) PDF 文檔的文本。
  • 創(chuàng)建 PdfTextExtractor 和 PdfTextExtractOptions 對(duì)象,用以提取文本。
  • 通過 PdfTextExtractor.ExtractText() 方法從所選頁面中提取文本。

獲取 PDF 特定區(qū)域的文本

有時(shí)候,我們不需要整頁的內(nèi)容,只想提取 PDF 里某個(gè)特定位置的文字,比如發(fā)票上的金額、表格里的某一欄,或者文件角落的簽名。只需要用 Spire.PDF 設(shè)置一下坐標(biāo),就能輕松搞定區(qū)域文本提取。

完整代碼示例 - 獲取第一頁一個(gè)矩形區(qū)域內(nèi)的文本:

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


# 創(chuàng)建PdfDocument 對(duì)象
pdf = PdfDocument()

# 加載PDF文檔
pdf.LoadFromFile("E:/Administrator/Python1/input/AI繪畫的利與弊-圖片版.pdf")

# 獲取PDF第一頁,遍歷文檔所有頁便可提取文檔所有文本內(nèi)容
page = pdf.Pages.get_Item(0)

#創(chuàng)建PdfTextExtractor 對(duì)象
textExtractor = PdfTextExtractor(page)

#創(chuàng)建PdfTextExtractOptions 對(duì)象
extractOptions = PdfTextExtractOptions()

# 設(shè)置從矩形區(qū)域提取文本的選項(xiàng)
extractOptions.ExtractArea = RectangleF(80.0, 120.0, 450.0, 120.0)

#從頁面中提取文本
text = textExtractor.ExtractText(extractOptions)

# 寫入到 txt 文件中
extractedText = open("E:/Administrator/Python1/output/提取特定區(qū)域文本.txt", "w", encoding = "utf-8")
extractedText.write(text)

# 釋放對(duì)象
extractedText.close()
pdf.Close()

效果預(yù)覽:

(Python 提取 PDF 中特定區(qū)域的文本)

主要步驟解析:

  • 創(chuàng)建新的 PdfDocument 對(duì)象,然后加載一個(gè) PDF 文檔。
  • 獲取文檔的第一頁。
  • 創(chuàng)建 PdfTextExtractor 和 PdfTextExtractOptions 對(duì)象,用以提取文本。
  • 使用 PdfTextExtractOptions.ExtractArea 屬性設(shè)置頁面區(qū)域范圍。
  • 通過 PdfTextExtractor.ExtractText() 方法從所指定的頁面區(qū)域中提取文本。

注意事項(xiàng):extractOptions.ExtractArea = RectangleF(80.0, 120.0, 450.0, 120.0) 中的四個(gè)參數(shù)依次代表矩形區(qū)域的 X 坐標(biāo)、Y 坐標(biāo)、寬度 和 高度。通過調(diào)整這些數(shù)值,你可以靈活控制需要提取文本的區(qū)域位置和大小,確保僅獲取你想要的內(nèi)容。

提取 PDF 中的表格并導(dǎo)出為 CSV

在 PDF 文檔中,表格通常以非結(jié)構(gòu)化的形式存在,直接提取和復(fù)用并不容易,尤其是遇到無邊框、合并單元格或跨頁表格的時(shí)候。本節(jié)我們將介紹如何使用 Spire.PDF 和 Spire.XLS 準(zhǔn)確識(shí)別 PDF 中的表格內(nèi)容,并將其導(dǎo)出為結(jié)構(gòu)化格式,如 Excel 或 CSV,幫助你實(shí)現(xiàn)高效的數(shù)據(jù)處理與復(fù)用。

完整代碼示例 - 提取 PDF 表格并保存為 CSV:

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


# 創(chuàng)建 PdfDocument 對(duì)象
doc = PdfDocument()

# 加載 PDF 文檔
doc.LoadFromFile("/Population.pdf")

# 創(chuàng)建 Workbook 對(duì)象
workbook = Workbook()
# 清除默認(rèn)工作表
workbook.Worksheets.Clear()

# 創(chuàng)建 PdfTableExtractor 對(duì)象
extractor = PdfTableExtractor(doc)

sheetNumber = 1

# 遍歷PDF文件中的頁面
for pageIndex in range(doc.Pages.Count):
    # 從當(dāng)前頁面提取表格
    tableList = extractor.ExtractTable(pageIndex)

    # 遍歷表格
    if tableList is not None and len(tableList) > 0:
        for table in tableList:
            # 為當(dāng)前表格添加一個(gè)工作表
            sheet = workbook.Worksheets.Add(f"Sheet{sheetNumber}")

            # 獲取表格的行數(shù)和列數(shù)
            row = table.GetRowCount()
            column = table.GetColumnCount()

            # 遍歷表格的行和列
            for i in range(row):
                for j in range(column):
                    # 獲取當(dāng)前單元格中的文本
                    text = table.GetText(i, j)

                    # 將文本寫入工作表的指定單元格
                    sheet.Range[i + 1, j + 1].Value = text

            sheetNumber += 1

# 將工作簿保存為 Excel 文件
workbook.SaveToFile("/提取表格.csv", FileFormat.CSV)
workbook.Dispose()
doc.Close()

效果預(yù)覽:

(Python 提取 PDF 中的表格并保存為 CSV)

主要步驟解析:

  • 創(chuàng)建 PdfDocument 實(shí)例并加載 PDF 文檔。
  • 創(chuàng)建 Workbook 實(shí)例。
  • 遍歷 PDF 中的所有頁面。
  • 使用 PdfTableExtractor.ExtractTable() 方法提取頁面中的表格。
  • 遍歷提取的表格,并使用 Workbook.Worksheets.Add() 方法向工作簿中添加工作表。
  • 使用 PdfTable.GetText() 方法獲取 PDF 表格單元格中的文本。
  • 利用 Worksheet.Range[].Value 屬性將文本寫入工作表的特定單元格。
  • 使用 Workbook.SaveToFile() 方法將結(jié)果工作簿保存為 CSV 文件。

注意事項(xiàng):要將表格保存為 CSV 或 Excel 文件,需要用到 Spire.XLS。你可以通過:pip install spire.xls 將其安裝到設(shè)備上。

快速提取 PDF 文檔中的圖片

在 PDF 文檔中,除了文本和表格,圖片也是常見的內(nèi)容形式,尤其是在宣傳材料、報(bào)告或掃描文檔中更為常見。這些圖片可能是位圖,也可能是矢量圖,提取方式各不相同。本節(jié)將帶你了解如何使用 Spire.PDF 快速識(shí)別并提取頁面中的嵌入圖片,并將其保存為常用格式(如 PNG、JPEG),方便后續(xù)的歸檔、分析或內(nèi)容重用。

完整代碼示例 - 提取 PDF 文檔中的所有圖片:

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

# 創(chuàng)建 PdfDocument 對(duì)象
doc = PdfDocument()
# 加載 PDF 文檔
doc.LoadFromFile("/AI繪畫的利與弊.pdf")

# 創(chuàng)建 PdfImageHelper 對(duì)象
image_helper = PdfImageHelper()

image_count = 1
# 遍歷文檔中的頁面
for i in range(doc.Pages.Count):
    # 獲取當(dāng)前頁面中的圖片信息
    images_info = image_helper.GetImagesInfo(doc.Pages[i])

    # 獲取圖片并將其保存為圖片文件
    for j in range(len(images_info)):
        image_info = images_info[j]
        output_file = f"/New folder/image{image_count}.png"
        image_info.Image.Save(output_file)
        image_count += 1

doc.Close()

效果預(yù)覽:

(Python 提取 PDF 中的所有圖片)

主要步驟解析:

  • 創(chuàng)建 PdfDocument 實(shí)例并加載一個(gè) PDF 文檔。
  • 創(chuàng)建 PdfImageHelper 對(duì)象。
  • 遍歷所有頁面。
  • 通過 PdfImageHelper.GetImagesInfo(page: PdfPageBase) 方法獲取頁面中的圖片信息。
  • 遍歷獲取結(jié)果,使用 PdfImageInfo.Image.Save() 方法將每張圖片保存為圖片文件。

總結(jié)

今天的文章中,我們展示了如何在 Python 中精準(zhǔn)提取 PDF 文檔中的文本、表格和圖片。無論是批量處理合同、公文,還是提取數(shù)據(jù)用于系統(tǒng)集成,Spire 控件都能為開發(fā)者提供穩(wěn)定、高效的支持。隨著文檔數(shù)字化和自動(dòng)化處理需求不斷增長(zhǎng),掌握這類工具的使用將為日常開發(fā)工作帶來顯著效率提升。

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

相關(guān)文章

  • Python實(shí)現(xiàn)數(shù)字的格式化輸出

    Python實(shí)現(xiàn)數(shù)字的格式化輸出

    這篇文章主要介紹了Python如何實(shí)現(xiàn)數(shù)字的格式化輸出,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • selenium+opencv實(shí)現(xiàn)滑塊驗(yàn)證碼的登陸

    selenium+opencv實(shí)現(xiàn)滑塊驗(yàn)證碼的登陸

    很多網(wǎng)站登錄登陸時(shí)都要用到滑塊驗(yàn)證碼,本文主要介紹了selenium+opencv實(shí)現(xiàn)滑塊驗(yàn)證碼的登陸,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 安裝docker-compose的兩種最簡(jiǎn)方法

    安裝docker-compose的兩種最簡(jiǎn)方法

    在本篇文章里小編給各位整理的是關(guān)于安裝docker-compose的具體方法總結(jié),有需要的朋友們參考下。
    2019-07-07
  • Python生成隨機(jī)MAC地址

    Python生成隨機(jī)MAC地址

    這篇文章主要介紹了Python生成隨機(jī)MAC地址的相關(guān)資料,需要的朋友可以參考下
    2015-03-03
  • Python使用ntplib庫(kù)同步校準(zhǔn)當(dāng)?shù)貢r(shí)間的方法

    Python使用ntplib庫(kù)同步校準(zhǔn)當(dāng)?shù)貢r(shí)間的方法

    NTP網(wǎng)絡(luò)時(shí)間協(xié)議其實(shí)大家平時(shí)或多或少都能接觸到,包括Windows在內(nèi)的操作系統(tǒng)中的很多Internet時(shí)間同步功能都是在NTP的基礎(chǔ)上來做,這里我們來看一下Python使用ntplib庫(kù)同步校準(zhǔn)當(dāng)?shù)貢r(shí)間的方法
    2016-07-07
  • 淺談openpyxl庫(kù),遇到批量合并單元格的問題

    淺談openpyxl庫(kù),遇到批量合并單元格的問題

    這篇文章主要介紹了淺談openpyxl庫(kù),遇到批量合并單元格的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • NumPy之矩陣向量線性代數(shù)等操作示例

    NumPy之矩陣向量線性代數(shù)等操作示例

    這篇文章主要為大家介紹了NumPy之矩陣向量線性代數(shù)等操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • python @property的用法及含義全面解析

    python @property的用法及含義全面解析

    下面小編就為大家分享一篇python @property的用法及含義全面解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • Python常見數(shù)據(jù)類型處理詳細(xì)代碼示例

    Python常見數(shù)據(jù)類型處理詳細(xì)代碼示例

    這篇文章主要介紹了Python常見數(shù)據(jù)類型處理的相關(guān)資料,包括Number、String、bool、List、Tuple、Set和Dictionary,每種數(shù)據(jù)類型都有其特定的用途和操作方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • PyTorch里面的torch.nn.Parameter()詳解

    PyTorch里面的torch.nn.Parameter()詳解

    今天小編就為大家分享一篇PyTorch里面的torch.nn.Parameter()詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01

最新評(píng)論

武汉市| 龙泉市| 常德市| 常宁市| 象州县| 湖南省| 庐江县| 资中县| 长宁区| 象州县| 青龙| 衡阳市| 新竹县| 蚌埠市| 和田县| 盐山县| 大关县| 深水埗区| 稻城县| 桃园县| 陈巴尔虎旗| 油尖旺区| 鄂尔多斯市| 淮滨县| 肥乡县| 洪洞县| 珲春市| 沂水县| 广南县| 新龙县| 滦平县| 大庆市| 彰武县| 陈巴尔虎旗| 汝州市| 长宁县| 肇东市| 张家口市| 女性| 河东区| 清水县|