IRONSOFTWAREHOME

如何用 Python 创建 PDF 文件

Curtis Chau
Curtis Chau
Updated: 2026年6月4日

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

快速入门:在Python中创建一个PDF
# 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脚本顶部添加以下导入声明:

# Import statement for IronPDF for Python
from ironpdf import *
Python

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

# 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

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

# 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是正确的方法。 将文件路径作为参数提供:

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。

如何在Python中从URL创建PDF?

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

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的格式和布局。 常见设置包括页面大小、页面取向、边距大小和缩放等级。

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:

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创建工作流程:

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对象。

What are the main methods for creating PDFs in IronPDF?

The main methods for creating PDFs in IronPDF include converting an HTML string, a local HTML file, a live URL, and securing the PDF with passwords. Each method is designed to handle different types of content transformations.

How can I ensure that my generated PDFs are not watermarked when using IronPDF?

You need to configure a valid license key before generating PDFs to ensure they are not watermarked. Assign the license key to the `LicenseKey` attribute in your script to remove the trial watermark.

Curtis Chau
技术作家

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

...
阅读更多

准备开始了吗?

版本:2026.9刚刚发布

免费获取

30天试用密钥 即刻获取。

bullet_checked无需信用卡或创建账户
bullet_test在生产环境中测试
且无水印
bullet_calendar30天完全
功能性产品
bullet_support试用期间提供
24/5技术支持
立即获取您的免费30 天试用密钥
无需信用卡或创建账户
Python 模块下载 PDF
using pip 安装

版本: 2026.9

  1. 下载 并安装 Python 3.7+。
  2. 如果尚未安装,请从 pypi.org 安装 pip
  3. 在终端中执行上述命令。
Python PDF 模块
下载 模块

版本: 2026.9

手动安装到您的项目中

  1. 下载软件包
  2. 在终端中运行此命令
    pip install ironpdf-2026.9-py37-none-win_amd64.whi

$999

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

OR
bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户
Python 模块下载 PDF
using pip 安装

版本: 2026.9

  1. 下载 并安装 Python 3.7+。
  2. 如果尚未安装,请从 pypi.org 安装 pip
  3. 在终端中执行上述命令。
Python PDF 模块
下载 模块

版本: 2026.9

手动安装到您的项目中

  1. 下载软件包
  2. 在终端中运行此命令
    pip install ironpdf-2026.9-py37-none-win_amd64.whi

$999