產品比較

IronPDF for Python & PyPDF 的比較

查克尼思·賓
查克尼思·賓
2023年8月7日
分享:

介紹

PDFs(可攜式文件格式) 是一種廣泛使用的文件格式,用於在不同平台上保留文件信息的佈局和格式。 由於它們能夠在不同裝置或操作系統上開啟時保持一致的外觀,因此在各行各業中享有盛譽。 PDF通常用於共享報告、發票、表單、電子書、自定義數據和其他重要文件。

在 Python 中處理 PDF 文件已成為許多專案中的關鍵方面。 Python提供了幾個庫,以簡化PDF文件的操作,使提取信息、創建新文檔、合併或拆分現有文檔及執行其他PDF相關任務變得更加容易。

在本文中,我們將對兩個著名的 Python 庫進行全面比較,這兩個庫旨在操作 PDF 文件:PyPDFIronPDF。 通過評估這兩個庫的功能和能力,我們旨在為開發者提供有價值的見解,以幫助他們在選擇最適合他們特定軟體應用需求的庫時做出明智的決定。

這些程式庫提供強大的工具來簡化處理 PDF,讓開發者能夠在其 Python 應用程式中高效處理 PDF 文件。 那麼,讓我們深入比較,探索每個程式庫的優勢,以促進您的 PDF 相關任務。

PyPDF - 純 Python PDF 程式庫

PyPDF 是一個純 Python 的 PDF 函式庫,提供基本功能用於讀取、寫入、解密 PDF 文件以及操作 PDF 文檔。 它允許開發者從PDF中提取文字和圖片、合併多個PDF文件、將大PDF拆分成較小的文件,以及更多功能。 PyPDF以其簡單和易用著稱,是執行簡單PDF任務的合適選擇。

它提供了一套全面的功能來處理 PDF 文件,是執行各類 PDF 相關任務的絕佳選擇。

功能

PyPDF 是一個 Python PDF 庫,具備以下功能:

  • 讀取 PDF 檔案:從現有的 PDF 檔案中提取文本、圖像和元數據。
  • 寫入 PDF 檔案:從頭開始建立新的 PDF,或使用文字和圖片修改現有文件。
  • 合併 PDF 文件:將多個 PDF 文件合併為一個單一文件。
  • 拆分 PDF 文件:將 PDF 拆分為多個文件,每個文件包含一個或多個頁面。
  • 旋轉及覆蓋頁面:旋轉頁面,並向PDF添加浮水印或覆蓋內容。
  • 加密和解密 PDF 檔案:通過加密和解密來為 PDF 增加安全性。
  • 提取文本:從 PDF 或頁面中的特定區域獲取純文本。
  • 提取圖像:檢索嵌入在PDF中的圖像。
  • 操作 PDF 文件:複製、刪除或重新排列 PDF 文件中的頁面。
  • 表單欄位填寫:以程式方式填入PDF中的表單欄位。

IronPDF - Python PDF 庫

IronPDF 是一個全面的 PDF 操作庫,用於 Python,基於 IronPDF 的 .NET 庫構建。 它提供了一個強大的 API,具備先進的功能,例如將 HTML 轉換為 PDF、處理 PDF 註釋和表單欄位,以及高效地執行複雜的 PDF 操作。 IronPDF 因其在需要強大 PDF 處理、優異表現和廣泛功能支持的項目中而受到青睞。

IronPDF 是一個 Python PDF 函式庫,能夠無縫處理 PDF 處理任務。 它為 Python 開發人員提供了一個可靠且功能豐富的 PDF 操作解決方案。 使用 IronPDF,您可以輕鬆地從 PDF 的多個頁面生成、修改和提取內容,使其成為各種 PDF 相關應用程序的絕佳選擇。

功能

以下是 IronPDF 的一些顯著功能:

  • PDF 生成IronPDF 允許開發人員從頭創建 PDF 文件或將 HTML 內容轉換為 PDF 格式,使得生成動態且具視覺吸引力的報告和文件變得容易。
  • 進階文字 影像操作開發人員可以輕鬆地在 PDF 文件中操作文字和影像。 IronPDF 提供添​​加、編輯和格式化文本的功能,還可以精確地插入、調整大小和定位圖像。
  • PDF 合併 以及 PDF 分割IronPDF 使得將多個 PDF 文件合併為單一文檔和將 PDF 分割成多個獨立文件成為可能,為管理 PDF 內容提供了靈活性。
  • PDF 表單支持借助 IronPDF,開發人員可以處理 PDF 表單,允許他們填寫表單字段、提取表單數據以及創建互動式 PDF。
  • PDF安全 加密 IronPDF 提供功能,添加密碼保護和加密至PDF文件,確保資料安全及機密性。
  • PDF 註解開發人員可以添加註解,例如評論、突出顯示和書籤,以提高 PDF 文件內的協作性和可讀性。
  • 頁首和頁尾IronPDF 允許在 PDF 頁面上添加頁首和頁尾,為文件提供品牌和背景。
  • 條碼生成IronPDF 方便地利用 HTML 將各種類型的條碼和 QR 碼直接生成到 PDF 文件中。
  • 高性能: 基於IronPDF的.NET庫構建,IronPDF在處理大型PDF文件和複雜操作時提供高性能和效率。

    文章內容如下:

  1. 創建一個 Python 專案

  2. PyPDF 安裝

  3. IronPDF 安裝

  4. 建立 PDF 文件

  5. 合併 PDF 檔案

  6. 拆分 PDF 文件

  7. 從 PDF 文件中提取文本

  8. 授權

  9. 結論

1. 創建一個 Python 專案

使用整合開發環境 (IDE) 來進行 Python 專案可以顯著提升生產力。 在熱門選擇中,我將使用 PyCharm,因為它因其智能代碼補全、強大的調試功能以及與版本控制系統的無縫集成而脫穎而出。 如果您尚未安裝,您可以從 JetBrains 網站(https://www.jetbrains.com/pycharm/)下載,或者您可以使用任何適合 Python 程式的 IDE/文本編輯器,例如 VS Code。

在 PyCharm 中創建一個 Python 項目:

  1. 啟動 PyCharm,然後在 PyCharm 歡迎界面上點選「Create New Project」,或者從選單中前往 File > New Project

    IronPDF For Python 與 PyPDF 的比較:圖 1 - PyCharm

  2. 選擇 Python 解釋器。 如果您尚未設置解釋器,請點擊齒輪圖標並配置一個新的解釋器。

  3. 選擇專案位置和模板。

  4. 提供專案名稱和設定,然後點擊建立

    IronPDF for Python 与 PyPDF 比較:圖2 - 新專案

  5. 開始編寫、運行和調試您的 Python 專案。

2. PyPDF 安裝

PyPDF,純 Python 庫,可以通過多種方式安裝。 我們可以使用命令提示字元和 PyCharm 來安裝它。

2.1. 使用命令提示字元

  1. 在您的電腦上打開命令提示符或終端。

  2. 要安裝 PyPDF,請使用以下 pip 命令:
    :ProductInstall
  1. 等待 PyPDF 安裝完成。 您應該看到一則成功訊息,表示 PyPDF 已安裝。

    您可以使用相同的流程在 PyCharm 終端安裝 PyPDF。

    注意:Python 必須添加到系統 PATH 環境變數中。

2.2. 使用 PyCharm

  1. 打開 PyCharm IDE。

  2. 建立一個新的 Python 專案或打開現有的專案。

  3. 進入專案後,點擊頂部菜單中的文件,然後選擇設置

  4. 在設置窗口中,導航至 "Project:" 並點擊 "Python Interpreter"。

  5. 在 Python Interpreter 視窗中,點擊「+」圖示來新增一個新套件。

    IronPDF For Python 與 PyPDF 的比較:圖 3 - Python 解釋器

  6. 在「可用套件」視窗中,搜尋「PyPDF」。

    IronPDF For Python 與 PyPDF 比較:圖4 - PyPDF

  7. 從列表中選擇「PyPDF」,然後點擊「Install Package」按鈕。

  8. 等待 PyCharm 下載和安裝 PyPDF。

3. 安裝 IronPDF

必要條件

IronPDF Python 以強大的 .NET 6.0 技術為基礎。 因此,要有效地使用IronPDF for Python,您需要在系統上安裝.NET 6.0運行時。 Linux 和 Mac 使用者可能需要從 Microsoft 官方網站 (https://dotnet.microsoft.com/en-us/download/dotnet/6.0) 下載並安裝 .NET,然後才能開始使用此 Python 套件。 確保存在 .NET 6.0 執行時,將在使用 IronPDF Python 進行 PDF 處理任務時實現無縫整合和最佳性能。

3.1. 使用命令提示字元

  1. 在您的電腦上打開命令提示符或終端。

  2. 要安裝 IronPDF,請使用以下 pip 命令:
    :PackageInstall
  1. 等待安裝完成。 您應該看到一條成功訊息,指示 IronPDF 已成功安裝。

3.2. 使用 PyCharm

  1. 在您的電腦上打開 PyCharm IDE。

  2. 建立一個新的 Python 專案或打開現有的專案。

  3. 進入專案後,在頂部選單中點擊「File」,然後選擇「Settings」。

  4. 在設定視窗中,導航至「專案:」並點擊「Python 解譯器」。

  5. 在 Python Interpreter 視窗中,點擊「+」圖示來新增一個新套件。

  6. 在「可用套件」視窗中,搜索「ironpdf」。

    IronPDF For Python 與 PyPDF 之間的比較:圖 5 - IronPDF

  7. 從清單中選擇「ironpdf」,然後點擊「安裝套件」按鈕。

  8. 等待 IronPDF 下載並安裝。 顯示成功訊息,表示 IronPDF 已安裝。

    現在,這兩個函式庫都已安裝並可以使用。 讓我們進入比較環節。

4. 創建 PDF 文件

4.1. 使用 PyPDF

PyPDF 提供基本功能來創建新的 PDF 文件。 但是,它沒有內建方法可以直接將 HTML 內容轉換為 PDF。 要使用 PyPDF 創建新 PDF,我們需要向現有 PDF 添加內容,或者創建一個新的空白 PDF,然後向其中添加文本或圖像。 以下程式碼有助於完成此生成 PDF 文件的任務:

from pypdf import PdfWriter, PdfReader

# Create a new PDF file
pdf_output = PdfWriter()

# Add a new blank page
page = pdf_output.add_blank_page(width=610, height=842)  # Width and height are in points (1 inch = 72 points)

# Read content from an existing PDF
with open('input.pdf', 'rb') as existing_pdf:
    existing_pdf_reader = PdfReader(existing_pdf)
    # Merge content from the first page of the existing PDF
    page.merge_page(existing_pdf_reader.pages [0])

# Save the new PDF to a file
with open('output.pdf', 'wb') as output_file:
    pdf_output.write(output_file)
PYTHON

輸入檔案包含28頁,僅第一頁已添加到新的PDF檔案中。輸出如下:

IronPDF for Python 與 PyPDF 比較:圖6 - PDF輸出

4.2. 使用 IronPDF

IronPDF 提供先進功能,可以直接從 HTML 內容創建新的 PDF 文件。 這使得生成動態報告和文件變得方便,無需額外的步驟。 以下是樣本程式碼:

import ironpdf

ironpdf.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"

# Create a PDF from a HTML string using Python
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This PDF is created using IronPDF for Python</p>")

# Export to a file or Stream
pdf.SaveAs("output.pdf")

# Advanced Example with HTML Assets
# Load external html assets Images, CSS and JavaScript.
# An optional BasePath 'C\site\assets\' is set as the file location to load assets from
myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
PYTHON

在上述程式碼中,我們首先應用了授權金鑰以充分利用 IronPDF 的功能。 您也可以在不使用授權金鑰的情況下使用,但在生成的 PDF 文件中會出現浮水印。 接下來,我們創建兩個 PDF 文件,首先使用 HTML 字串作為內容,其次使用資源。 輸出如下:

IronPDF for Python 與 PyPDF 的比較:圖 7 - IronPDF 輸出

合併PDF檔案

5.1. 使用 PyPDF

PyPDF 可以通過將一個 PDF 的頁面附加到另一個 PDF 上,將多個頁面/文件合併成一個 PDF。 將列表中所有 PDF 文件的輸入路徑添加起來,然後使用 append 方法合併並生成一個單一的文件。

from pypdf import PdfWriter

merger = PdfWriter()

for pdf in ["file1.pdf", "file2.pdf", "file3.pdf"]:
    merger.append(pdf)

merger.write("merged-pdf.pdf")
merger.close()
PYTHON

5.2. 使用 IronPDF

IronPDF 還提供類似的將多個文件合併為一的功能,使您能輕鬆統合來自不同 PDF 來源的內容。

import ironpdf

ironpdf.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"

html_a = """<p> [PDF_A] </p>
            <p> [PDF_A] 1st Page </p>
            <div style='page-break-after: always;'></div>
            <p> [PDF_A] 2nd Page</p>"""

html_b = """<p> [PDF_B] </p>
            <p> [PDF_B] 1st Page </p>
            <div style='page-break-after: always;'></div>
            <p> [PDF_B] 2nd Page</p>"""

renderer = ironpdf.ChromePdfRenderer()

pdfdoc_a = renderer.RenderHtmlAsPdf(html_a)
pdfdoc_b = renderer.RenderHtmlAsPdf(html_b)
merged = PdfDocument.Merge(pdfdoc_a, pdfdoc_b)

merged.SaveAs("Merged.pdf")
PYTHON

6. 拆分 PDF 文件

6.1. 使用 PyPDF

PyPDF 是一個 Python 庫,能夠將單一 PDF 分割成多個獨立的 PDF,每個包含一個或多個 PDF 頁面。

from pypdf import PdfReader, PdfWriter

# Open the PDF file
pdf_file = open('input.pdf', 'rb')

# Create a PdfFileReader object
pdf_reader = PdfReader(pdf_file)

# Split each page into separate PDFs
for page_num in range(len(pdf_reader.pages)):
    pdf_writer = PdfWriter()
    pdf_writer.add_page(pdf_reader.pages [page_num])
    output_filename = f'page_{page_num + 1}_pypdf.pdf'
    with open(output_filename, 'wb') as output_file:
        pdf_writer.write(output_file)

# Close the PDF file
pdf_file.close()
PYTHON

以上程式碼將28頁的PDF文件拆分成單頁,並將其保存為28個新的PDF文件。

6.2. 使用 IronPDF

IronPDF 也提供類似的功能來拆分 PDF,允許使用者將單個 PDF 拆分成多個 PDF 文件,每個文件都包含單個 PDF 頁面。 它允許我們從多頁的 PDF 中分割特定頁面。 以下代碼有助於將文件拆分成多個檔案:

import ironpdf

ironpdf.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"

html = """<p> Hello Iron </p>
            <p> This is 1st Page </p>
            <div style='page-break-after: always;'></div>
            <p> This is 2nd Page</p>
            <div style='page-break-after: always;'></div>
            <p> This is 3rd Page</p>"""

renderer = ironpdf.ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(html)

# take the first page
page1doc = pdf.CopyPage(0)
page1doc.SaveAs("Split1.pdf")

# take the pages 2 & 3
page23doc = pdf.CopyPages(1, 2)
page23doc.SaveAs("Split2.pdf")
PYTHON

有關 IronPDF 中閱讀 PDF 文件、旋轉 PDF 頁面、裁剪頁面、設置擁有者/用戶密碼和其他安全選項的詳細信息,請訪問此IronPDF Python 代碼範例頁面

從PDF文件中提取文字

7.1. 使用 PyPDF

PyPDF 提供了一種從 PDF 中提取文本的簡單方法。 它提供了PdfReader類,允許用戶從 PDF 中讀取文本內容。

from pypdf import PdfReader

reader = PdfReader("input.pdf")
page = reader.pages [0]
print(page.extract_text())
PYTHON

7.2. 使用 IronPDF

IronPDF 也支持使用 PdfDocument 類從 PDF 中提取文本。 它提供了一個名為ExtractAllText的方法來從 PDF 中獲取文本內容。 然而,IronPDF 的免費版本僅從 PDF 文件中提取少量字符。 若要從 PDF 提取全文,IronPDF 需要授權。 以下是從 PDF 文件中提取內容的代碼範例:

import ironpdf

ironpdf.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"

# Load existing PDF document
pdf = ironpdf.PdfDocument.FromFile("input.pdf")
# Extract text from PDF document
all_text = pdf.ExtractAllText()
print(all_text)
PYTHON

要了解更多有關提取文本的資訊,請訪問此PDF 文本轉換為 Python的範例。

8. 授權

PyPDF

PyPDF 是在 MIT 許可證下分發的,這是一種以其寬鬆條款著稱的開源軟體許可證。 MIT 许可证允許使用者自由地使用、修改、分發和再授權 PyPDF 庫,沒有任何限制。 使用者不需要公開其使用 PyPDF 的應用程式的源代碼,這使其適合於個人和商業專案。

MIT 授權條款的完整文本通常包含在 PyPDF 原始碼中,使用者可以在該庫的發佈包中的「LICENSE」檔案中找到它。 此外,PyPDF 的 GitHub 儲存庫(https://github.com/py-pdf/pypdf)是訪問該庫最新版本及其相關許可資訊的主要來源。

IronPDF

IronPDF是一個商業庫,並不是開源的。 由 Iron Software LLC 開發和發行。 使用 IronPDF 需要從 Iron Software 獲取有效的授權。 有不同類型的許可證可供選擇,包括用於評估的試用版本和用於商業用途的付費許可證。

由於 IronPDF 是一款商業產品,相較於開源替代方案,它提供了額外的功能和技術支持。 若要獲得IronPDF的許可證,使用者可以造訪官方網站以探索可用的許可證選項、定價和支援詳細資訊。 其 Lite 套餐起價為 $749,且為永久授權。

IronPDF For Python 與 PyPDF 的比較:圖 8 - IronPDF License

9. 結論

摘要

PyPDF 是一個功能強大且易於使用的 Python 圖書館,用於處理 PDF 檔案。 其讀取、寫入、合併和分割 PDF 的功能使其成為 PDF 操作任務中的重要工具。 無論您需要從 PDF 中提取文字、從頭開始創建新的 PDF,還是合併和拆分現有文件,PyPDF 都提供了可靠且高效的解決方案。 透過利用PyPDF的功能,Python開發人員可以簡化與PDF相關的工作流程並提升他們的生產力。

IronPDF 是一個全面且高效的 PDF 操作庫,用於 Python,它提供了廣泛的功能來讀取、創建、合併和分割 PDF 文件。 無論您需要生成動態 PDF 報告、從現有 PDF 中提取文檔信息,還是合併多個文檔,IronPDF 都提供了一個可靠且易於使用的解決方案。 透過運用IronPDF的功能,Python開發人員可以精簡與PDF相關的工作流程並提高生產力。

總體而言,PyPDF 是一個輕量且易於使用的庫,適合基本的 PDF 操作。 這是對於具有簡單 PDF 需求的專案來說是一個不錯的選擇。 另一方面,IronPDF 提供了更廣泛的 API 和強大的性能,非常適合需要高級 PDF 處理能力、處理大型 PDF 文件及執行複雜任務的專案。

結論

這兩個庫都具備良好的編碼功能,適用於常見的 PDF 任務。 PyPDF 適用於簡單操作和快速實現,而 IronPDF 提供了一個更廣泛且多功能的 API 用於處理複雜的 PDF 相關任務。

就性能而言,IronPDF 可能比 PyPDF 表現更好,尤其是在處理大型 PDF 文件或需要進行複雜 PDF 操作的任務時。

在兩個函式庫之間的選擇取決於項目的具體需求以及涉及 PDF 相關任務的複雜性。

IronPDF 也提供免費試用,以便在商業模式中測試其完整功能。 從這裡下載IronPDF for Python。

查克尼思·賓
軟體工程師
Chaknith 致力於 IronXL 和 IronBarcode。他在 C# 和 .NET 方面擁有豐富的專業知識,協助改進軟體並支持客戶。他從用戶互動中獲得的洞察力有助於提高產品、文檔和整體體驗。
< 上一頁
Python HTML轉PDF不使用Wkhtmltopdf(替代方案教程)

準備開始了嗎? 版本: 2025.4 剛剛發布

查看許可證 >