产品比较

Wkhtmltopdf Python 与 IronPDF for Python 的比较

发布 2024年一月4日
分享:

1.导言

PDF 在现代数字工作流程中扮演着至关重要的角色,是文档存储和共享的标准格式。在 Python 中,开发人员经常使用功能强大的库,如 wkhtmltopdf 和 IronPDF 来生成和处理 PDF。这两个库都提供了不同的特性和功能,可满足 PDF 生成领域的不同需求。在本比较中,我们将探讨每个库的优势和用例,以帮助开发人员做出明智的选择。

2.什么是 wkhtmltopdf?

2.1 概述

wkhtmltopdf 是一个命令行工具,它利用 WebKit 渲染引擎将 HTML 或其他标记语言转换成 PDF。Python 开发人员通常使用 pdf包 库作为 wkhtmltopdf 的简单 Python 封装器,将其无缝集成到他们的项目中。现在 python3-wkhtmltopdf 软件包还为 wkhtmltopdf 命令行工具提供了 Python 封装,使在 Python 脚本中使用 wkhtmltopdf 更加方便。原来的 wkhtmltopdf 不再维护 Python 软件包。

2.2 主要功能

2.2.1 HTML 至 PDF 转换

wkhtmltopdf 擅长将 HTML 内容转换为 PDF,同时保留样式、布局和图像。其简单直接的方法使其适用于以 HTML 转 PDF 为主要需求的场景。

2.2.2 命令行界面

作为一款命令行工具,wkhtmltopdf 很容易编写脚本并集成到各种工作流程中。它对于自动批量生成 PDF 尤其有用。

2.2.3 CSS 样式和 JavaScript 支持

wkhtmltopdf 支持高级 CSS 样式并可在转换过程中执行 JavaScript,从而使生成的 PDF 文件具有丰富的动态内容。

2.2.4 灵活性和定制化

wkhtmltopdf 在页面大小、方向和其他布局设置方面提供了灵活性。开发人员可以调整这些参数,以在生成的 PDF 中实现所需的外观和感觉。

2.2.5 部署和依赖性

该工具独立于外部库和依赖项,从而简化了部署。不过,用户需要确保 wkhtmltopdf 二进制文件在其环境中可用。

3.用于 Python 的 IronPDF

3.1 概述

IronPDF 是一个通用的 Python 库,旨在促进 PDF 的生成、编辑和操作。它为处理 PDF 文件提供了一系列功能,如从 HTML 生成 PDF、将 HTML 转换为 PDF、向现有 PDF 添加文本和图像以及从 PDF 文档中提取内容。它在 .NET Framework 中特别流行,其 Python 版本旨在为 Python 开发人员带来类似的功能。

3.2 主要功能

  • HTML 到 PDF 的转换:IronPDF 擅长将 HTML 转换为 PDF,提供 CSS 样式、JavaScript 执行以及自定义页眉和页脚等功能。它提供多种转换 HTML 内容的方式,包括 HTML 字符串、HTML 文件和 URL。
  • 编辑和操作: IronPDF 的显著特点之一是它能够编辑现有的 PDF 文件。开发人员可以在 PDF 文档中添加文本、图像、注释等内容,使其成为一个全面的 PDF 操作解决方案。
  • 安全功能:IronPDF 包括强大的安全功能,如密码保护、加密和 PDF 文档权限设置。这些功能对于安全处理敏感信息至关重要。
  • 可定制的渲染: 使用 IronPDF 的开发人员可对渲染过程进行细粒度控制。可以配置自定义页眉、页脚、页边距以及用于转换的特定 HTML 部分,以实现精确的 PDF 输出。

  • 部署和依赖性:IronPDF 可与各种 Python 环境无缝集成,包括 ASP.NET、MVC、Windows Forms 和 WPF。它同时支持.NET Core和Framework,因此适用于不同的项目类型。此外,它还能与 Azure 等云服务协同工作。

4.创建 Python 项目

4.1 设置 Python

确保系统已安装 Python。您可以从 Python 官方网站.

4.2 在 PyCharm 中创建项目

要创建 Python 项目,可以使用任何 IDE,这里我将使用著名的 Python IDE PyCharm。您也可以使用任何集成开发环境,甚至是文本编辑器。

  1. 打开 PyCharm: 在计算机上启动 PyCharm。

  2. 创建新项目: 点击欢迎界面上的 "Create New Project(创建新项目)"或在集成开发环境中的 "File(文件)">"New Project(新建项目)"。

  3. 设置项目位置: 指定项目目录,并可选择启用 "为项目创建目录"。

  4. 选择解释器: 选择现有的 Python 解释器或创建新的虚拟环境。

  5. 配置项目: 设置项目类型、内容根目录和源代码根目录 (默认值通常没问题).

  6. 点击 "创建": 点击 "创建 "按钮创建项目。

Wkhtmltopdf Python 与 IronPDF for Python 的比较:图 1 - 创建一个新的 Python 项目

5.安装 wkhtmltopdf 实用程序

下载并安装 wkhtmltopdf

访问 wkhtmltopdf 下载页面,并为您的操作系统下载相应的安装程序。

Wkhtmltopdf Python 与 IronPDF for Python 的比较:图 2 - wkhtmltopdf 网页

安装 wkhtmltopdf

按照特定操作系统提供的安装说明进行安装。如果您使用的是 Windows 系统,请确保将其添加到 PATH 环境变量中,以便在命令行的任何位置访问它。

  • 在 MacOS 上: 使用以下命令安装 wkhtmltopdf 家庭酿酒:
  :InstallCmd brew install --cask wkhtmltopdf
  • 在 Debian/Ubuntu 上: 使用以下命令安装 wkhtmltopdf APT:
  :InstallCmd sudo apt-get install wkhtmltopdf

验证安装

打开一个新的终端或命令提示符,输入 wkhtmltopdf 以确保工具安装正确。你会看到有关可用选项的信息。

通过 pip 安装 wkhtmltopdf python 软件包

与 wkhtmltopdf 交互的一个流行 Python 库名为 pdf包.使用以下命令将其安装到生产项目中:

pip install pdfkit

Wkhtmltopdf Python 与 IronPDF for Python 的比较:图 3 - 使用 pip 安装 pdfkit

6.安装 IronPDF

通过 pip 安装 IronPDF: 在 PyCharm 中打开终端或命令提示符,运行以下命令使用 pip 安装 IronPDF:

 pip install ironpdf

Wkhtmltopdf Python 与 IronPDF for Python 的比较:图 4 - 使用 pip 安装 IronPDF

您还可以从 IronPDF 网站的下载区下载适用于您平台的 Python 软件包,网址是 https://ironpdf.com/python/

7.比较

在本次比较中,我们将首先了解如何使用 wkhtmltopdf 库和 IronPDF 库从 HTML 创建 PDF 文档。我们将看到如何从以下内容生成 PDF:

1.将 HTML 字符串转换为 PDF

2.HTML 文件转 PDF

3.URL 转 PDF

此外,我们还将探讨这两个库提供的一些可选参数和功能。

7.1 使用 IronPDF 创建 PDF 文件

首先,我们来看看 IronPDF 如何无缝渲染 HTML 字符串, 文件网址 利用其 "ChromePdfRenderer "引擎将 PDF 转换为 PDF。

7.1.1 将 HTML 字符串转换为 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")
PYTHON

下面是 HTML 字符串转换为 PDF 的输出结果:

Wkhtmltopdf Python 与 IronPDF for Python 的比较:图 5 - IronPDF:将 HTML 字符串转换为 PDF 输出

7.1.2 将 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")
PYTHON

下面是 HTML 文件转换为 PDF 的输出结果:

Wkhtmltopdf Python 与 IronPDF for Python 的比较:图 6 - IronPDF:将 HTML 文件转换为 PDF 输出

7.1.3 将 HTML URL 转换为 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")
PYTHON

Wkhtmltopdf Python 与 IronPDF for Python 的比较:图 7 - IronPDF:将 HTML URL 转换为 PDF 输出

7.2 wkhtmltopdf

现在,我们将使用 wkhtmltopdf 和 Pdfkit 软件包将 HTML 字符串、文件和 URL 转换为 PDF。首先,你需要将 PATH 设为 wkhtmltopdf 库的安装路径,或者在代码前手动添加配置:

config = pdfkit.configuration(wkhtmltopdf='PATH-to-WKHTMLTOPDF-EXECUTABLE-FILE')
PYTHON

7.2.1 将 HTML 字符串转换为 PDF

import pdfkit
config = pdfkit.configuration(wkhtmltopdf='PATH-to-WKHTMLTOPDF-EXECUTABLE-FILE')
pdfkit.from_string('<h1>Hello World!</h1>', 'out.pdf', configuration=config)
PYTHON

下面是转换为 PDF 格式的 HTML 字符串:

Wkhtmltopdf Python 与 IronPDF For Python 的比较:图 8 - wkhtmltopdf:将 HTML 字符串转换为 PDF 输出

7.2.2 将 HTML 文件转换为 PDF

import pdfkit
config = pdfkit.configuration(wkhtmltopdf='PATH-to-WKHTMLTOPDF-EXECUTABLE-FILE')
pdfkit.from_file('example.html', 'index.pdf', configuration=config)
PYTHON

下面是转换为 PDF 格式的 HTML 文件:

Wkhtmltopdf Python 与 IronPDF for Python 的比较:图 9 - wkhtmltopdf:将 HTML 文件转换为 PDF 输出

7.2.3 将 HTML URL 转换为 PDF

import pdfkit
config = pdfkit.configuration(wkhtmltopdf='PATH-to-WKHTMLTOPDF-EXECUTABLE-FILE')
pdfkit.from_url('https://google.com', 'example.pdf', configuration=config)
PYTHON

Wkhtmltopdf Python 与 IronPDF for Python 的比较:图 10 - wkhtmltopdf:将 HTML URL 转换为 PDF 输出

7.3 比较

在对上述代码和两个库提供的功能进行总体比较后,下面对它们生成 PDF 的代码和功能进行详细比较:

1.易用性

IronPDF 提供了简洁的 Pythonic 应用程序接口,可直接用于 HTML 到 PDF 的转换。代码简洁而富有表现力。

wkhtmltopdf 简单易用,但与 IronPDF 相比,其语法可能不够 Python 化。此外,它主要是一个命令行工具,要在 Python 环境中成功运行 wkhtmltopdf,还需要依赖另一个 Python 软件包。

2.灵活性

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")
PYTHON

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)
PYTHON

3.特点

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")
PYTHON

wkhtmltopdf 更侧重于 HTML 到 PDF 的转换,缺少 IronPDF 提供的一些高级功能。

4.一体化

IronPDF 与 Python 环境无缝集成,易于部署。

wkhtmltopdf 需要 wkhtmltopdf 二进制文件,在部署过程中可能需要额外的考虑。

5.语法

  • IronPDF 的语法简洁明了,与 Python 代码集成良好。
  • wkhtmltopdf 的语法简单明了,但与 IronPDF 相比,与 Python 的集成度可能会较低。

8.支持和文档

8.1 IronPDF

文件质量和可用性

IronPDF 以其全面和用户友好而著称 文献资料它既能满足新手的需求,也能满足经验丰富的开发人员的需求。该文档包括详细的指南、应用程序接口参考和丰富的 代码示例这有助于在 Python、Java、C# 和 Node.js 等多种语言中更顺畅地理解和实施该库的功能。

支持选项

IronPDF 提供多种支持选项,确保开发人员及时获得帮助。其中包括可通过电子邮件访问的专门支持团队、积极参与开发人员论坛,以及在网站上提供实时帮助的即时支持选项。

8.2 wkhtmltopdf

文件质量和可用性

作为一个开源项目,wkhtmltopdf 在其官方 GitHub 存储库和其他在线平台上提供了文档。虽然它涵盖了基本的使用和安装,但文档的深度或初学者友好性可能无法与某些商业替代品相提并论。

GitHub 问题和社区支持

wkhtmltopdf 的支持主要由社区驱动。用户可以通过 GitHub 问题报告和寻求帮助,依靠社区讨论和论坛解决问题。社区会积极参与讨论,分享经验和解决方案。

9.许可模式

9.1 wkhtmltopdf

wkhtmltopdf 采用开源许可模式。它根据 GNU Affero 通用公共许可证发布 (AGPL)AGPL 是一种自由和开源软件许可证。AGPL 是一种 Copyleft 许可,要求软件的任何修改版本也在 AGPL 下发布。以下是 wkhtmltopdf 许可证的要点:

开放源代码

wkhtmltopdf 是免费提供的开源软件,允许用户查看、修改和发布源代码。

AGPL 许可

根据 GNU AGPL 发布,要求对代码所做的任何更改都必须根据相同的许可证发布。

免费使用

用户可自由下载、使用和修改软件,无需支付任何许可费用。

版权条款

AGPL 的 Copyleft 条款确保任何衍生作品也必须是开源的。

9.2 IronPDF

IronPDF 采用商业许可模式。IronPDF 的许可基于不同的版本,每个版本都能满足特定的需求和使用场景。可用的版本有

简装版

  • 售价为 $749,用于云部署的一次性费用。
  • 专为有基本 PDF 处理需求的小型项目或团队而设计。

专业版

  • 云使用的一次性费用为 $2,999。
  • 适用于需要更高级 PDF 功能和能力的专业开发人员。

无限版

  • 售价为 $2,999,作为云部署的一次性费用。
  • 非常适合大型企业使用,可提供广泛的功能,且没有使用限制。

Wkhtmltopdf Python 与 IronPDF For Python 的比较:图 11 - IronPDF 许可网页

IronPDF 许可证是永久性的,即不会过期,开发人员可根据所选版本获得更新和支持。许可证模式为开发人员提供了灵活性,使他们可以根据自己的项目要求选择版本。有关许可证和附加组件的更多信息,请访问 许可证页面.

10.结论

总之,经过对 wkhtmltopdf 和 IronPDF for Python 的全面比较,IronPDF 显然是具有高级 PDF 要求的项目的最佳选择。虽然 wkhtmltopdf 凭借其简洁性和命令行界面,非常适合直接完成 HTML 到 PDF 的转换任务,但在面对更复杂的 PDF 操作时,它可能就显得力不从心了,往往需要使用其他工具。

相反,事实证明 IronPDF 是一个出色的选择,尤其是对于需要更高精度的项目。它擅长提供用户友好的 API,并配备了广泛的自定义选项。这使得 IronPDF 成为需要全面 PDF 操作、编辑和强大安全功能的任务的理想解决方案。它的灵活性不仅限于布局设置,还允许开发人员将其无缝集成到各种 Python 环境中。

IronPDF 的文档在深度和可访问性方面都非常出色,为开发人员提供了全面的资源。相比之下,依赖社区支持的 wkhtmltopdf 可能更适合喜欢社区论坛和自主解决问题的开发人员。

IronPDF 可免费用于开发,但在生成的 PDF 上有水印,并提供一个 免费试用 在商业模式下测试其无水印的完整功能。下载软件 这里.

< 前一页
IronPDF for Python 与 PDFium Python 之间的比较
下一步 >
Python HTML 转 PDF 无需 Wkhtmltopdf(替代方案教程)

准备开始了吗? 版本: 2024.9 刚刚发布

免费 pip 安装 查看许可证 >