產品比較

IronPDF for Python & PyPDF 的比較

發佈 2023年8月7日
分享:

介紹

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

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

在本文中,我們將對兩個著名的設計用於操作 PDF 文件的 Python 函式庫進行全面比較: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 檔案中的頁面。
  • 表單欄位填寫: 程式化填充 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頁面,為文件提供品牌和背景。

*Barcode 產生器IronPDF 可以使用 HTML 直接在 PDF 文件中生成各種條形碼和 QR 碼。

  • 高效能:基於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,然後在 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. 進入專案後,點擊頂部選單中的 File,然後選擇 Settings

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

  5. 在 Python 解釋器視窗中,點擊 "+" 圖標以新增一個新套件。

    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 官方網站下載並安裝 .NET。(https://dotnet.microsoft.com/zh-tw/download/dotnet/6.0)在使用此 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. 在設定視窗中,導航到 "Project:" 並點擊 "Python Interpreter"。

  5. 在 Python 解釋器視窗中,點擊 "+" 圖標以新增一個新套件。

  6. 從「可用軟體包」視窗中,搜尋「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 頁面。

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的許可證,使用者可以造訪Iron Software的官方網站。(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.11.1 剛剛發布

免費 pip 安裝 查看許可證 >