产品比较

IronPDF For Python 与 PyPDF 的比较

发布 2023年八月7日
分享:

简介

PDF (便携式文档格式) 是一种广泛使用的文件格式,用于在不同平台上保留文档信息的布局和格式。无论使用何种设备或操作系统打开,PDF 文件都能保持一致的外观,因此在各行各业大受欢迎。PDF 通常用于共享报告、发票、表格、电子书、自定义数据和其他重要文件。

在 Python 中处理 PDF 文件已成为许多项目的一个重要方面。Python 提供了多个库来简化对 PDF 文件的操作,使提取信息、创建新文档、合并或拆分现有文档以及执行其他 PDF 相关任务变得更加容易。

在本文中,我们将对两个著名的用于处理 PDF 文件的 Python 库进行全面比较: 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 库

IronPDF 是一个适用于 Python 的综合性 PDF 操作库,建立在 IronPDF 的 .NET 库之上。它提供了一个功能强大的 API,具有将 HTML 转换为 PDF、处理 PDF 注释和表单字段以及高效执行复杂 PDF 操作等高级功能。对于需要强大的 PDF 处理能力、性能和广泛的功能支持的项目,IronPDF 深受青睐。

IronPDF 是一个 Python PDF 库,能够无缝处理 PDF 处理任务。它为 Python 开发人员提供了可靠且功能丰富的 PDF 处理解决方案。使用 IronPDF,您可以毫不费力地生成、修改和提取 PDF 中多个页面的内容,因此它是各种 PDF 相关应用程序的绝佳选择。

功能

以下是 IronPDF 的一些突出功能:

  • PDF 生成: IronPDF 允许开发人员从头开始创建 PDF 文档,或将 HTML 内容转换为 PDF 格式,从而轻松生成动态的、具有视觉吸引力的报告和文档。
  • 高级文本 *和* [图像处理](/python/examples/image-to-pdf/):** 开发人员可以轻松处理 PDF 文件中的文本和图像。IronPDF 提供添加、编辑和格式化文本的功能,以及插入、调整大小和精确定位图像的功能。
  • PDF 合并 *和* [PDF 分割](/python/examples/split-pdf/):** IronPDF 可将多个 PDF 文件合并为一个文档,也可将一个 PDF 文件分割为多个单独的文件,从而灵活地管理 PDF 内容。
  • PDF 表格支持: 使用 IronPDF,开发人员可以处理 PDF 表单,允许他们填充表单字段、提取表单数据并创建交互式 PDF。
  • PDF 安全 *和* [加密](/python/examples/encryption-and-decryption/):** IronPDF 提供为 PDF 文档添加密码保护和加密的功能,确保数据的安全性和保密性。
  • PDF 注释 开发人员可以添加注释,如注释、高亮显示和书签,以增强 PDF 中的协作和可读性。
  • 页眉和页脚: IronPDF 允许在 PDF 页面上添加页眉和页脚,为文档提供品牌和上下文。
  • 条形码生成: IronPDF 可使用 HTML 直接在 PDF 文档中生成各种类型的条形码和二维码。

  • 高性能: 基于 IronPDF 的 .NET 库,IronPDF 在处理大型 PDF 文件和复杂操作时具有高性能和高效率。

文章内容如下

1.创建 Python 项目

2.安装 PyPDF

3.IronPDF 安装

4.创建 PDF 文档

5.合并 PDF 文件

6.分割 PDF 文件

7.从 PDF 文件中提取文本

8.授权许可

9.结论

1.创建 Python 项目

使用集成开发环境 (IDE) 可以大大提高 Python 项目的工作效率。在众多流行的选择中,我打算使用 PyCharm,因为它的智能代码自动补全、强大的调试功能以及与版本控制系统的无缝集成都非常出色。如果您还没有安装,可以从 JetBrains 网站下载 (https://www.jetbrains.com/pycharm/)或者使用任何 Python 程序的集成开发环境/文本编辑器,如 VS Code。

在 PyCharm 中创建 Python 项目:

1.启动 PyCharm 并点击 PyCharm 欢迎界面上的 "创建新项目",或从菜单中进入 File > New Project

![IronPDF for Python 与 PyPDF 的比较:图 1 - PyCharm](/static-assets/pdf/blog/pypdf-html-to-pdf-alternatives/pypdf-html-to-pdf-alternatives-1.webp)

2.选择 Python 解释器。如果尚未设置解释器,请单击齿轮图标并配置一个新的解释器。

3.选择项目位置和模板。

4.提供项目名称和设置,然后点击 创建

![IronPDF For Python 与 PyPDF 的比较:图 2 - 新项目](/static-assets/pdf/blog/pypdf-html-to-pdf-alternatives/pypdf-html-to-pdf-alternatives-2.webp)

5.开始编码、运行和调试你的 Python 项目。

2.安装 PyPDF

PyPDF 是一个纯 Python 库,可以通过多种方式安装。我们可以使用命令提示符和 PyCharm 安装。

2.1.使用命令提示符

1.在电脑上打开命令提示符或终端。

2.使用以下 pip 命令安装 PyPDF:

    :ProductInstall

3.等待 PyPDF 安装完成。您应该会看到一条成功消息,表明 PyPDF 已安装完成。

您可以使用相同的过程在 PyCharm 终端中安装 PyPDF。

注意: Python 必须添加到系统 PATH 环境变量中。

2.2.使用 PyCharm

1.打开 PyCharm IDE。

2.创建一个新的 Python 项目或打开一个现有项目。

3.进入项目后,点击顶部菜单中的文件,然后选择设置

4.在设置窗口中,导航到 "项目:",然后点击 "Python 解释器"。

5.在 Python 解释器窗口中,点击 "+"图标添加新软件包。

![IronPDF for Python 与 PyPDF 的比较:图 3 - Python 解释器](/static-assets/pdf/blog/pypdf-html-to-pdf-alternatives/pypdf-html-to-pdf-alternatives-3.webp)

6.在 "可用软件包"窗口中,搜索 "PyPDF"。

![IronPDF for Python 与 PyPDF 的比较:图 4 - PyPDF](/static-assets/pdf/blog/pypdf-html-to-pdf-alternatives/pypdf-html-to-pdf-alternatives-4.webp)

7.从列表中选择 "PyPDF",然后点击 "安装包"按钮。

8.等待 PyCharm 下载并安装 PyPDF。

3.IronPDF 安装

前提条件

IronPDF Python 以强大的 .NET 6.0 技术为基础。因此,要有效使用 IronPDF Python,必须在系统中安装 .NET 6.0 运行时。Linux 和 Mac 用户可能需要从 Microsoft 官方网站下载并安装 .NET (https://dotnet.microsoft.com/en-us/download/dotnet/6.0) 然后再使用该 Python 软件包。在使用 IronPDF Python 执行 PDF 处理任务时,确保 .NET 6.0 运行时的存在将实现无缝集成和最佳性能。

3.1.使用命令提示符

1.在电脑上打开命令提示符或终端。

2.使用以下 pip 命令安装 IronPDF:

    :PackageInstall
  1. 等待安装完成。您应该会看到一条成功消息,表明 IronPDF 已安装完成。

3.2.使用 PyCharm

1.在计算机上打开 PyCharm IDE。

2.创建一个新的 Python 项目或打开一个现有项目。

3.进入项目后,点击顶部菜单中的 "文件",然后选择 "设置"。

4.在设置窗口中,导航到 "项目:" 并点击 "Python 解释器"。

5.在 Python 解释器窗口中,点击 "+"图标添加新软件包。

6.在 "可用软件包"窗口中,搜索 "ironpdf"。

![IronPDF For Python 与 PyPDF 的比较:图 5 - IronPDF](/static-assets/pdf/blog/pypdf-html-to-pdf-alternatives/pypdf-html-to-pdf-alternatives-5.webp)

7.从列表中选择 "ironpdf",然后点击 "安装软件包"按钮。

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 输出

5.合并 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 代码示例页面.

7.从 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 许可是一种开放源码软件许可,以其许可条款著称。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/) 以了解可用的许可选项、定价和支持详情。其精简版软件包起价为 $749,是永久许可证。

IronPDF For Python 与 PyPDF 的比较:图 8 - IronPDF 许可证

9.结论

摘要

PyPDF是一个功能强大、用户友好的Python库,用于处理PDF文件。其读取、写入、合并和拆分 PDF 的功能使其成为处理 PDF 任务的基本工具。无论您是需要从 PDF 中提取文本、从头开始创建新的 PDF,还是合并和拆分现有文档,PyPDF 都能为您提供可靠、高效的解决方案。利用 PyPDF 的功能,Python 开发人员可以简化与 PDF 相关的工作流程,提高工作效率。

IronPDF是一个适用于Python的全面而高效的PDF操作库,为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 安装 查看许可证 >