1. 在 Python 中處理 PDF
為什麼要自動化處理 PDF?
如果你曾經給朋友傳送過帶有圖表、堆積文字和一張可愛貓咪圖片(為了營造愉快氛圍)的文件, 那麼你知道 PDF 是用於傳遞結構化信息的理想格式。它通用且在任何裝置上都能流暢閱讀, 並且還不會破壞文件的排版。但手動編輯、添加新數據並記住該把文件發送給誰,真的超麻煩! 自動化就是在這裡拯救我們的。
想像一下多麼酷,如果報告可以自動生成,數據被收集並清晰排列, 需要的頁面自己合併起來!例如,你可以自動生成包含所有表格和圖表的完整月度工作報告。 在處理報告生成、文件流,以及需要頻繁更改的大量文件時,自動化處理 PDF 文件特別有用。
處理 PDF 的主要任務
讓我們來看看處理 PDF 時需要解決的主要任務。首先是從文件中提取文本。 如果你想分析文本內容而又不想勞累自己的雙眼,這是很有必要的。 接著是文件合併和分割。這將幫助你組合大型報告,也可以拆分數據以達成具體目標, 比如為管理層單獨提取重要章節。
此外,也要提到為分析和報告準備 PDF。這包括創建目錄、章節及其他輔助信息, 使你的報告不僅內容豐富,還賞心悅目——畢竟誰不喜歡一切都井井有條呢? 而且大家更愛不必自己來整理這些事。
在 Python 中處理 PDF 的主要庫
- PyPDF2: 用於讀取、拆分、合併和提取 PDF 文本的庫。簡單易用, 但只支持基礎功能。
- PDFPlumber: 可以更精準地結構化文檔,提取文本和表格。
- ReportLab: 從零開始創建 PDF 文件的工具,適合生成帶有圖表、表格和圖片的報告。
2. 從哪裡開始?
我們先開始安裝和配置 PyPDF2 庫,它是我們進入自動化處理 PDF 世界的好夥伴。 PyPDF2 是一個輕量級且方便使用的 Python PDF 處理庫。 你可以通過 pip 命令安裝它,打開終端並執行以下命令:
pip install PyPDF2
安裝成功後,請確保庫可以正常工作,在你的 Python 腳本中導入它:
import PyPDF2
def check_pypdf2():
print("PyPDF2 已安裝並可以使用!")
check_pypdf2()
如果你看到歡迎信息,說明一切順利。現在我們可以進行往後的步驟來實現自動處理!
3. 從 PDF 文檔中提取文本
首先要解決的任務之一是提取 PDF 文本。這對於數據分析、信息驗證或閱讀不友好的格式文本很有用!
讀取和解析 PDF
一切從打開 PDF 文檔開始。使用 PyPDF2 可以輕鬆且優雅地完成。以下是一些示例代碼, 展示如何打開和讀取文檔:
import PyPDF2
# 打開 PDF 文件
with open("sample.pdf", "rb") as pdf_file:
pdf_reader = PyPDF2.PdfReader(pdf_file)
text = ""
for page_num in range(len(pdf_reader.pages)):
page = pdf_reader.pages[page_num]
text += page.extract_text() + "\n"
print(text)
在這裡,我們打開 PDF,創建了一個 PdfReader
對象,然後從每個頁面中提取文本並合成為一個字符串。
剩下要做的就是欣賞自己的成果,並準備好分析收集的信息!
提取特定頁面的文本
如果你只需要提取特定頁面的文本,只需指出頁碼即可。
import PyPDF2
with open("sample.pdf", "rb") as pdf_file:
pdf_reader = PyPDF2.PdfReader(pdf_file)
page = pdf_reader.pages[2] # 從第三頁提取文本
text = page.extract_text()
print(text)
如果有興趣的話——到下一節課見啦 :P
GO TO FULL VERSION