從PDF中提取內容能幫助我們獲取文件中的信息,以便進行進一步的分析和處理。此外,在遇到類似項目時,提取出來的文本或圖片也能再次利用。要在Python中通過代碼提取PDF文件中的文本和圖片,可以使用 Spire.PDF for Python 這個第三方庫。具體操作方法查閱下文。 Python 提取PD ...
從PDF中提取內容能幫助我們獲取文件中的信息,以便進行進一步的分析和處理。此外,在遇到類似項目時,提取出來的文本或圖片也能再次利用。要在Python中通過代碼提取PDF文件中的文本和圖片,可以使用 Spire.PDF for Python 這個第三方庫。具體操作方法查閱下文。
- Python 提取PDF文本
- Python 提取PDF頁面中指定矩形區域的文本
- Python 提取PDF圖片
安裝 Spire.PDF for Python
本文中用到的Python PDF庫支持在各種 Python 程式中創建、讀取、編輯、轉換和保存 PDF 文檔。要安裝此產品,可使用以下 pip 命令。
pip install Spire.PDF
要瞭解詳細安裝教程,參考: 如何在 VS Code 中安裝 Spire.PDF for Python
使用 Python 提取PDF文本
Spire.PDF for Python 提供的 PdfPageBase.ExtractText() 方法能提取一個 PDF 頁面中文本。根據你的具體需求,你可以選擇僅提取某頁中的文本,或者遍歷所有頁面以提取整個PDF文件中的文本。完整Python代碼如下:
from spire.pdf import * from spire.pdf.common import * # 創建PdfDocument類的實例 pdf = PdfDocument() # 載入PDF文檔 pdf.LoadFromFile("大數據.pdf") # 創建一個TXT文件來保存提取的文本 extractedText = open("Output/提取文本.txt", "w", encoding="utf-8") # 遍歷文檔的每一頁 for i in range(pdf.Pages.Count): # 獲取頁面 page = pdf.Pages.get_Item(i) # 從頁面提取文本 text = page.ExtractText() # 將文本寫入TXT文件 extractedText.write(text + "\n") extractedText.close() pdf.Close()
使用 Python 提取PDF頁面中指定矩形區域的文本
如果你只需要提取某個PDF頁面中指定區域的文本,你可以指定一個矩形範圍然後使用 PdfPageBase.ExtractText(RectangleF rectangleF) 方法提取其中的文本內容。完整Python代碼如下:
from spire.pdf import * from spire.pdf.common import * # 創建PdfDocument類的對象 pdf = PdfDocument() # 載入PDF文檔 pdf.LoadFromFile("大數據.pdf") # 獲取第一頁 page = pdf.Pages.get_Item(0) # 從頁面的指定矩形區域提取文本 text = page.ExtractText(RectangleF(0.0, 400.0, 770.0, 180.0)) # 將提取的文本保存到TXT文件中 extractedText = open("Output/PDF文本.txt", "w", encoding="utf-8") extractedText.write(text) extractedText.close() pdf.Close()
使用 Python 提取PDF圖片
除了提取文本外,Spire.PDF for Python 還提供了 PdfPageBase.ExtractImages() 方法來提取PDF文件中的圖片。要提取一個PDF文件中的所有圖片並保存到指定路徑,參考以下Python代碼。
from spire.pdf import * from spire.pdf.common import * # 創建PdfDocument類的實例 pdf = PdfDocument() # 載入PDF文檔 pdf.LoadFromFile("大數據.pdf") # 創建一個列表來存儲圖篇 images = [] # 遍歷文檔的每一頁 for i in range(pdf.Pages.Count): # 獲取頁面 page = pdf.Pages.get_Item(i) # 從頁面提取圖片並存儲在創建的列表中 for img in page.ExtractImages(): images.append(img) # 保存圖像 i = 0 for image in images: i += 1 image.Save("Output/圖片/圖片-{0:d}.png".format(i), ImageFormat.get_Png()) pdf.Close()