產品比較

IronPDF for Python & PyPDF 的比較

發佈 2023年8月7日
分享:

簡介

PDFs (可攜式文件格式)PDF** 是一種廣泛使用的檔案格式,用於跨不同平台保留文件信息的佈局和格式。由於其在不論使用何種設備或操作系統打開時都能保持一致外觀的能力,它們在各行各業中非常受歡迎。PDF 文件通常用於共享報告、發票、表單、電子書、定制數據和其他重要文件。

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

在本文中,我們將對兩個知名的 Python 庫進行全面比較,這些庫專門用於操作 PDF 文件:PyPDFIronPDF。通過評估這兩個庫的特性和功能,我們旨在為開發人員提供寶貴的見解,幫助他們對於哪個庫最適合其特定的軟件應用需求做出明智的決定。

這些庫提供了強大的工具來簡化 PDF 的處理,使開發人員能夠高效地在其 Python 應用中處理 PDF 文件。所以,讓我們深入比較並探索每個庫的優勢,以便於您的 PDF 相關任務。

PyPDF - 純Python PDF程式庫

PyPDF 是一個純 Python PDF 庫,提供讀取、寫入、解密 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 檔案中的頁面。
  • 表單欄位填寫: 以程式方式填寫 PDF 中的表單欄位。

IronPDF - Python PDF Library

IronPDF 是基於IronPDF的 .NET 庫構建的全面的 Python PDF 操作庫。它提供了強大的API和高級功能,例如將HTML轉換為PDF、處理PDF註釋和表單字段,以及高效執行複雜的PDF操作。IronPDF 是需要強大 PDF 處理、性能和廣泛功能支持的項目理想選擇。

IronPDF 是一個具備無縫處理 PDF 任務能力的 Python 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 專案

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

在 PyCharm 中創建 Python 專案:

  1. 啟動 PyCharm 並在歡迎畫面上點擊 "Create New Project",或從選單中選擇 File > New Project

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

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

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

  4. 提供專案名稱和設置,然後點擊 Create

    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. 進入項目後,點擊頂部菜單中的 File 並選擇 Settings

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

  5. 在Python Interpreter窗口中,點擊 "+" 圖標以添加新的包。

    IronPDF For Python 與 PyPDF 的比較:圖 3 - Python 直譯器

  6. 在「Available Packages」視窗中,搜索「PyPDF」。

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

  7. 從列表中選擇 "PyPDF" 並點擊 "Install Package" 按鈕。

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

3. 安裝 IronPDF

先決條件

IronPDF Python 利用強大的 .NET 6.0 技術作為其基礎。因此,要有效利用 IronPDF Python,必須在您的系統上安裝 .NET 6.0 運行時。Linux 和 Mac 用戶可能需要從官方的微軟網站下載並安裝 .NET。 (https://dotnet.microsoft.com/zh-tw/download/dotnet/6.0) 在使用此 Python 套件之前,請先確保安裝 .NET 6.0 執行環境。確保 .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. 在設置窗口中,導航到 "Project:" 並點擊 "Python Interpreter"。
  5. 在 Python Interpreter 窗口中,點擊 "+" 圖標以添加新包。
  6. 在 "Available Packages" 窗口中,搜尋 "ironpdf"。

    IronPDF 與 PyPDF 的比較:圖 5 - IronPDF

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

  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 包含一個或多個 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 是一款商業產品,它相較於開源替代產品提供了更多的功能和技術支持。用戶可以訪問官方的 Iron Software 網站來獲取 IronPDF 授權。 (https://ironpdf.com/python/licensing/) 探索可用的授權選項、價格和支援詳情。它的 Lite 套餐從 $749 開始,並且是永久授權。

IronPDF For Python 與 PyPDF 之比較:圖 8 - IronPDF 授權

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 這裡.

< 上一頁
Python HTML轉PDF不使用Wkhtmltopdf(替代方案教程)

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

免費 pip 安裝 查看許可證 >