如何在 Node.js 中创建 PDF 文件
在Node.js中以编程方式创建PDF文件需要一个能够精确处理HTML渲染的库,支持现代CSS,并且能够与Node的异步模式无缝集成。 IronPDF使用基于Chromium的渲染引擎将HTML内容转换为与Chrome的打印输出匹配的PDF,支持完整的CSS、内联JavaScript和开箱即用的响应布局。
本指南涵盖了完整的工作流程:安装、从HTML字符串、HTML文件和URL生成PDF、配置输出选项,并应用企业特性如页眉、页脚、数字签名和加密。
快速入门:在Node.js中创建PDF
- 通过npm安装IronPDF:
npm install @ironsoftware/ironpdf - 从
PdfDocument - 用您的HTML内容调用
PdfDocument.fromHtml() - 用
.saveAs()将PDF文件写入磁盘
:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/quickstart.js在生产运行前配置您的平台的IronPdfEngine。 请参阅IronPdfEngine设置指南以获取Windows、Linux、macOS和Docker的说明。
最小工作流程(5 个步骤)
- 安装IronPDF:
npm install @ironsoftware/ironpdf - 从
@ironsoftware/ironpdf导入PdfDocument - 使用
PdfDocument.fromHtml()、PdfDocument.fromFile()或PdfDocument.fromUrl()生成PDF - 应用可选设置:纸张大小、页边距、页眉、页脚
- 使用
pdf.saveAs("output.pdf")保存输出
如何安装 IronPDF for Node.js?
使用npm安装@ironsoftware/ironpdf包。 该包兼容Node.js 12.0或更高版本,并支持ESM和CommonJS模块格式。
//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/install.sh
npm install @ironsoftware/ironpdf//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/install.sh
npm install @ironsoftware/ironpdfIronPDF for Node.js依赖于IronPDF引擎二进制文件,该文件负责底层的基于Chromium的渲染。 引擎在首次运行时自动下载,但您可以预先安装特定平台的包以避免运行时下载。 这在受限网络环境或基于Docker的CI管道中非常有用:
| 平台 | 包 |
|---|---|
| Windows x64 | @ironsoftware/IronPDF-engine-Windows-x64 |
| Linux x64 | @ironsoftware/IronPDF-engine-linux-x64 |
| macOS x64 | @ironsoftware/IronPDF-engine-macos-x64 |
| macOS ARM | @ironsoftware/IronPDF-engine-macos-arm64 |
IronPdfGlobalConfig.setConfig({ licenseKey: "YOUR-KEY" })来应用它。 请按照完整的许可证密钥设置说明。)]IronPDF 的系统要求是什么?
IronPDF for Node.js在Windows、Linux、macOS和Docker环境下运行于Node.js 12.0或更高版本。 该库支持x64和ARM64架构,使其适用于本地开发和容器化部署。 对于云环境,IronPDF还支持连接到远程IronPDF引擎,而不是在本地运行引擎。
如何在Node.js中从HTML创建PDF?
使用PdfDocument.fromHtml()从HTML字符串生成PDF。 该方法接受任何有效的HTML,包含内联<style>块,通过CDN加载的外部字体,以及类似CSS Grid或Flexbox的布局系统。 Chromium渲染器在生成PDF之前解析所有资源。
:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/html-string-to-pdf.jsPdfDocument实例。 调用.then()处理程序。 Chromium引擎在捕获输出之前处理字体加载、外部样式表和资产解析。 更多模式,请参阅HTML字符串到PDF示例。
如何从HTML文件创建PDF?
使用.html文件。 这种方法适用于模板化文档,其中HTML与应用程序逻辑分开维护。
:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/html-file-to-pdf.js渲染器从HTML文件的目录解析相对资产路径,因此本地CSS和图像引用可以在没有额外配置的情况下工作。 有关其他选项,包括如何覆盖资产解析的基本URL,请参阅HTML文件到PDF示例。
如何从URL生成PDF?
使用PdfDocument.fromUrl()将实时网页渲染为PDF。 渲染器加载页面作为完整的浏览器会话,执行JavaScript,应用CSS,等待动态内容后再捕获输出。
:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/url-to-pdf.js对于通过JavaScript异步加载内容的页面,将其与renderDelay选项(以毫秒为单位)结合使用,以允许在捕获之前增加额外时间。 URL到PDF示例展示了延迟配置和身份验证头。
如何配置PDF输出设置?
将配置对象作为第二个参数传递给PdfDocument.fromUrl()。 配置对象接受纸张大小、页边距、方向和渲染选项。
:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/pdf-settings.js关键配置选项包括:
PdfPaperSize枚举值(A4,Letter,Legal和自定义尺寸)landscape: 为横向页面方向设置trueprintBackground: 包含CSS背景颜色和图像marginTop/Bottom/Left/Right: 以毫米为单位的页面边距renderDelay: 为JavaScript繁重的页面在捕获之前等待的毫秒数
如何向PDF添加页眉和页脚?
通过在配置对象中提供htmlFooter属性添加页眉和页脚。 两者都接受完整的HTML字符串,从而实现带有页码、日期和动态文本的样式内容。
:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/headers-footers.js在页脚HTML中使用{total-pages}令牌; IronPDF在渲染时替换正确的值。有关更多页眉和页脚模式,包括HTML页眉和页脚以及高级页眉技术,请参见链接示例。
如何向PDF添加安全性和元数据?
使用PdfDocument安全方法对生成的PDF应用密码保护和加密。 该库支持所有者和用户密码,提供打印、复制和编辑的细粒度权限控制。
:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/security.js加密和解密在应用密码时默认使用AES 256位加密。 对于文档认证工作流,IronPDF还支持使用X.509证书的数字签名。
PdfDocument.fromHtml(),然后使用PDF/A转换方法。 IronPDF支持PDF/A合规和PDF/UA可访问性标准。)]如何合并和操作现有的PDF?
PdfDocument提供合并、拆分和修改现有PDF文件的方法。 使用PdfDocument.fromFile()加载现有PDF,并使用操作方法来添加或删除页面、印章内容或替换文本。
:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/merge-pdfs.jsPdfDocument实例数组,并返回一个合并后的文档。 页面顺序遵循数组顺序,因此输出保留输入文件的顺序。
其他常见的操作操作:
- 使用
removePages()从PDF中删除页面 - 在现有文档上盖章HTML内容
- 跨所有页面查找和替换文本
- 从PDF提取文本用于索引或处理
对于高量使用场景,多线程PDF生成可让您并行处理多个文档。 PDF压缩降低文件存储和传输的大小。
如何为复杂内容(如图表和Angular页面)生成PDF?
IronPDF使用完整的Chromium浏览器会话渲染页面,这意味着生成图表、图形或数据可视化的JavaScript库正确渲染,包括JavaScript图表库。 使用像Angular这样的框架构建的单页应用程序也可以通过Angular到PDF示例进行干净转换。
对于包含大量Unicode或多语言输出的文档,IronPDF处理Unicode和国际字符集而无需额外配置。 Google Fonts集成示例展示了如何在渲染的HTML中加载网页字体,以在输出PDF中保持一致的排版。
renderDelay(以毫秒为单位),以给予页面足够的完全渲染时间。在Node.js中生成PDF的下一步是什么?
本指南涵盖了IronPDF的核心工作流程:安装库,从HTML字符串、文件和URL生成PDF,配置输出设置,添加页眉和页脚,应用安全策略以及操作现有PDF。
要继续,请尝试完整的HTML到PDF教程以深入了解呈现选项,或浏览API参考以获取完整的PdfDocument方法和配置属性列表。
常见问题解答
在 Node.js 中创建 PDF 文件的最简单方法是什么?
通过npm install @ironsoftware/ironpdf安装IronPDF,然后使用您的HTML字符串调用PdfDocument.fromHtml(),并使用saveAs()保存结果。该库自动处理所有渲染。
如何安装 IronPDF for Node.js?
在项目目录中运行npm install @ironsoftware/ironpdf。IronPDF引擎二进制文件在首次使用时会自动下载。对于离线或CI环境,请单独安装特定平台的引擎包,例如@ironsoftware/ironpdf-engine-linux-x64。
我能否在将 HTML 转换为 PDF 的同时保留 CSS 样式和格式?
是的。IronPDF使用基于Chromium的渲染引擎,将所有CSS样式、外部字体和JavaScript执行保留在HTML到PDF转换中。输出符合Chrome的打印预览行为。
除了基本的HTML转换,IronPDF还提供了哪些PDF功能?
IronPDF支持数字签名、AES 256位加密、具有细粒度权限的密码保护、自定义页眉和页脚带页码标记、PDF合并、页面删除、HTML加印、文本提取、PDF/A合规性和多线程生成。
如何从磁盘上的HTML文件创建PDF?
使用PdfDocument.fromFile('./path/to/template.html')。渲染器将解析HTML文件目录中的相对资源路径,因此无需额外配置,本地CSS和图像引用可以正常工作。
我可以使用IronPDF从现有PDF文件中提取文本吗?
可以。使用PdfDocument.fromFile()加载现有PDF,并使用文本提取方法读取任意页面的内容。IronPDF支持创建新PDF文件和处理现有文档。
IronPDF在渲染HTML时是否支持JavaScript执行?
是的。Chromium渲染器捕获PDF之前会执行JavaScript。对于异步加载内容的页面,请在毫秒中设置renderDelay选项,为页面捕获前提供额外时间。





