在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
PDF 在現代數位工作流程中發揮著至關重要的作用,作為文件存儲和共享的標準格式。 在 Python 中,開發人員經常會使用強大的函式庫,例如wkhtmltopdf和IronPDF生成和處理PDF。 這兩個程式庫提供不同的功能和能力,以滿足 PDF 生成領域的不同需求。 在此比較中,我們將探討每個程式庫的優勢及使用案例,以幫助開發人員做出明智的選擇。
wkhtmltopdf是一個命令列工具,利用WebKit渲染引擎將HTML或其他標記語言轉換為PDF。 Python 開發人員通常使用pdfkit作為圍繞 wkhtmltopdf 的簡單 Python 包裝器的函式庫,以便將其無縫整合到他們的項目中。 現在,python3-wkhtmltopdf該套件還提供了一個 wkhtmltopdf 命令行工具的 Python 包裝器,使得在 Python 腳本中使用 wkhtmltopdf 更加方便。原始wkhtmltopdf Python 套件不再維護。
wkhtmltopdf 卓越地將 HTML 內容轉換為 PDF,保留樣式、佈局和圖像。 其簡單明瞭的方法使其適合 HTML 到 PDF 轉換是主要需求的情境。
作為命令行工具,wkhtmltopdf 可以輕鬆編寫腳本,並能夠集成到各種工作流程中。 它特別適用於自動化批量 PDF 生成流程。
wkhtmltopdf 支援進階的 CSS 樣式並在轉換過程中執行 JavaScript,使生成的 PDF 具有豐富且動態的內容。
wkhtmltopdf 提供頁面大小、方向和其他版面配置設定方面的靈活性。 開發人員可以調整這些參數,以達到生成的 PDF 的理想外觀和感覺。
該工具獨立於外部庫和依賴性,簡化了部署。 但是,使用者需要確保他們的環境中有 wkhtmltopdf 二進制檔案可用。
IronPDF是一個多功能的 Python 函式庫,專為促進 PDF 生成、編輯和操作而設計。 它提供了一系列用於處理 PDF 文件的功能,例如從 HTML 生成 PDF、將 HTML 轉換為 PDF、向現有 PDF 添加文字和圖像,以及從 PDF 文件中提取內容。 它在 .NET Framework 中特別受歡迎,其 Python 版本旨在為 Python 開發人員帶來類似的功能。
確保您的系統上已安裝 Python。 您可以從Python的官方 Python 網站.
要建立一個 Python 專案,可以使用任何 IDE,在這裡我將使用 PyCharm,一個著名的 Python IDE。您可以簡單地使用任何 IDE 或甚至文本編輯器。
打開 PyCharm:在您的電腦上啟動 PyCharm。
建立新專案: 點擊歡迎畫面上的「建立新專案」或在 IDE 中選擇檔案 > 新專案。
設定專案位置: 指定專案目錄,並可選擇啟用「為專案建立目錄」。
選擇解釋器: 選擇現有的 Python 解釋器或創建一個新的虛擬環境。
配置專案: 設定專案類型、內容根目錄和來源根目錄(預設通常是沒問題的).
點擊「Create」: 點擊「Create」按鈕以建立專案。
訪問wkhtmltopdf下載頁面並下載適合你的作業系統的安裝程式。
請按照為您的特定操作系統提供的安裝說明進行操作。 如果您使用的是 Windows,請確保將其添加到 PATH 環境變數中,以便在命令行中的任何位置訪問它。
:InstallCmd brew install --cask wkhtmltopdf
:InstallCmd sudo apt-get install wkhtmltopdf
開啟新終端或命令提示字元,輸入 wkhtmltopdf 以確保該工具已正確安裝。 您應該會看到有關可用選項的信息。
一個與 wkhtmltopdf 互動的著名 Python 函式庫稱為pdfkit. 在您的生產專案中使用以下命令進行安裝:
pip install pdfkit
使用 pip 安裝 IronPDF: 在 PyCharm 中開啟終端或命令提示字元,然後執行以下命令以使用 pip 安裝 IronPDF:
pip install ironpdf
您也可以從 IronPDF 網站的下載區域下載適合您平台的 Python 套件。https://ironpdf.com/python/
在此比較中,首先我們將看看如何使用 wkhtmltopdf 庫和 IronPDF 庫從 HTML 建立 PDF 文件。 我們將看看如何從以下內容生成 PDF:
HTML 字串轉 PDF
HTML 檔案轉 PDF
URL轉PDF
此外,我們還將探索這兩個庫提供的一些可選參數和功能。
首先,我們將查看 IronPDF 如何無縫渲染HTML 字串, 文件,和網址使用其 ChromePdfRenderer
引擎將內容轉換為 PDF。
from ironpdf import *
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Create a PDF from an HTML string using Python
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
# Export to a file or Stream
pdf.SaveAs("output.pdf")
以下是將 HTML 字串轉換為 PDF 的輸出結果:
from ironpdf import *
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Create a PDF from an existing HTML file using Python
pdf = renderer.RenderHtmlFileAsPdf("example.html")
# Export to a file or Stream
pdf.SaveAs("output.pdf")
這是HTML文件轉換為PDF的輸出:
from ironpdf import *
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Create a PDF from a URL or local file path
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/python")
# Export to a file or Stream
pdf.SaveAs("url.pdf")
接下來,我們將使用 wkhtmltopdf 和 Pdfkit
套件來將 HTML 字串、檔案和 URL 轉換為 PDF。 首先,您需要設置 PATH 到 wkhtmltopdf 庫安裝位置或在代碼之前手動新增配置:
config = pdfkit.configuration(wkhtmltopdf='PATH-to-WKHTMLTOPDF-EXECUTABLE-FILE')
import pdfkit
config = pdfkit.configuration(wkhtmltopdf='PATH-to-WKHTMLTOPDF-EXECUTABLE-FILE')
pdfkit.from_string('<h1>Hello World!</h1>', 'out.pdf', configuration=config)
以下是將 HTML 字串轉換為 PDF:
import pdfkit
config = pdfkit.configuration(wkhtmltopdf='PATH-to-WKHTMLTOPDF-EXECUTABLE-FILE')
pdfkit.from_file('example.html', 'index.pdf', configuration=config)
這是轉換為 PDF 的 HTML 文件:
import pdfkit
config = pdfkit.configuration(wkhtmltopdf='PATH-to-WKHTMLTOPDF-EXECUTABLE-FILE')
pdfkit.from_url('https://google.com', 'example.pdf', configuration=config)
在對上述代碼及兩個庫所提供功能的整體比較中,以下是他們用於PDF生成的代碼和功能的詳細比較:
IronPDF 提供了簡潔且符合 Python 風格的 API,使得進行 HTML 轉換為 PDF 的操作非常簡便。 代碼乾淨且具表達性。
wkhtmltopdf 簡單易用,但相比 IronPDF,其語法可能較不符合 Pythonic 標準。 此外,它主要是一個命令行工具,並且依賴於另一個 Python 軟體包在 Python 環境中成功運行 wkhtmltopdf。
IronPDF 提供高度靈活性,具備廣泛的自訂選項,用於呈現、編輯和保護 PDF。 這是一個代碼範例,您可以創建可選參數,如HTML 渲染設定:
from ironpdf import *
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Many rendering options to use to customize!
renderer.RenderingOptions.SetCustomPaperSizeInInches(12.5, 20)
renderer.RenderingOptions.PrintHtmlBackgrounds = True
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape
renderer.RenderingOptions.Title = "My PDF Document Name"
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.WaitFor.RenderDelay(50) # in milliseconds
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen
renderer.RenderingOptions.FitToPaperMode = FitToPaperModes.Zoom
renderer.RenderingOptions.Zoom = 100
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
# Supports margin customization!
renderer.RenderingOptions.MarginTop = 40 # millimeters
renderer.RenderingOptions.MarginLeft = 20 # millimeters
renderer.RenderingOptions.MarginRight = 20 # millimeters
renderer.RenderingOptions.MarginBottom = 40 # millimeters
# Can set FirstPageNumber if you have a cover page
renderer.RenderingOptions.FirstPageNumber = 1 # use 2 if a cover page will be appended
# Settings have been set, we can render:
renderer.RenderUrlAsPdf("https://www.wikipedia.org/").SaveAs("my-content.pdf")
wkhtmltopdf 在基本的轉換任務中具有彈性,但對於更高級的 PDF 操作可能需要額外的工具。 在此,PDFKit 提供了實現此目的的渲染選項:
import pdfkit
options = {
'page-size': 'Letter',
'orientation': 'Landscape',
'margin-top': '0.75in',
'margin-right': '0.75in',
'margin-bottom': '0.75in',
'margin-left': '0.75in',
'encoding': "UTF-8",
'custom-header': [
('Accept-Encoding', 'gzip')
],
'no-outline': None
}
pdfkit.from_file('index.html', 'index.pdf', options=options)
IronPDF 提供進階功能,如 PDF/A 合規、編輯、合併和安全設定。 以下是列表密碼、安全性和元數據IronPDF 提供的選項和功能:
from ironpdf import *
# Open an Encrypted File, alternatively create a new PDF from Html
pdf = PdfDocument.FromFile("encrypted.pdf", "password")
# Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto"
pdf.MetaData.Keywords = "SEO, Friendly"
pdf.MetaData.ModifiedDate = Now()
# The following code makes a PDF read-only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption()
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key")
pdf.SecuritySettings.AllowUserAnnotations = False
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserFormData = False
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights
# Change or set the document encryption password
pdf.SecuritySettings.OwnerPassword = "top-secret" # password to edit the pdf
pdf.SecuritySettings.UserPassword = "sharable" # password to open the pdf
pdf.SaveAs("secured.pdf")
wkhtmltopdf 更專注於 HTML 到 PDF 的轉換,並缺少 IronPDF 提供的一些高級功能。
IronPDF 可無縫整合至 Python 環境,使部署變得簡單。
wkhtmltopdf 需要 wkhtmltopdf 二進制文件可用,這在部署期間可能需要額外考慮。
IronPDF 以其全面且使用者友好的特點而脫穎而出。文檔,迎合了初學者和經驗豐富的開發人員的需求。 該文件包含詳細指南、API 參考和大量的程式碼範例,有助於更順利地理解和實現該庫在多種語言中的特性,如Python、Java、C#和Node.js。
IronPDF 提供多樣的支援選項,以確保開發人員能夠及時獲得協助。 這些包括可透過電子郵件取得的專屬支援團隊、開發者論壇中的積極參與,以及網站上的即時支援選項以獲得即時協助。
wkhtmltopdf 作為一個開源專案,其官方 GitHub 資源庫和其他在線平台上提供了文件。 雖然它涵蓋了基本的使用和安裝,但這份文檔可能不如一些商業替代方案那樣深入或對初學者更友好。
對 wkhtmltopdf 的支持主要由社群驅動。 用戶可以透過 GitHub 問題回報問題並尋求協助,依靠社群討論和論壇來解決問題。 社群積極參與討論,分享經驗與解決方案。
wkhtmltopdf 遵循開源授權模型。 它是根據 GNU Affero 通用公共許可證分發的(AGPL),免費和開源軟體授權。 AGPL 是一種共享版權許可證,要求任何修改版的軟體也必須在 AGPL 下發佈。 以下是有關 wkhtmltopdf 授權的關鍵要點:
wkhtmltopdf 是免費提供的開源軟體,允許用戶查看、修改和分發其源代碼。
根據 GNU AGPL 發佈,該授權要求對代碼所做的任何更改都必須以相同的許可證釋放。
用戶可以自由下載、使用和修改該軟體而不需支付任何授權費用。
AGPL 的版權左條款確保任何衍生作品也必須是開源的。
IronPDF 採用商業授權模式。 IronPDF 的授權是基於不同版本,每個版本都滿足特定需求和使用場景。 可用的版本有:
非常適合大規模企業使用,提供豐富功能且無使用限制。
IronPDF 授權是永久的,這表示它們不會過期,開發者將根據選擇的版本獲得更新和支持。 授權模式為開發者提供彈性,讓他們選擇符合專案需求的版本。 如需有關許可和附加元件的更多資訊,請造訪授權頁面.
總而言之,經過對 wkhtmltopdf 和 IronPDF for Python 的詳細比較,可以明顯看出,IronPDF 是具有高級 PDF 需求的項目的更佳選擇。 雖然 wkhtmltopdf 非常適合用於簡單的 HTML-to-PDF 轉換任務,利用其簡單性和命令行界面,但在面對更複雜的 PDF 操作時可能會有所不足,通常需要額外的工具。
相反,IronPDF 尤其適合需要更高複雜度的專案,成為一個突出的選擇。 它在提供用戶友好的 API 方面表現出色,並具備廣泛的自訂選項。 這使得IronPDF成為需要全面的PDF操作、編輯和強大安全功能的任務的理想解決方案。 其靈活性不僅限於佈局設置,還允許開發人員將其無縫整合到各種 Python 環境中。
IronPDF 的文件在深度和可及性上表现出色,为開發者提供了一個全面的資源。 相比之下,wkhtmltopdf 依賴社群支持,可能適合習慣於使用社群論壇並自行解決問題的開發者。
IronPDF 在開發過程中是免費的,但在生成的 PDF 上會有水印,並提供一個免費試用在商業模式下測試其完整功能而不顯示浮水印。 從下載軟體這裡.