如何用 Python 创建 PDF 文件
使用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中创建一个PDF文件
- 安装IronPDF Python库
- 使用
RenderHtmlAsPdf方法将HTML字符串转换为PDF文档 - 使用
RenderHtmlFileAsPdf方法从本地HTML文件生成PDF文件 - 使用
RenderUrlAsPdf方法从网页URL创建PDF - 应用密码保护并将PDF保存到所需目录
在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、Java和Node.js项目,因此HTML到PDF的输出在各个平台之间始终如一。 它支持现代网页标准,包括CSS3、HTML5、JavaScript执行、网页字体和响应式布局。
除了PDF生成,IronPDF涵盖了PDF的全部生命周期:
- 从现有PDF中提取文本和数据
- 文件格式转换(HTML、DOCX、图像到PDF)
- 合并多个PDF
- 压缩PDF文件
- 密码加密和数字版权管理
- 程序化填写PDF表单
创建PDF之前需要哪些前置条件?
要使用IronPDF for Python,必须安装以下软件:
.NET 6.0 SDK: IronPDF for Python基于IronPDF .NET库构建。 从官方Microsoft .NET 6.0下载页面下载。Python 3.x: 从官方Python网站下载并安装Python。 在安装过程中选择将 Python 添加到 PATH 的选项。pip: 与Python 3.4+捆绑在一起。 通过在终端中运行pip --version来验证安装。IronPDF: 使用pip安装库:
pip install ironpdf
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 *
在任何其他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"
如何将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.pyfrom 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>")
如何保存生成的 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")文件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.pyfrom 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")
IronPDF根据HTML文件的位置解析链接的CSS文件、图像和脚本的相对路径。 在生成PDF之前,渲染器会加载所有相关资产,因此结果匹配浏览器显示的内容。 这使其成为模板化文档的可靠选择,其中HTML和资产以硬盘上的文件形式维护。
如何在Python中从URL创建PDF?
使用RenderUrlAsPdf将活的网页转换为PDF。 将完整的URL作为参数提供:
:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/url-to-pdf.pyfrom 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")
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.pyfrom 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")
有哪些格式设置可用?
RenderingOptions属性公开了纸张大小、页面方向、边距和缩放的设置。 下面的表格列出了最常用的属性:
| 属性 | 翻译类型 | 说明 |
|---|---|---|
纸张大小 | PdfPaperSize | 标准页面大小(A4、Letter、Legal)或自定义大小 |
文件方向 | PdfPaperOrientation | 纵向或横向页面取向 |
页边距上 / 页边距下 | int(毫米) | 页顶部和底部边距,以毫米为单位 |
左边距 / 右边距 | int(毫米) | 页左和右边距,以毫米为单位 |
HtmlHeader / HtmlFooter | HtmlHeaderFooter | 支持页码的运行HTML页眉和页脚 |
完整参考及额外设置,请参阅PDF生成设置代码示例。
HtmlFooter属性。 该页眉和页脚示例演示了完整的语法。如何使用密码保护 PDF 文件?
为了保护PDF设置密码,在UserPassword属性。 也可以设置一个所有者密码,以分别限制编辑权限和读取访问。
考虑保护URL示例中创建的PDF:
:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/password-protect.pyfrom 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")
密码保护在实践中是如何工作的?
在任何PDF查看器中打开protected.pdf时,在显示文档内容之前会提示输入用户密码。 所有者密码提供修改安全设置的管理访问权限。 设置AllowUserCopyPasteContent = False可以防止读者在打印的同时从PDF中复制文本。
对于文件权限的进一步控制,请参阅安全和元数据设置示例以及PDF加密和解密指南。
什么是完整源代码?
下面的综合示例演示了单个Python脚本中的四个PDF创建工作流程:
:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/complete-example.pyfrom 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")
IronPDF在保留格式的同时准确地渲染所有图像和文本。 交互元素如按钮保持可操作性,文本框在生成的PDF中保留其可编辑性。
在Python中创建PDF的下一步是什么?
本指南涵盖了IronPDF for Python中的三种主要PDF创建方法——HTML字符串、本地HTML文件和URL——以及用于保护输出文件的密码保护。 每种方法都会生成一个PdfDocument对象,在保存之前可以进一步处理:盖章、合并、拆分或加密。
准备扩展这些工作流程了吗? 下列资源展示了实际的下一步:
- HTML到PDF Python教程——使用CSS框架和JavaScript的高级渲染
- 在Python中合并PDF — 将多个文档合并成一个文件
- 在Python中压缩PDF — 减小文件大小以便存储和电子邮件发送
- 在Python中填写PDF表单 — 填充现有PDF表单字段
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),并在调用渲染方法之前以毫米设置MarginTop、MarginBottom、MarginLeft和MarginRight。
IronPDF在HTML到PDF转换中支持JavaScript执行吗?
支持。IronPDF使用基于Chromium的渲染引擎,执行JavaScript、处理AJAX调用并应用CSS,然后生成PDF,因此动态内容能够准确捕获。
我可以在创建PDF后合并或压缩PDF吗?
可以。IronPDF提供了将多个PdfDocument对象合并为一个文件以及压缩现有PDF以减少文件大小的单独方法。两者都适用于由任何渲染方法返回的PdfDocument对象。







