當你需要 PDF 處理的原始速度時,PyMuPDF 是 Python PDF 函式庫中的效能領導者。PyMuPDF 建構為 Artifex 基於 C 語言的 MuPDF 函式庫的 Python 綁定,結合了 Python 的易用性與 C 語言級別的渲染、提取和操作 PDF 文件的效能。
PyMuPDF 處理 PDF 的速度比純 Python 替代方案快 10-100 倍。它在毫秒內將頁面渲染為圖像,以精確定位提取文字,管理註釋,並處理表單。除了 PDF 之外,它還支援 XPS、EPUB、MOBI、FB2 和常見的圖像格式,使其成為一個多功能文件處理引擎。
效能基準
| 操作 | PyMuPDF | pypdf | pdfminer | 單位 |
|---|---|---|---|---|
| 文字提取(100 頁) | 0.3 | 4.2 | 8.5 | 秒 |
| 頁面渲染 | 0.05 | N/A | N/A | 秒/頁 |
| 記憶體使用 | 45 | 120 | 200 | 1000 頁的 MB |
| PDF 合併(50 個檔案) | 0.8 | 2.1 | N/A | 秒 |
核心能力
| 功能 | 描述 |
|---|---|
| 頁面渲染 | 以任何解析度將頁面轉換為 PNG、JPEG 或 Pixmap |
| 文字提取 | 獲取帶有位置、字型和樣式的文字 |
| 圖像提取 | 以原始格式提取嵌入的圖像 |
| 註釋管理 | 新增、編輯和移除螢光筆、筆記、印章 |
| 文件轉換 | 在 PDF、XPS、EPUB 和圖像之間進行轉換 |
渲染和提取管線
flowchart LR
A[PDF/XPS/EPUB] --> B[MuPDF 核心引擎]
B --> C{操作}
C -->|渲染| D[頁面 Pixmap]
D --> E[圖像輸出]
C -->|提取| F[文字字典]
F --> G[結構化文字]
C -->|註釋| H[註釋物件]
H --> I[修改後的頁面]
C -->|變換| J[旋轉/縮放/裁剪]
J --> I
I --> K[儲存 PDF]MuPDF 核心引擎解析文件結構並提供對每個元素的高速存取。Python 綁定將此包裝為熟悉的物件,如 Document、Page 和 Pixmap,並附有直觀的方法。
何時選擇 PyMuPDF
當效能至關重要時,PyMuPDF 是最佳選擇:渲染數千頁進行預覽、從大型文件存檔中提取文字,或建構即時文件處理管線。其基於 C 的核心使其非常適合吞吐量至關重要的伺服器端處理。代價是需要更複雜的安裝過程,需要原生編譯,但大多數平台都提供了預建的 wheels。
如需更多資訊,請造訪 PyMuPDF GitHub 儲存庫 和 PyMuPDF 文件。
常見問題
Q:我需要單獨安裝 MuPDF 嗎? A:不需要,MuPDF 與 PyMuPDF 捆綁在一起,並透過 pip 自動安裝。
Q:PyMuPDF 能處理 PDF/A 文件嗎? A:是的,它處理讀取和寫入的 PDF/A 文件。
Q:PyMuPDF 可以從掃描的 PDF 中提取文字嗎? A:不能直接提取——它提取 PDF 中儲存的文字。對於掃描文件,請與 OCR 函式庫配合使用。
Q:PyMuPDF 是執行緒安全的嗎? A:Document 物件不是執行緒安全的,但你可以使用多個程序進行並行處理。
Q:頁面渲染支援哪些圖像格式? A:PNG、JPEG、TIFF、BMP、PPM 和 PGM,支援任何解析度或 DPI 設定。
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!