翻譯|行業(yè)資訊|編輯:吉煒煒|2025-06-25 16:16:43.453|閱讀 120 次
概述:在 Python 中讀取 PDF 文檔是實現(xiàn)文檔自動化、內(nèi)容分析和數(shù)據(jù)提取的基礎(chǔ)操作之一。本文將介紹如何使用 Spire.PDF for Python 實現(xiàn)用 Python 讀取 PDF 文檔。該庫提供簡單易用、功能強大的API,無需依賴第三方工具。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
在 Python 中讀取 PDF 文檔是實現(xiàn)文檔自動化、內(nèi)容分析和數(shù)據(jù)提取的基礎(chǔ)操作之一。無論你處理的是合同、報告、發(fā)票,還是科研論文,能夠通過代碼訪問 PDF 內(nèi)容,不僅能節(jié)省時間,還能帶來更高效的處理流程。
要在 Python 中準確提取 PDF 的文本、表格、圖像和元數(shù)據(jù),一個穩(wěn)定、功能完善的 PDF 操作庫是關(guān)鍵。本文將介紹如何使用 Spire.PDF for Python 實現(xiàn)用 Python 讀取 PDF 文檔。該庫提供簡單易用、功能強大的API,無需依賴第三方工具。
加入Spire技術(shù)交流QQ群(125237868),與更多開發(fā)者一起提升文檔開發(fā)技能。
Spire.PDF for Python 是一款功能全面的 PDF 讀取庫,支持通過 Python 代碼提取 PDF 中的文本、表格、圖像和文檔信息。其主要特點包括:
非常適合希望快速集成 PDF 數(shù)據(jù)讀取功能的開發(fā)者。
使用 pip 安裝 Spire.PDF for Python:
pip install spire.pdf或安裝適用于輕量任務(wù)的 :
pip install spire.pdf.free
在讀取 PDF 內(nèi)容之前,需先將其加載到內(nèi)存中。Spire.PDF 支持從文件路徑或內(nèi)存字節(jié)流加載文檔,非常適用于處理網(wǎng)頁上傳或 API 返回的 PDF 數(shù)據(jù)。
使用 PdfDocument.LoadFromFile() 方法從本地讀取 PDF 文件:
from spire.pdf import PdfDocument # 創(chuàng)建一個 PdfDocument 實例 pdf = PdfDocument() # 加載一個 PDF 文檔 pdf.LoadFromFile("sample.pdf")
如果不希望將文件保存到磁盤,可以先讀取字節(jié)數(shù)據(jù),并使用 Stream 對象加載:
from spire.pdf import PdfDocument, Stream # 將 PDF 文件讀取為字節(jié)數(shù)組 with open("sample.pdf", "rb") as f: byte_data = f.read() # 使用字節(jié)數(shù)組創(chuàng)建一個流對象 pdfStream = Stream(byte_data) # 使用流對象創(chuàng)建一個 PdfDocument 實例 pdf = PdfDocument(pdfStream)
提取 PDF 中的文本內(nèi)容是最常見的需求之一。Spire.PDF 提供簡單方法,可獲取整篇文檔或指定頁面中的所有可見文本。
遍歷每一頁,使用 PdfTextExtractor.ExtractText() 提取內(nèi)容:
from spire.pdf import PdfDocument, PdfTextExtractor, PdfTextExtractOptions # 創(chuàng)建一個 PdfDocument 實例 pdf = PdfDocument() # 加載一個 PDF 文檔 pdf.LoadFromFile("sample.pdf") all_text = "" # 遍歷每一頁 for pageIndex in range(pdf.Pages.Count): page = pdf.Pages.get_Item(pageIndex) # 創(chuàng)建一個 PdfTextExtractor 實例 text_extractor = PdfTextExtractor(page) # 配置提取選項 options = PdfTextExtractOptions() options.IsExtractAllText = True options.IsSimpleExtraction = True # 從當前頁面提取文本 all_text += text_extractor.ExtractText(options) # 打印提取到的全部文本 print(all_text)
如只需獲取頁面中某一特定區(qū)域的文本,可通過設(shè)置坐標區(qū)域?qū)崿F(xiàn):
from spire.pdf import RectangleF, PdfDocument, PdfTextExtractor, PdfTextExtractOptions # 加載 PDF 文件 pdf = PdfDocument() pdf.LoadFromFile("sample.pdf") # 獲取第一頁 page = pdf.Pages.get_Item(0) # 創(chuàng)建一個 PdfTextExtractor 實例 textExtractor = PdfTextExtractor(page) # 設(shè)置提取區(qū)域,通過配置 PdfTextExtractOptions options = PdfTextExtractOptions() area = RectangleF.FromLTRB(0, 200, page.Size.Width, 270) # x, y, width, height options.ExtractArea = area options.IsSimpleExtraction = True # 從指定區(qū)域提取文本 text = textExtractor.ExtractText(options) print(text)
PDF 中的表格廣泛用于財務(wù)、賬單等場景。借助 Spire.PDF 提供的表格提取器,你可以精準讀取頁面中的表格內(nèi)容。
from spire.pdf import PdfDocument, PdfTableExtractor # 加載 PDF 文件 pdf = PdfDocument() pdf.LoadFromFile("sample.pdf") # 創(chuàng)建一個 PdfTableExtractor 實例 table_extractor = PdfTableExtractor(pdf) # 從第一頁提取表格 tables = table_extractor.ExtractTable(0) for table in tables: # 獲取行數(shù)和列數(shù) row_count = table.GetRowCount() column_count = table.GetColumnCount() # 遍歷每一行 for i in range(row_count): table_row = [] # 遍歷每一列 for j in range(column_count): # 獲取單元格文本 cell_text = table.GetText(i, j) table_row.append(cell_text) print(table_row)
PDF 文件常含有徽標、插圖或掃描圖像。Spire.PDF 支持提取并保存這些嵌入圖像,方便后續(xù)使用或歸檔。
from spire.pdf import PdfDocument, PdfImageHelper # 加載 PDF 文件 pdf = PdfDocument() pdf.LoadFromFile("sample.pdf") # 獲取第一頁 page = pdf.Pages.get_Item(0) # 創(chuàng)建一個 PdfImageHelper 對象 image_helper = PdfImageHelper() # 獲取頁面上的圖像信息 images_info = image_helper.GetImagesInfo(page) # 將頁面中的圖像保存為圖像文件 for i in range(len(images_info)): images_info[i].Image.Save("output/Images/image" + str(i) + ".png")
你可以通過 Spire.PDF 獲取文檔的元數(shù)據(jù)信息,如標題、作者、主題和關(guān)鍵詞等,有助于文檔管理與歸檔。
from spire.pdf import PdfDocument # 加載 PDF 文件 pdf = PdfDocument() pdf.LoadFromFile("sample.pdf") # 獲取文檔屬性 properties = pdf.DocumentInformation print("標題: " + properties.Title) print("作者: " + properties.Author) print("主題: " + properties.Subject) print("關(guān)鍵詞: " + properties.Keywords)
可以。Spire.PDF for Python 提供了讀取文本、提取表格、圖像和元數(shù)據(jù)的完整 API,支持結(jié)構(gòu)化內(nèi)容的精準解析。
當然可以。只需通過 pip 安裝,就能在 Jupyter Notebook 中調(diào)用 API 讀取 PDF 文件、提取文本與圖像等內(nèi)容。
加載文檔后,使用 PdfTextExtractor.ExtractText() 方法遍歷每一頁即可提取所有可見文本。
可以。通過 LoadFromStream() 方法可直接讀取字節(jié)數(shù)據(jù),非常適合處理網(wǎng)頁上傳或接口返回的臨時文件。
借助 Spire.PDF for Python,你可以輕松完成 PDF 文件的讀取和處理任務(wù),包括文本、表格、圖像和元數(shù)據(jù)的提取,還可將 PDF 轉(zhuǎn)換為可分析的文本內(nèi)容,是實現(xiàn)數(shù)據(jù)采集與文檔自動化的理想方案。
————————————————————————————————————————
關(guān)于慧都科技:
慧都科技是一家行業(yè)數(shù)字化解決方案公司,長期專注于軟件、油氣與制造行業(yè)。公司基于深入的業(yè)務(wù)理解與管理洞察,以系統(tǒng)化的業(yè)務(wù)建模驅(qū)動技術(shù)落地,幫助企業(yè)實現(xiàn)智能化運營與長期競爭優(yōu)勢。在軟件工程領(lǐng)域,我們提供開發(fā)控件、研發(fā)管理、代碼開發(fā)、部署運維等軟件開發(fā)全鏈路所需的產(chǎn)品,提供正版授權(quán)采購、技術(shù)選型、個性化維保等服務(wù),幫助客戶實現(xiàn)技術(shù)合規(guī)、降本增效與風險可控。慧都科技E-iceblue的官方授權(quán)代理商,提供E-iceblue系列產(chǎn)品免費試用,咨詢,正版銷售等于一體的專業(yè)化服務(wù)。E-iceblue旗下Spire系列產(chǎn)品是國產(chǎn)文檔處理領(lǐng)域的優(yōu)秀產(chǎn)品,支持國產(chǎn)化,幫助企業(yè)高效構(gòu)建文檔處理的應(yīng)用程序。
歡迎下載|體驗更多E-iceblue產(chǎn)品
獲取更多信息請咨詢 ;技術(shù)交流Q群(125237868)
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都網(wǎng)