跳至页脚内容
使用 IRONPDF FOR PYTHON

如何使用 Python 创建包含文本和图像的 PDF 文件

在当今的数字时代,生成包含动态内容(包括文本和图像)的 PDF 文档已成为一种常见需求。 Python 是一种流行的编程语言,它可以轻松实现日常流程的自动化,从而节省时间和精力。 拥有一个功能强大的 Python 库来创建包含文本和图像的 PDF 文件,对于自动生成报告、收据或发票非常方便。 IronPDF是一个功能强大的 Python 库,它简化了创建包含丰富内容的 PDF 的过程。

在本文中,我们将探索如何在 Python 项目中使用 IronPDF 生成包含文本和图像的 PDF。

如何在 Python 中创建包含文本和图像的 PDF 文件

  1. 安装 IronPDF for Python 库
  2. 实例化 ChromePdfRenderer
  3. 添加文本内容
  4. 添加图像为二进制数据
  5. 创建包含文本和图像的 HTML 字符串
  6. 使用 RenderHtmlAsPdf 将 HTML 渲染为 PDF
  7. 使用 SaveAs 方法保存 PDF 文件

IronPDF简介

IronPDF是一个功能丰富的 Python 库,它为开发人员提供了创建、操作和处理 PDF 文档的强大工具。 使用 IronPDF,您可以轻松地将文本、图像、表格和其他元素添加到 PDF 中,使其成为从报告生成到文档创建等各种应用的宝贵工具。

如何在 Python 中创建包含文本和图像的 PDF 文件:图 1 - IronPDF for Python:Python PDF 库

IronPDF 的主要特点:

*轻松集成:* IronPDF 可与流行的 Python 开发环境无缝集成,使使用 PyCharm 等工具的开发人员能够轻松访问它。 富文本支持:支持富文本格式,使开发人员能够轻松创建视觉效果出色的 PDF 文档。 图像处理: IronPDF 支持在 PDF 中插入图像,从而在设计和自定义文档方面提供了灵活性。 跨平台兼容性:** IronPDF 可在不同的平台上运行,确保生成的 PDF 文件可以一致地查看和交互。

前提条件

在开始使用 IronPDF 创建 PDF 文档之前,请确保您已满足以下先决条件:

  1. Python 已安装:您的计算机上需要安装 Python。 您可以从 Python 官方网站( https://www.python.org/ )下载并安装最新版本。
  2. PyCharm IDE:使用PyCharm或任何其他您选择的 Python IDE。PyCharm 是一款流行的集成开发环境,可为 Python 开发提供舒适的工作空间。
  3. IronPDF: IronPDF 库可从此处下载或使用 PIP(Python 包管理器)安装。 要成功使用 IronPDF 的功能,还需要 Microsoft .NET 运行时环境。 Linux、Mac 和 Windows 用户可以使用下载链接下载 .NET 6.0 版本。

在PyCharm中创建Python项目

满足所有先决条件后,打开 PyCharm 并创建一个新的 Python 项目。 为你的项目搭建一个虚拟环境,以便有效地管理依赖项。

  1. 点击文件 > 新建项目
  2. 在"新建项目"窗口中:
    • 在"位置"字段中输入项目名称。
    • 选择要保存项目文件的位置。
  3. 在"项目解释器"下,选择 Python 解释器。 如果您安装了 Python,它会自动检测 Python 解释器。
  4. 选择项目类型。 对于简单的 Python 项目,您可以坚持使用默认设置。

    ![如何在Python中创建包含文本和图像的PDF文件:图2 - 打开PyCharm IDE。转到文件菜单 - 单击新建项目。 请输入您的Python项目名称和位置。 接下来,在"项目解释器"下选择 Python 解释器。 点击"创建"按钮创建项目。 创建 Python 项目后,打开一个新的 Python 文件,并使用它来编写代码,以使用 IronPDF 生成 PDF 文件。

  5. 点击"创建"按钮创建项目。
  6. 打开一个新的 python 文件并保存,以便使用 Python 库IronPDF编写生成 PDF 文件的代码。

使用 PIP 安装适用于 Python 的 IronPDF

要安装 IronPDF,请在项目的终端或命令提示符中使用以下 PIP 命令:

 pip install ironpdf

此命令将自动下载并安装 IronPDF 库及其依赖项。

如何在 Python 中创建包含文本和图像的 PDF 文件:图 3 - 要安装 IronPDF,请在项目的终端或命令提示符中使用以下命令:pip install IronPDF

创建包含文本和图像的简单 PDF

让我们逐步了解如何使用 IronPDF 创建一个包含文本和图像的单页 PDF 文档:

步骤 1:导入 IronPDF

在此步骤中,我们将从 IronPDF 导入所有必需的模块。 我们导入ChromePdfRenderer用于渲染 PDF,并导入 base64用于对图像数据进行编码。

from ironpdf import ChromePdfRenderer
import base64
from ironpdf import ChromePdfRenderer
import base64
PYTHON

步骤 2:实例化 ChromePdfRenderer

在这里,我们将创建一个ChromePdfRenderer实例,用于将 HTML 内容渲染成 PDF。

# Instantiate Renderer
renderer = ChromePdfRenderer()
# Instantiate Renderer
renderer = ChromePdfRenderer()
PYTHON

步骤 3:添加文本内容

在此步骤中,我们将定义一个 HTML 字符串( html_content ),其中包含 HTML 文档的结构,包括头部、主体以及一个包含文本内容的段落,该段落稍后将被转换为单个 PDF 文件。我们将使用 CSS 样式来定位文本和图像。

# HTML String with Text 
html_content = """
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PDF Generation Example</title>
    <style>
        body {
            margin: 0; /* Remove default margin */
            padding: 20px; /* Add padding for better visibility */
            position: relative; /* Set the body as a relative position */
        }
        header {
            text-align: center;
        }
        section {
            margin-top: 20px; /* Add margin to separate sections */
        }
        img {
            position: absolute;
            top: 20px; /* Adjust the top position */
            right: 20px; /* Adjust the right position */
        }
    </style>
</head>
<body>
    <header>
        <h1>PDF Generation Example</h1>
    </header>
    <section id="contentSection">
        <h2>Text and Image in PDF</h2>
        <p>This PDF includes both text and an embedded image:</p>
        <p>IronPDF developed by Ironsoftware is a great PDF creating library for .NET, Python, JAVA, Node.JS.</p>
"""
# HTML String with Text 
html_content = """
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PDF Generation Example</title>
    <style>
        body {
            margin: 0; /* Remove default margin */
            padding: 20px; /* Add padding for better visibility */
            position: relative; /* Set the body as a relative position */
        }
        header {
            text-align: center;
        }
        section {
            margin-top: 20px; /* Add margin to separate sections */
        }
        img {
            position: absolute;
            top: 20px; /* Adjust the top position */
            right: 20px; /* Adjust the right position */
        }
    </style>
</head>
<body>
    <header>
        <h1>PDF Generation Example</h1>
    </header>
    <section id="contentSection">
        <h2>Text and Image in PDF</h2>
        <p>This PDF includes both text and an embedded image:</p>
        <p>IronPDF developed by Ironsoftware is a great PDF creating library for .NET, Python, JAVA, Node.JS.</p>
"""
PYTHON

步骤四:添加图片

在这里,我们将以二进制模式打开并读取图像文件( ironpdf-logo.png ),将其转换为 base64 编码的数据 URI,并将其嵌入到 HTML 字符串中。 然后使用 CSS 样式将图像定位到右上角。

# Read image and convert to base64 string
with open("ironpdf-logo.png", "rb") as f:
    pngBinaryData = f.read()
    imgDataUri = "data:image/png;base64," + base64.b64encode(pngBinaryData).decode("utf-8")
    imgHtml = f"""<!-- Embedded Image -->
        <img src='{imgDataUri}' width=100px height=100px
            alt="IronPDF Logo">
    </section>
</body>
</html>
"""
# Read image and convert to base64 string
with open("ironpdf-logo.png", "rb") as f:
    pngBinaryData = f.read()
    imgDataUri = "data:image/png;base64," + base64.b64encode(pngBinaryData).decode("utf-8")
    imgHtml = f"""<!-- Embedded Image -->
        <img src='{imgDataUri}' width=100px height=100px
            alt="IronPDF Logo">
    </section>
</body>
</html>
"""
PYTHON

步骤 5:合并文本和图像 HTML 字符串

此步骤将文本和图像 HTML 字符串连接起来,以创建完整的 HTML 内容( full_html_content ),该内容将渲染到 PDF 输出文件中。

full_html_content = html_content + imgHtml
full_html_content = html_content + imgHtml
PYTHON

步骤 6:将 HTML 内容渲染为 PDF 文件

这里使用RenderHtmlAsPdf方法,通过ChromePdfRenderer将 HTML 转换为 PDF。

# Create a PDF from the HTML string
pdf = renderer.RenderHtmlAsPdf(full_html_content)
# Create a PDF from the HTML string
pdf = renderer.RenderHtmlAsPdf(full_html_content)
PYTHON

步骤 7:保存 PDF 文件

最后,生成的 PDF 文件保存为"output_with_text_and_image_top_right.pdf"。 该文件将包含格式化文本和位于右上角的嵌入式图像。

# Save the PDF to a file
pdf.SaveAs("output_with_text_and_image_top_right.pdf")
# Save the PDF to a file
pdf.SaveAs("output_with_text_and_image_top_right.pdf")
PYTHON

输出PDF文档

程序运行后,输出的PDF文件如下所示:

如何在 Python 中创建包含文本和图像的 PDF 文件:图 4 - 输出:output_with_text_and_image_top_right.pdf

同样,可以轻松地向 PDF 文件中添加多个 PDF 页面。

高级用法:自定义文本和图像位置

IronPDF 提供了一些附加功能,可以使用外部 CSS/JavaScript 文件来微调 PDF 中文本和图像的位置和样式。基本路径可以作为可选参数传递给 RenderHtmlAsPdf 方法,如下面的代码所示:

# 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'>", r"C:\site\assets")
myAdvancedPdf.SaveAs("html-with-assets.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'>", r"C:\site\assets")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
PYTHON

在这个高级代码示例中,我们将通过外部资源进一步探讨嵌入图像的概念。 RenderHtmlAsPdf方法中的 HTML 内容包含一个 related to 高级用法:自定义文本和图像位置标签指向位于指定资源目录( C:\site\assets\ )中的图像文件( iron.png )。 此外,该目录被设置为BasePath参数。

RenderHtmlAsPdf中,您可以按照上述步骤发送完整的 HTML 网页。 可以使用基本路径作为第二个可选参数来引用 CSS 文件。 有关生成 PDF 格式或修改现有 PDF 文件的其他方法的更多详细信息,请访问代码示例文档页面。

结论

在本文中,我们探讨了如何在 Python 项目中使用IronPDF创建包含文本和图像的 PDF 文件。 IronPDF 凭借其直观的 API 和强大的功能,使开发人员能够轻松生成动态且视觉效果吸引人的 PDF 文档。 无论您是创建报告、文档还是任何其他类型的内容,IronPDF 都为 Python 中的 PDF 生成提供了一个可靠而灵活的解决方案。 尝试各种自定义选项,根据特定的设计要求定制您的 PDF 文件,使 IronPDF 成为满足您文档生成需求的宝贵工具。

如需获得 IronPDF许可,或有其他疑问,请联系技术支持

如何在 Python 中创建包含文本和图像的 PDF 文件:图 5 - IronPDF for Python 许可信息

您可以从 IronPDF 的网站下载并安装该库。

常见问题解答

如何使用 Python 创建包含文本和图片的 PDF?

您可以使用 IronPDF 的 ChromePdfRenderer 在 Python 中创建包含文本和图片的 PDF。首先安装 IronPDF 库,然后创建一个包含所需内容的 HTML 字符串。使用 RenderHtmlAsPdf 方法将 HTML 渲染成 PDF,最后使用 SaveAs 方法保存 PDF。

在 Python 中安装 PDF 库的步骤是什么?

要为 Python 安装 IronPDF 库,您可以使用 PIP 软件包管理器。在命令行或终端中运行命令 pip install ironpdf 以下载并安装库及其依赖项。

使用 Python 的 PDF 创建库需要哪些先决条件?

您需要在机器上安装 Python,一个用于开发的 IDE,如 PyCharm,以及 IronPDF 库。此外,IronPDF 需要 Microsoft .NET 运行时才能运行。

使用 Python 库是否可以使用外部 CSS 或 JavaScript 自定义 PDF?

是的,IronPDF 允许您使用外部 CSS 和 JavaScript 文件自定义 PDF 的布局和设计。该功能为文本和图片的布局提供高级自定义选项。

Python 的 PDF 库是否可以处理跨平台兼容性?

IronPDF 被设计成具有跨平台兼容性,确保您生成的 PDF 可以在不同操作系统上一致查看和交互。

在使用 Python 进行 PDF 生成时,为什么使用 base64 编码图像?

Base64 编码用于将图像二进制数据转换为可以直接嵌入到 HTML 中的字符串格式。这允许在 PDF 中包含图像,而不需引用外部文件。

IronPDF for Python 的关键特性是什么?

IronPDF 提供诸如与 Python 环境的轻松集成、支持丰富的文本和图片、跨平台兼容性等功能。这些特性使其成为生成动态内容 PDF 的多功能工具。

IronPDF 如何协助生成动态 PDF 文档?

IronPDF 提供了一个强大的 API,允许开发人员生成包含动态内容的 PDF,如文本和图片。它支持 HTML 和 CSS 格式化,使得在 Python 中创建视觉吸引人的文档变得容易。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。