pypdf 是一個免費開源的純 python PDF 函式庫,能夠分割、合併、裁剪和轉換 PDF 檔案的頁面。它還可以為 PDF 文件添加自訂資料、檢視選項和密碼。 pypdf 也可以從 PDF 檢索文字和元資料。
請參閱 pdfly 以了解使用 pypdf 與 PDF 互動的 CLI 應用程式。
使用 pip 安裝 pypdf:
pip install pypdf
若要將 pypdf 與 AES 加密或解密結合使用,請安裝額外的依賴項:
pip install pypdf[crypto]
注意:與先前的版本相比,
pypdf
3.1.0 及更高版本包含重大改進。請參閱遷移指南以獲取更多資訊。
from pypdf import PdfReader
reader = PdfReader ( "example.pdf" )
number_of_pages = len ( reader . pages )
page = reader . pages [ 0 ]
text = page . extract_text ()
pypdf 可以做更多的事情,例如分割、合併、讀取和建立註釋、解密和加密等等。查看文件以取得其他使用範例!
有關問題和解答,請造訪 StackOverflow(以 pypdf 標記)。
維護 pypdf 是一項協作工作。您可以透過編寫文件、幫助縮小問題範圍和提交程式碼來支援該專案。有關更多信息,請參閱 CONTRIBUTING.md 文件。
pypdf 使用者的體驗涵蓋了從想要讓生活更輕鬆的初學者到在 PDF 出現之前開發軟體的專家的整個範圍。您可以透過回答 StackOverflow 上的問題、幫助討論以及詢問報告 MCVE 問題的使用者(程式碼 + 範例 PDF!)來為 pypdf 社群做出貢獻。
一個好的錯誤單包括 MCVE - 一個最小的完整可驗證範例。對於 pypdf,這意味著您必須上傳導致錯誤發生的 PDF 以及您使用所有輸出執行的程式碼。使用print(pypdf.__version__)
告訴我們您正在使用哪個版本。
歡迎所有程式碼貢獻,但較小的程式碼更有機會被及時納入。為新功能新增單元測試或為已修復的錯誤新增測試案例有助於我們確保拉取請求 (PR) 正常。
pypdf 包含一個可以使用pytest
執行的測試套件:
$ pytest
===================== test session starts =====================
platform linux -- Python 3.6.15, pytest-7.0.1, pluggy-1.0.0
rootdir: /home/moose/GitHub/Martin/pypdf
plugins: cov-3.0.0
collected 233 items
tests/test_basic_features.py .. [ 0%]
tests/test_constants.py . [ 1%]
tests/test_filters.py .................x..... [ 11%]
tests/test_generic.py ................................. [ 25%]
............. [ 30%]
tests/test_javascript.py .. [ 31%]
tests/test_merger.py . [ 32%]
tests/test_page.py ......................... [ 42%]
tests/test_pagerange.py ................ [ 49%]
tests/test_papersizes.py .................. [ 57%]
tests/test_reader.py .................................. [ 72%]
............... [ 78%]
tests/test_utils.py .................... [ 87%]
tests/test_workflows.py .......... [ 91%]
tests/test_writer.py ................. [ 98%]
tests/test_xmp.py ... [100%]
========== 232 passed, 1 xfailed, 1 warning in 4.52s ==========