在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
PDF 在现代数字工作流程中发挥着至关重要的作用,是文档存储和共享的标准格式。 在 Python 中,开发人员经常使用功能强大的库,如wkhtmltopdf和 IronPDF 来生成和处理 PDF。 这两个库都具有不同的特点和功能,可满足 PDF 生成领域的不同需求。 在本比较中,我们将探讨每个库的优势和用例,帮助开发人员做出明智的选择。
wkhtmltopdf是一种命令行工具,利用 WebKit 渲染引擎将 HTML 或其他标记语言转换为 PDF。 Python 开发人员通常使用pdf包译者将 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 集成开发环境 PyCharm。您也可以使用任何集成开发环境,甚至是文本编辑器。
打开 PyCharm: 在计算机上启动 PyCharm。
创建新项目: 点击欢迎页面上的 "创建新项目 "或在集成开发环境中的文件 > 新项目。
设置项目位置: 指定项目目录,并可选择启用 "为项目创建目录"。
选择解释器: 选择一个现有的 Python 解释器或创建一个新的虚拟环境。
配置项目: 设置项目类型、内容根目录和源代码根目录(默认值通常没问题).
点击 "创建": 点击 "创建 "按钮创建项目。
访问wkhtmltopdf请访问下载页面并下载适用于您操作系统的安装程序。
请按照针对您的特定操作系统提供的安装说明进行操作。 如果您使用的是 Windows 系统,请确保将其添加到 PATH 环境变量中,以便在命令行的任何位置访问它。
:InstallCmd brew install --cask wkhtmltopdf
:InstallCmd sudo apt-get install wkhtmltopdf
打开一个新的终端或命令提示符,键入 wkhtmltopdf 以确保该工具已正确安装。 您应该看到有关可用选项的信息。
与 wkhtmltopdf 交互的一个流行 Python 库名为pdf包. 使用以下命令将其安装到您的生产项目中:
pip install pdfkit
通过 pip 安装 IronPDF: 在 PyCharm 中打开终端或命令提示符,运行以下命令使用 pip 安装 IronPDF:
pip install ironpdf
您也可以从 IronPDF 网站的下载区下载针对您的平台的 Python 软件包,网址是https://ironpdf.com/python/
在本次比较中,首先,我们将看看如何使用 wkhtmltopdf lib 和 IronPDF lib 从 HTML 创建 PDF 文档。 我们将了解如何根据以下内容生成 PDF:
HTML字符串转PDF
HTML 文件转 PDF
URL 到 PDF
此外,我们还将探讨这两个库提供的一些可选参数和功能。
首先,我们将了解 IronPDF 如何无缝渲染HTML 字符串, 文件和网址利用其 "ChromePdfRenderer "引擎将 PDF 转换为 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)
以下是转换为 PDF 格式的 HTML 字符串:
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 提供了简洁明了的 Pythonic API,可直接用于 HTML 到 PDF 的转换。 代码要简洁、富有表现力。
wkhtmltopdf 简单易用,但与 IronPDF 相比,语法可能不那么 Python。 此外,它主要是一个命令行工具,要在 Python 环境中成功运行 wkhtmltopdf,还需要依赖另一个 Python 软件包。
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 for Python 与 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 到 PDF 的转换任务,因为它简单易用,而且具有命令行界面,但在面对更复杂的 PDF 操作时,它可能会显得力不从心,往往需要使用其他工具。
相反,事实证明 IronPdf 是一个突出的选择,尤其是对于要求更高水平的项目。 它擅长提供用户友好的 API,并配备了广泛的自定义选项。 这使得 IronPDF 成为要求全面 PDF 操作、编辑和强大安全功能的任务的理想解决方案。 其灵活性不仅仅局限于布局设置,还允许开发人员将其无缝集成到各种 Python 环境中。
IronPdf 的文档在深度和易读性方面都非常出色,为开发人员提供了全面的资源。 相比之下,依靠社区支持的 wkhtmltopdf 可能更适合熟悉社区论坛和自主解决问题的开发人员。
IronPDF 可免费用于开发,但在生成的 PDF 上会有水印,并提供一个免费试用在商业模式下测试其无水印的完整功能。 从以下网址下载软件这里.