Python 创建 PDF 文件

如何用 Python 创建 PDF 文件

This article was translated from English: Does it need improvement?
Translated
View the article in English

使用IronPDF在Python中通过转换HTML字符串、HTML文件或URLs到PDF文档生成PDF文件,只需几行代码。 IronPDF 可自动处理渲染、格式化和安全功能。

快速入门:在Python中创建一个PDF

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/quickstart.py
# 1. Install IronPDF: pip install ironpdf
# 2. Import the library
from ironpdf import *
# 3. Create renderer
renderer = ChromePdfRenderer()
# 4. Convert HTML to PDF
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>")
# 5. Save the PDF
pdf.SaveAs("output.pdf")
PYTHON

在Python中自动化PDF创建让开发者可以通过程序生成文档:发票、报告、合同和证书,无需离开应用程序。 传统上,这需要同时处理布局引擎和格式规范,而IronPDF的HTML优先方法意味着任何HTML/CSS文档都可以在一次方法调用中成为像素精准的PDF。

IronPDF for Python的本指南涵盖了四个主要PDF创建工作流程:转换HTML字符串、转换本地HTML文件、转换URL,以及在导出前应用密码保护。

用于PDF创建的Python库应该使用哪个?

IronPDF是一个专门用于从HTML创建PDF文档的Python库。 它的API简单明了:传入HTML标记(或文件路径,或URL)并接收可以保存、盖章、合并或加密的PdfDocument对象。

该库封装了IronPDF经过战斗考验的.NET渲染引擎,相同的引擎用于.NET、JavaNode.js项目,因此HTML到PDF的输出在各个平台之间始终如一。 它支持现代网页标准,包括CSS3、HTML5、JavaScript执行、网页字体和响应式布局。

除了PDF生成,IronPDF涵盖了PDF的全部生命周期:

请注意IronPDF可用于.NETJavaPythonNode.js。 本指南特别涵盖Python实现。

创建PDF之前需要哪些前置条件?

要使用IronPDF for Python,必须安装以下软件:

  1. .NET 6.0 SDK: IronPDF for Python基于IronPDF .NET库构建。 从官方Microsoft .NET 6.0下载页面下载。
  2. Python 3.x: 从官方Python网站下载并安装Python。 在安装过程中选择将 Python 添加到 PATH 的选项。
  3. pip: 与Python 3.4+捆绑在一起。 通过在终端中运行pip --version来验证安装。
  4. IronPDF: 使用pip安装库:
 pip install ironpdf

请注意在某些系统上,Python 2.x 可能仍然是默认版本。 在这种情况下,使用pip来安装Python 3包。 如果您遇到安装错误,请参考我们的OSError问题疑难解答指南

创建 PDF 之前需要进行哪些代码设置?

在您的Python脚本顶部添加以下导入声明:

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/import.py
# Import statement for IronPDF for Python
from ironpdf import *
PYTHON

在任何其他IronPDF调用之前,通过将有效的许可证密钥分配给License属性来进行配置。 这将从生成的PDF中去除试用水印。 有关实施许可证密钥的详细说明,请访问许可证密钥设置指南

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/license.py
# Apply your license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
PYTHON

重要创建没有水印的PDF需要有效的许可证密钥。 购买许可证获得免费试用许可证密钥。 没有许可证密钥,IronPDF会在每个输出PDF上添加试用水印。

如何将HTML字符串转换为PDF文档?

PdfDocument对象。 传入任何有效的HTML标记作为方法参数,IronPDF使用其内置的Chromium引擎渲染,执行JavaScript并应用CSS,然后生成PDF。

这种方法是动态生成内容的最灵活方法:用Python构建HTML字符串(使用模板引擎如Jinja2或简单的字符串格式化),然后直接传递给渲染器。 生成发票,例如,意味着填充带有订单数据的HTML模板并在一个步骤中调用RenderHtmlAsPdf

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/html-string-to-pdf.py
from ironpdf import *

# Apply license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

# Instantiate the Chromium renderer
renderer = ChromePdfRenderer()

# Convert an HTML string to a PDF document
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1><p>This is an example HTML string.</p>")
PYTHON

如何保存生成的 PDF?

一旦HTML字符串已转换为SaveAs

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/save-html-string.py
# Save the PDF to a file
pdf.SaveAs("htmlstring_to_pdf.pdf")
// 该代码片段不可用!
# Save the PDF to a file
pdf.SaveAs("htmlstring_to_pdf.pdf")
PYTHON

文件htmlstring_to_pdf.pdf被写入当前工作目录,保留具有完整CSS样式的HTML内容。 关于高级HTML渲染技术,包括CSS框架、JavaScript框架和复杂布局,请参阅Python的HTML到PDF教程

如何从本地HTML文件生成PDF?

当HTML内容驻留在本地文件系统中的文件中时,RenderHtmlFileAsPdf是正确的方法。 将文件路径作为参数提供:

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/html-file-to-pdf.py
from ironpdf import *

# Apply license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

# Instantiate the renderer
renderer = ChromePdfRenderer()

# Create a PDF from a local HTML file
pdf = renderer.RenderHtmlFileAsPdf("example.html")

# Save the output PDF
pdf.SaveAs("htmlfile_to_pdf.pdf")
PYTHON

IronPDF根据HTML文件的位置解析链接的CSS文件、图像和脚本的相对路径。 在生成PDF之前,渲染器会加载所有相关资产,因此结果匹配浏览器显示的内容。 这使其成为模板化文档的可靠选择,其中HTML和资产以硬盘上的文件形式维护。

提示处理本地HTML文件时,请确保所有链接资产(样式表、字体、图像)使用相对于HTML文件的路径。IronPDF在渲染前解析这些路径,从而生成完整的、独立的PDF。

Icon Quote related to 如何从本地HTML文件生成PDF?

我最喜欢的这种库是 IronPDF。它允许快速高效地操作 PDF 文件。它还具有许多有价值的功能,比如导出为 PDF/A 格式和数字签名 PDF 文档。

Milan Jovanovic related to 如何从本地HTML文件生成PDF?

Milan Jovanovic

微软MVP

查看案例研究
Icon Quote related to 如何从本地HTML文件生成PDF?

IronOCR 意味着我们每年可以节省 $40,000 的人工处理成本,同时提高生产力,并释放资源用于高影响任务。我强烈推荐它。

Brent Matzelle related to 如何从本地HTML文件生成PDF?

Brent Matzelle

首席技术官,OPYN

查看案例研究
Icon Quote related to 如何从本地HTML文件生成PDF?

Iron Suite 在我们的运营中起着至关重要的作用。这些工具提高了业务各方面的效率,包括创建平面图和改善库存管理。

David Jones related to 如何从本地HTML文件生成PDF?

David Jones

首席软件工程师,Agorus Build

查看案例研究

如何在Python中从URL创建PDF?

使用RenderUrlAsPdf将活的网页转换为PDF。 将完整的URL作为参数提供:

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/url-to-pdf.py
from ironpdf import *

# Apply license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

# Instantiate the renderer
renderer = ChromePdfRenderer()

# Convert a web page to PDF
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com")

# Save the output PDF
pdf.SaveAs("url.pdf")
PYTHON

URL渲染功能支持现代网页技术,包括动态JavaScript内容、AJAX调用和响应式布局。 IronPDF在捕获PDF之前等待页面完全加载(包括JavaScript执行),因此所有动态内容均得到准确捕获。

在哪里可以找到更多 URL 转换示例?

有关将网页转换为PDF的额外示例,请访问URL到PDF代码示例页面。 对于需要认证的网站,请参阅关于网站和系统登录的指南。

如何自定义 PDF 格式选项?

ChromePdfRenderer控制输出PDF的格式和布局。 常见设置包括页面大小、页面取向、边距大小和缩放等级。

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/rendering-options.py
from ironpdf import *

License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

renderer = ChromePdfRenderer()

# Configure rendering options
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginBottom = 20
renderer.RenderingOptions.MarginLeft = 25
renderer.RenderingOptions.MarginRight = 25

# Render with custom formatting
pdf = renderer.RenderHtmlAsPdf("<h1>Custom Formatted PDF</h1><p>Content here.</p>")
pdf.SaveAs("formatted.pdf")
PYTHON

有哪些格式设置可用?

RenderingOptions属性公开了纸张大小、页面方向、边距和缩放的设置。 下面的表格列出了最常用的属性:

在Python中PDF格式化用的常用RenderingOptions属性
属性翻译类型说明
纸张大小PdfPaperSize标准页面大小(A4、Letter、Legal)或自定义大小
文件方向PdfPaperOrientation纵向或横向页面取向
页边距上 / 页边距下int(毫米)页顶部和底部边距,以毫米为单位
左边距 / 右边距int(毫米)页左和右边距,以毫米为单位
HtmlHeader / HtmlFooterHtmlHeaderFooter支持页码的运行HTML页眉和页脚

完整参考及额外设置,请参阅PDF生成设置代码示例

提示要添加带页码的页眉和页脚,请在HtmlFooter属性。 该页眉和页脚示例演示了完整的语法。

如何使用密码保护 PDF 文件?

为了保护PDF设置密码,在UserPassword属性。 也可以设置一个所有者密码,以分别限制编辑权限和读取访问。

考虑保护URL示例中创建的PDF:

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/password-protect.py
from ironpdf import *

License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

renderer = ChromePdfRenderer()
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com")

# Set user password (required to open the PDF)
pdf.SecuritySettings.UserPassword = "sharable"

# Set owner password (controls permissions)
pdf.SecuritySettings.OwnerPassword = "admin123"

# Configure document permissions
pdf.SecuritySettings.AllowUserPrinting = True
pdf.SecuritySettings.AllowUserCopyPasteContent = False

# Save the password-protected PDF
pdf.SaveAs("protected.pdf")
PYTHON

密码保护在实践中是如何工作的?

在任何PDF查看器中打开protected.pdf时,在显示文档内容之前会提示输入用户密码。 所有者密码提供修改安全设置的管理访问权限。 设置AllowUserCopyPasteContent = False可以防止读者在打印的同时从PDF中复制文本。

对于文件权限的进一步控制,请参阅安全和元数据设置示例以及PDF加密和解密指南

什么是完整源代码?

下面的综合示例演示了单个Python脚本中的四个PDF创建工作流程:

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/complete-example.py
from ironpdf import *

# Apply your license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

# --- HTML string to PDF ---
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1><p>This is an example HTML string.</p>")
pdf.SaveAs("htmlstring_to_pdf.pdf")

# --- Local HTML file to PDF ---
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlFileAsPdf("example.html")
pdf.SaveAs("htmlfile_to_pdf.pdf")

# --- URL to PDF ---
renderer = ChromePdfRenderer()
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com")
pdf.SaveAs("url.pdf")

# --- Password-protected PDF ---
pdf.SecuritySettings.UserPassword = "sharable"
pdf.SecuritySettings.OwnerPassword = "admin123"
pdf.SecuritySettings.AllowUserPrinting = True
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SaveAs("protected.pdf")
PYTHON

IronPDF在保留格式的同时准确地渲染所有图像和文本。 交互元素如按钮保持可操作性,文本框在生成的PDF中保留其可编辑性。

在Python中创建PDF的下一步是什么?

本指南涵盖了IronPDF for Python中的三种主要PDF创建方法——HTML字符串、本地HTML文件和URL——以及用于保护输出文件的密码保护。 每种方法都会生成一个PdfDocument对象,在保存之前可以进一步处理:盖章、合并、拆分或加密。

准备扩展这些工作流程了吗? 下列资源展示了实际的下一步:

IronPDF需要有效的许可证用于生产使用。 许可从$999开始。 开始免费30天试用以评估库没有限制,或者查看许可选项以获取完整产品套件。

下载完整的源代码。

常见问题解答

如何安装 IronPDF for Python?

在终端中运行 pip install ironpdf。您还需要安装Python 3.x和.NET 6.0 SDK,因为IronPDF for Python运行在IronPDF .NET引擎之上。

用 Python 将 HTML 转换为 PDF 的最简单方法是什么?

创建一个ChromePdfRenderer实例,然后调用renderer.RenderHtmlAsPdf('<h1>Hello</h1>')。该方法接受任何有效的HTML字符串,并返回一个您可以使用pdf.SaveAs('output.pdf')保存的PdfDocument对象。

我可以从本地HTML文件生成PDF吗?

可以。使用renderer.RenderHtmlFileAsPdf('path/to/file.html')。IronPDF在渲染之前相对于HTML文件位置解析链接的CSS、图像和脚本。

如何将实时网页URL转换为PDF?

调用renderer.RenderUrlAsPdf('https://example.com')。IronPDF等待页面完全加载,包括JavaScript执行,然后捕获PDF。

如何密码保护生成的PDF?

设置pdf.SecuritySettings.UserPassword以要求打开文件的密码,以及pdf.SecuritySettings.OwnerPassword以限制编辑权限。随后调用pdf.SaveAs以写入受保护的文件。

我可以控制生成PDF的页面大小和边距吗?

可以。配置renderer.RenderingOptions.PaperSize(例如PdfPaperSize.A4),并在调用渲染方法之前以毫米设置MarginTopMarginBottomMarginLeftMarginRight

IronPDF在HTML到PDF转换中支持JavaScript执行吗?

支持。IronPDF使用基于Chromium的渲染引擎,执行JavaScript、处理AJAX调用并应用CSS,然后生成PDF,因此动态内容能够准确捕获。

我可以在创建PDF后合并或压缩PDF吗?

可以。IronPDF提供了将多个PdfDocument对象合并为一个文件以及压缩现有PDF以减少文件大小的单独方法。两者都适用于由任何渲染方法返回的PdfDocument对象。

Curtis Chau
技术作家

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

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

准备开始了吗?
版本: 2026.6 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据?
运行示例看着你的HTML代码变成PDF文件。