如何在 Node.js 中创建 PDF 文件

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

在Node.js中以编程方式创建PDF文件需要一个能够精确处理HTML渲染的库,支持现代CSS,并且能够与Node的异步模式无缝集成。 IronPDF使用基于Chromium的渲染引擎将HTML内容转换为与Chrome的打印输出匹配的PDF,支持完整的CSS、内联JavaScript和开箱即用的响应布局。

本指南涵盖了完整的工作流程:安装、从HTML字符串、HTML文件和URL生成PDF、配置输出选项,并应用企业特性如页眉、页脚、数字签名和加密。

快速入门:在Node.js中创建PDF

  1. 通过npm安装IronPDF: npm install @ironsoftware/ironpdf
  2. PdfDocument
  3. 用您的HTML内容调用PdfDocument.fromHtml()
  4. .saveAs()将PDF文件写入磁盘
:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/quickstart.js

在生产运行前配置您的平台的IronPdfEngine。 请参阅IronPdfEngine设置指南以获取Windows、Linux、macOS和Docker的说明。

如何安装 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/ironpdf
SHELL

IronPDF for Node.js依赖于IronPDF引擎二进制文件,该文件负责底层的基于Chromium的渲染。 引擎在首次运行时自动下载,但您可以预先安装特定平台的包以避免运行时下载。 这在受限网络环境或基于Docker的CI管道中非常有用:

IronPDF引擎平台包用于在离线或受限环境中进行预先安装
平台
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

请注意有效的许可证密钥可以去除生成的PDF中的水印。 在您首次调用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.js

PdfDocument实例。 调用.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示例展示了延迟配置和身份验证头。


Icon Quote related to 如何从URL生成PDF?

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

Milan Jovanovic related to 如何从URL生成PDF?

Milan Jovanovic

微软MVP

查看案例研究
Icon Quote related to 如何从URL生成PDF?

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

Brent Matzelle related to 如何从URL生成PDF?

Brent Matzelle

首席技术官,OPYN

查看案例研究
Icon Quote related to 如何从URL生成PDF?

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

David Jones related to 如何从URL生成PDF?

David Jones

首席软件工程师,Agorus Build

查看案例研究

如何配置PDF输出设置?

将配置对象作为第二个参数传递给PdfDocument.fromUrl()。 配置对象接受纸张大小、页边距、方向和渲染选项。

:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/pdf-settings.js

关键配置选项包括:

  • PdfPaperSize枚举值(A4,Letter,Legal和自定义尺寸
  • landscape: 为横向页面方向设置true
  • printBackground: 包含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.js

PdfDocument实例数组,并返回一个合并后的文档。 页面顺序遵循数组顺序,因此输出保留输入文件的顺序。

其他常见的操作操作:

对于高量使用场景,多线程PDF生成可让您并行处理多个文档。 PDF压缩降低文件存储和传输的大小。


如何为复杂内容(如图表和Angular页面)生成PDF?

IronPDF使用完整的Chromium浏览器会话渲染页面,这意味着生成图表、图形或数据可视化的JavaScript库正确渲染,包括JavaScript图表库。 使用像Angular这样的框架构建的单页应用程序也可以通过Angular到PDF示例进行干净转换。

对于包含大量Unicode或多语言输出的文档,IronPDF处理Unicode和国际字符集而无需额外配置。 Google Fonts集成示例展示了如何在渲染的HTML中加载网页字体,以在输出PDF中保持一致的排版。

请注意IronPDF的Chromium渲染器在捕获PDF之前执行JavaScript。 如果您的图表库或SPA需要在DOM加载后渲染数据的额外时间,请设置renderDelay(以毫秒为单位),以给予页面足够的完全渲染时间。


在Node.js中生成PDF的下一步是什么?

本指南涵盖了IronPDF的核心工作流程:安装库,从HTML字符串、文件和URL生成PDF,配置输出设置,添加页眉和页脚,应用安全策略以及操作现有PDF。

要继续,请尝试完整的HTML到PDF教程以深入了解呈现选项,或浏览API参考以获取完整的PdfDocument方法和配置属性列表。

开始免费试用以生成无水印的PDF,或查看许可选项以进行生产部署。

常见问题解答

在 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选项,为页面捕获前提供额外时间。

Darrius Serrant
全栈软件工程师(WebOps)

Darrius Serrant 拥有迈阿密大学的计算机科学学士学位,目前在 Iron Software 担任全栈 WebOps 市场工程师。从小就被编码吸引,他认为计算机既神秘又易于接触,使其成为创意和问题解决的理想媒介。

在 Iron Software,Darrius 喜欢创造新事物,并简化复杂概念以使其更易理解。作为我们常驻的开发者之一,他还自愿教授学生,与下一代分享他的专业知识。

对于 Darrius 来说,他的工作令人满意,因为它被重视并产生真正的影响。

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

还在滚动吗?

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