如何在 Node.js 中创建 PDF 文件 Copy for LLMsCopy for LLMs Copy page as Markdown for LLMs
# 如何在 Node.js 中创建 PDF 文件
在Node.js中以编程方式创建PDF文件需要一个能够精确处理HTML渲染的库,支持现代CSS,并且能够与Node的异步模式无缝集成。 [IronPDF](https://ironpdf.com/nodejs/docs/)使用基于Chromium的渲染引擎将HTML内容转换为与Chrome的打印输出匹配的PDF,支持完整的CSS、内联JavaScript和开箱即用的响应布局。
本指南涵盖了完整的工作流程:安装、从HTML字符串、HTML文件和URL生成PDF、配置输出选项,并应用企业特性如页眉、页脚、数字签名和加密。
*as-heading:2(快速入门:在Node.js中创建PDF)*
1. 通过npm安装IronPDF: `npm install @ironsoftware/ironpdf`
2. 从`PdfDocument`
3. 用您的HTML内容调用`PdfDocument.fromHtml()`
4. 用`.saveAs()`将PDF文件写入磁盘
```nodejs
import { PdfDocument } from "@ironsoftware/ironpdf";
const pdf = await PdfDocument.fromHtml("<h1>Hello, PDF!</h1><p>Generated with IronPDF.</p>");
await pdf.saveAs("output.pdf");
```
在生产运行前配置您的平台的`IronPdfEngine`。 请参阅[IronPdfEngine设置指南](https://ironpdf.com/nodejs/get-started/use-ironpdfengine/)以获取Windows、Linux、macOS和Docker的说明。
<div class="hsg-featured-snippet">
<h3>最小工作流程(5 个步骤)</h3>
<ol>
<li>安装IronPDF:<code>npm install @ironsoftware/ironpdf</code></li>
<li>从<code>@ironsoftware/ironpdf</code>导入<code>PdfDocument</code></li>
<li>使用<code>PdfDocument.fromHtml()</code>、<code>PdfDocument.fromFile()</code>或<code>PdfDocument.fromUrl()</code>生成PDF</li>
<li>应用可选设置:纸张大小、页边距、页眉、页脚</li>
<li>使用<code>pdf.saveAs("output.pdf")</code>保存输出</li>
</ol>
</div>
## 如何安装 IronPDF for Node.js?
使用[npm](https://www.npmjs.com/package/@ironsoftware/ironpdf)安装`@ironsoftware/ironpdf`包。 该包兼容[Node.js](https://nodejs.org/) 12.0或更高版本,并支持ESM和CommonJS模块格式。
```bash
//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/install.sh
npm install @ironsoftware/ironpdf
```
IronPDF for Node.js依赖于IronPDF引擎二进制文件,该文件负责底层的基于Chromium的渲染。 引擎在首次运行时自动下载,但您可以预先安装特定平台的包以避免运行时下载。 这在受限网络环境或基于Docker的CI管道中非常有用:
<table class="content__data-table" data-content-table>
<caption>IronPDF引擎平台包用于在离线或受限环境中进行预先安装</caption>
<thead>
<tr><th>平台</th><th>包</th></tr>
</thead>
<tbody>
<tr><td>Windows x64</td><td><code>@ironsoftware/IronPDF-engine-Windows-x64</code></td></tr>
<tr><td>Linux x64</td><td><code>@ironsoftware/IronPDF-engine-linux-x64</code></td></tr>
<tr><td>macOS x64</td><td><code>@ironsoftware/IronPDF-engine-macos-x64</code></td></tr>
<tr><td>macOS ARM</td><td><code>@ironsoftware/IronPDF-engine-macos-arm64</code></td></tr>
</tbody>
</table>
[[i:(有效的许可证密钥可以去除生成的PDF中的水印。 在您首次调用`IronPdfGlobalConfig.setConfig({ licenseKey: "YOUR-KEY" })`来应用它。 请按照完整的[许可证密钥设置说明](https://ironpdf.com/nodejs/get-started/license-keys/)。)]
)]]
### IronPDF 的系统要求是什么?
IronPDF for Node.js在Windows、Linux、macOS和Docker环境下运行于Node.js 12.0或更高版本。 该库支持x64和ARM64架构,使其适用于本地开发和容器化部署。 对于云环境,IronPDF还支持连接到[远程IronPDF引擎](https://ironpdf.com/nodejs/get-started/use-ironpdfengine/),而不是在本地运行引擎。
<hr />
## 如何在Node.js中从HTML创建PDF?
使用`PdfDocument.fromHtml()`从HTML字符串生成PDF。 该方法接受任何有效的HTML,包含内联`<style>`块,通过CDN加载的外部字体,以及类似CSS Grid或Flexbox的布局系统。 Chromium渲染器在生成PDF之前解析所有资源。
```nodejs
import { PdfDocument } from "@ironsoftware/ironpdf";
const htmlContent = `
<!DOCTYPE html>
<html>
<head>
<style>
body { font-family: Arial, sans-serif; margin: 0; padding: 0; }
.header { background: #2b4c8c; color: white; padding: 24px 32px; }
.header h1 { margin: 0; font-size: 22px; }
.body { padding: 32px; }
table { width: 100%; border-collapse: collapse; margin-top: 16px; }
th { background: #f0f4fb; text-align: left; padding: 8px 12px; }
td { padding: 8px 12px; border-bottom: 1px solid #e0e0e0; }
</style>
</head>
<body>
<div class="header"><h1>Invoice #INV-2025-0042</h1></div>
<div class="body">
<p>Date: ${new Date().toLocaleDateString()}</p>
<table>
<tr><th>Item</th><th>Qty</th><th>Unit Price</th><th>Total</th></tr>
<tr><td>IronPDF Enterprise License</td><td>1</td><td>$499.00</td><td>$499.00</td></tr>
<tr><td>Priority Support (1 year)</td><td>1</td><td>$199.00</td><td>$199.00</td></tr>
</table>
<p style="text-align:right; margin-top:16px;"><strong>Total: $698.00</strong></p>
</div>
</body>
</html>`;
// Generate the PDF from the HTML string
const pdf = await PdfDocument.fromHtml(htmlContent);
await pdf.saveAs("invoice.pdf");
```
`PdfDocument`实例。 调用`.then()`处理程序。 Chromium引擎在捕获输出之前处理字体加载、外部样式表和资产解析。 更多模式,请参阅[HTML字符串到PDF示例](https://ironpdf.com/nodejs/examples/using-html-to-create-a-pdf/)。
### 如何从HTML文件创建PDF?
使用`.html`文件。 这种方法适用于模板化文档,其中HTML与应用程序逻辑分开维护。
```nodejs
import { PdfDocument } from "@ironsoftware/ironpdf";
// Load an HTML file and render it as a PDF
const pdf = await PdfDocument.fromFile("./templates/report-template.html");
await pdf.saveAs("./output/report.pdf");
```
渲染器从HTML文件的目录解析相对资产路径,因此本地CSS和图像引用可以在没有额外配置的情况下工作。 有关其他选项,包括如何覆盖资产解析的基本URL,请参阅[HTML文件到PDF示例](https://ironpdf.com/nodejs/examples/file-to-pdf/)。
### 如何从URL生成PDF?
使用`PdfDocument.fromUrl()`将实时网页渲染为PDF。 渲染器加载页面作为完整的浏览器会话,执行JavaScript,应用CSS,等待动态内容后再捕获输出。
```nodejs
import { PdfDocument } from "@ironsoftware/ironpdf";
// Render a live webpage to PDF
const pdf = await PdfDocument.fromUrl("https://ironpdf.com/nodejs/");
await pdf.saveAs("ironpdf-homepage.pdf");
```
对于通过JavaScript异步加载内容的页面,将其与`renderDelay`选项(以毫秒为单位)结合使用,以允许在捕获之前增加额外时间。 [URL到PDF示例](https://ironpdf.com/nodejs/examples/converting-a-url-to-a-pdf/)展示了延迟配置和身份验证头。
<hr />
## 如何配置PDF输出设置?
将配置对象作为第二个参数传递给`PdfDocument.fromUrl()`。 配置对象接受纸张大小、页边距、方向和渲染选项。
```nodejs
import { PdfDocument, PdfPaperSize } from "@ironsoftware/ironpdf";
const config = {
paperSize: PdfPaperSize.A4,
marginTop: 25,
marginBottom: 25,
marginLeft: 20,
marginRight: 20,
landscape: false,
printBackground: true,
};
const pdf = await PdfDocument.fromHtml("<h1>Configured PDF</h1>", config);
await pdf.saveAs("configured-output.pdf");
```
关键配置选项包括:
- `PdfPaperSize`枚举值(A4,Letter,Legal和[自定义尺寸](https://ironpdf.com/nodejs/examples/custom-pdf-paper-size/))
- `landscape`: 为横向[页面方向](https://ironpdf.com/nodejs/examples/pdf-page-orientation/)设置`true`
- `printBackground`: 包含CSS背景颜色和图像
- `marginTop/Bottom/Left/Right`: 以毫米为单位的页面边距
- `renderDelay`: 为JavaScript繁重的页面在捕获之前等待的毫秒数
### 如何向PDF添加页眉和页脚?
通过在配置对象中提供`htmlFooter`属性添加页眉和页脚。 两者都接受完整的HTML字符串,从而实现带有页码、日期和动态文本的样式内容。
```nodejs
import { PdfDocument } from "@ironsoftware/ironpdf";
const config = {
htmlHeader: {
htmlFragment: "<div style='text-align:center; font-size:12px; color:#666;'>Quarterly Report - Confidential</div>",
dividerLine: true,
},
htmlFooter: {
htmlFragment: "<div style='text-align:right; font-size:10px;'>Page {page} of {total-pages}</div>",
dividerLine: true,
},
};
const pdf = await PdfDocument.fromHtml("<h1>Q3 Financial Summary</h1><p>See attached tables.</p>", config);
await pdf.saveAs("report-with-headers.pdf");
```
在页脚HTML中使用`{total-pages}`令牌; IronPDF在渲染时替换正确的值。有关更多页眉和页脚模式,包括[HTML页眉和页脚](https://ironpdf.com/nodejs/examples/html-headers-and-footers/)以及[高级页眉技术](https://ironpdf.com/nodejs/examples/adding-headers-and-footers-advanced/),请参见链接示例。
<hr />
## 如何向PDF添加安全性和元数据?
使用`PdfDocument`安全方法对生成的PDF应用[密码保护和加密](https://ironpdf.com/nodejs/examples/security-and-metadata/)。 该库支持所有者和用户密码,提供打印、复制和编辑的细粒度权限控制。
```nodejs
import { PdfDocument } from "@ironsoftware/ironpdf";
const pdf = await PdfDocument.fromHtml("<h1>Confidential Document</h1>");
// Apply password protection with granular permissions
await pdf.securePdf({
userPassword: "view-password",
ownerPassword: "admin-password",
allowUserAnnotations: false,
allowUserPrinting: true,
allowUserCopyPasteContent: false,
});
await pdf.saveAs("secured-document.pdf");
```
[加密和解密](https://ironpdf.com/nodejs/examples/encryption-and-decryption/)在应用密码时默认使用AES 256位加密。 对于文档认证工作流,IronPDF还支持使用X.509证书的[数字签名](https://ironpdf.com/nodejs/examples/digitally-sign-a-pdf/)。
[[t:(对于需要长期存档合规性文件,使用`PdfDocument.fromHtml()`,然后使用PDF/A转换方法。 IronPDF支持[PDF/A合规](https://ironpdf.com/nodejs/examples/pdfa/)和[PDF/UA可访问性标准](https://ironpdf.com/nodejs/examples/pdfua/)。)]
)]]
<hr />
## 如何合并和操作现有的PDF?
`PdfDocument`提供合并、拆分和修改现有PDF文件的方法。 使用`PdfDocument.fromFile()`加载现有PDF,并使用操作方法来添加或删除页面、印章内容或替换文本。
```nodejs
import { PdfDocument } from "@ironsoftware/ironpdf";
// Merge two PDF files into one
const merged = await PdfDocument.mergePdf([
await PdfDocument.fromFile("./report-part1.pdf"),
await PdfDocument.fromFile("./report-part2.pdf"),
]);
await merged.saveAs("./complete-report.pdf");
```
`PdfDocument`实例数组,并返回一个合并后的文档。 页面顺序遵循数组顺序,因此输出保留输入文件的顺序。
其他常见的操作操作:
- [使用`removePages()`从PDF中删除页面](https://ironpdf.com/nodejs/examples/remove-page-from-pdf/)
- 在现有文档上[盖章HTML内容](https://ironpdf.com/nodejs/examples/stamping-new-content/)
- 跨所有页面[查找和替换文本](https://ironpdf.com/nodejs/examples/replace-text-in-pdf/)
- 从PDF[提取文本](https://ironpdf.com/nodejs/examples/reading-pdf-text/)用于索引或处理
对于高量使用场景,[多线程PDF生成](https://ironpdf.com/nodejs/examples/threading/)可让您并行处理多个文档。 [PDF压缩](https://ironpdf.com/nodejs/examples/pdf-compression/)降低文件存储和传输的大小。
<hr />
## 如何为复杂内容(如图表和Angular页面)生成PDF?
IronPDF使用完整的Chromium浏览器会话渲染页面,这意味着生成图表、图形或数据可视化的JavaScript库正确渲染,包括[JavaScript图表库](https://ironpdf.com/nodejs/examples/js-charts-to-pdf/)。 使用像Angular这样的框架构建的单页应用程序也可以通过[Angular到PDF示例](https://ironpdf.com/nodejs/examples/angular-to-pdf/)进行干净转换。
对于包含大量Unicode或多语言输出的文档,IronPDF处理[Unicode和国际字符集](https://ironpdf.com/nodejs/examples/unicode/)而无需额外配置。 [Google Fonts集成示例](https://ironpdf.com/nodejs/examples/google-fonts-htmltopdf/)展示了如何在渲染的HTML中加载网页字体,以在输出PDF中保持一致的排版。
[[i:(IronPDF的Chromium渲染器在捕获PDF之前执行JavaScript。 如果您的图表库或SPA需要在DOM加载后渲染数据的额外时间,请设置`renderDelay`(以毫秒为单位),以给予页面足够的完全渲染时间。)]]
<hr />
## 在Node.js中生成PDF的下一步是什么?
本指南涵盖了IronPDF的核心工作流程:安装库,从HTML字符串、文件和URL生成PDF,配置输出设置,添加页眉和页脚,应用安全策略以及操作现有PDF。
要继续,请尝试完整的[HTML到PDF教程](https://ironpdf.com/nodejs/tutorials/html-to-pdf/)以深入了解呈现选项,或浏览[API参考](https://ironpdf.com/nodejs/object-reference/api/)以获取完整的`PdfDocument`方法和配置属性列表。
[开始免费试用](trial-license)以生成无水印的PDF,或[查看许可选项](licensing)以进行生产部署。
Ask ChatGPT about this page
Ask Gemini about this page
Ask Perplexity about this page
在Node.js中以编程方式创建PDF文件需要一个能够精确处理HTML渲染的库,支持现代CSS,并且能够与Node的异步模式无缝集成。 IronPDF 使用基于Chromium的渲染引擎将HTML内容转换为与Chrome的打印输出匹配的PDF,支持完整的CSS、内联JavaScript和开箱即用的响应布局。
本指南涵盖了完整的工作流程:安装、从HTML字符串、HTML文件和URL生成PDF、配置输出选项,并应用企业特性如页眉、页脚、数字签名和加密。
通过npm安装IronPDF: npm install @ironsoftware/ironpdf
从PdfDocument
用您的HTML内容调用PdfDocument.fromHtml()
用.saveAs()将PDF文件写入磁盘
import { PdfDocument } from "@ironsoftware/ironpdf" ;
const pdf = await PdfDocument .fromHtml( "<h1>Hello, PDF!</h1><p>Generated with IronPDF.</p>" );
await pdf.saveAs( "output.pdf" );
import { PdfDocument } from "@ironsoftware/ironpdf";
const pdf = await PdfDocument.fromHtml("<h1>Hello, PDF!</h1><p>Generated with IronPDF.</p>");
await pdf.saveAs("output.pdf");
JavaScript
在生产运行前配置您的平台的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/ironpdf
SHELL
IronPDF for Node.js依赖于IronPDF引擎二进制文件,该文件负责底层的基于Chromium的渲染。 引擎在首次运行时自动下载,但您可以预先安装特定平台的包以避免运行时下载。 这在受限网络环境或基于Docker的CI管道中非常有用:
有效的许可证密钥可以去除生成的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之前解析所有资源。
import { PdfDocument } from "@ironsoftware/ironpdf" ;
const htmlContent = `
<!DOCTYPE html>
<html>
<head>
<style>
body { font-family: Arial, sans-serif; margin: 0; padding: 0; }
.header { background: #2b4c8c; color: white; padding: 24px 32px; }
.header h1 { margin: 0; font-size: 22px; }
.body { padding: 32px; }
table { width: 100%; border-collapse: collapse; margin-top: 16px; }
th { background: #f0f4fb; text-align: left; padding: 8px 12px; }
td { padding: 8px 12px; border-bottom: 1px solid #e0e0e0; }
</style>
</head>
<body>
<div class="header"><h1>Invoice #INV-2025-0042</h1></div>
<div class="body">
<p>Date: ${ new Date() . toLocaleDateString() } </p>
<table>
<tr><th>Item</th><th>Qty</th><th>Unit Price</th><th>Total</th></tr>
<tr><td>IronPDF Enterprise License</td><td>1</td><td>$499.00</td><td>$499.00</td></tr>
<tr><td>Priority Support (1 year)</td><td>1</td><td>$199.00</td><td>$199.00</td></tr>
</table>
<p style="text-align:right; margin-top:16px;"><strong>Total: $698.00</strong></p>
</div>
</body>
</html>` ;
// Generate the PDF from the HTML string
const pdf = await PdfDocument .fromHtml(htmlContent);
await pdf.saveAs( "invoice.pdf" );
import { PdfDocument } from "@ironsoftware/ironpdf";
const htmlContent = `
<!DOCTYPE html>
<html>
<head>
<style>
body { font-family: Arial, sans-serif; margin: 0; padding: 0; }
.header { background: #2b4c8c; color: white; padding: 24px 32px; }
.header h1 { margin: 0; font-size: 22px; }
.body { padding: 32px; }
table { width: 100%; border-collapse: collapse; margin-top: 16px; }
th { background: #f0f4fb; text-align: left; padding: 8px 12px; }
td { padding: 8px 12px; border-bottom: 1px solid #e0e0e0; }
</style>
</head>
<body>
<div class="header"><h1>Invoice #INV-2025-0042</h1></div>
<div class="body">
<p>Date: ${new Date().toLocaleDateString()}</p>
<table>
<tr><th>Item</th><th>Qty</th><th>Unit Price</th><th>Total</th></tr>
<tr><td>IronPDF Enterprise License</td><td>1</td><td>$499.00</td><td>$499.00</td></tr>
<tr><td>Priority Support (1 year)</td><td>1</td><td>$199.00</td><td>$199.00</td></tr>
</table>
<p style="text-align:right; margin-top:16px;"><strong>Total: $698.00</strong></p>
</div>
</body>
</html>`;
// Generate the PDF from the HTML string
const pdf = await PdfDocument.fromHtml(htmlContent);
await pdf.saveAs("invoice.pdf");
JavaScript
PdfDocument实例。 调用.then()处理程序。 Chromium引擎在捕获输出之前处理字体加载、外部样式表和资产解析。 更多模式,请参阅HTML字符串到PDF示例 。
如何从HTML文件创建PDF?
使用.html文件。 这种方法适用于模板化文档,其中HTML与应用程序逻辑分开维护。
import { PdfDocument } from "@ironsoftware/ironpdf" ;
// Load an HTML file and render it as a PDF
const pdf = await PdfDocument .fromFile( "./templates/report-template.html" );
await pdf.saveAs( "./output/report.pdf" );
import { PdfDocument } from "@ironsoftware/ironpdf";
// Load an HTML file and render it as a PDF
const pdf = await PdfDocument.fromFile("./templates/report-template.html");
await pdf.saveAs("./output/report.pdf");
JavaScript
渲染器从HTML文件的目录解析相对资产路径,因此本地CSS和图像引用可以在没有额外配置的情况下工作。 有关其他选项,包括如何覆盖资产解析的基本URL,请参阅HTML文件到PDF示例 。
如何从URL生成PDF?
使用PdfDocument.fromUrl()将实时网页渲染为PDF。 渲染器加载页面作为完整的浏览器会话,执行JavaScript,应用CSS,等待动态内容后再捕获输出。
import { PdfDocument } from "@ironsoftware/ironpdf" ;
// Render a live webpage to PDF
const pdf = await PdfDocument .fromUrl( "https://ironpdf.com/nodejs/" );
await pdf.saveAs( "ironpdf-homepage.pdf" );
import { PdfDocument } from "@ironsoftware/ironpdf";
// Render a live webpage to PDF
const pdf = await PdfDocument.fromUrl("https://ironpdf.com/nodejs/");
await pdf.saveAs("ironpdf-homepage.pdf");
JavaScript
对于通过JavaScript异步加载内容的页面,将其与renderDelay选项(以毫秒为单位)结合使用,以允许在捕获之前增加额外时间。 URL到PDF示例 展示了延迟配置和身份验证头。
如何配置PDF输出设置?
将配置对象作为第二个参数传递给PdfDocument.fromUrl()。 配置对象接受纸张大小、页边距、方向和渲染选项。
import { PdfDocument , PdfPaperSize } from "@ironsoftware/ironpdf" ;
const config = {
paperSize: PdfPaperSize . A4 ,
marginTop: 25 ,
marginBottom: 25 ,
marginLeft: 20 ,
marginRight: 20 ,
landscape: false ,
printBackground: true ,
};
const pdf = await PdfDocument .fromHtml( "<h1>Configured PDF</h1>" , config);
await pdf.saveAs( "configured-output.pdf" );
import { PdfDocument, PdfPaperSize } from "@ironsoftware/ironpdf";
const config = {
paperSize: PdfPaperSize.A4,
marginTop: 25,
marginBottom: 25,
marginLeft: 20,
marginRight: 20,
landscape: false,
printBackground: true,
};
const pdf = await PdfDocument.fromHtml("<h1>Configured PDF</h1>", config);
await pdf.saveAs("configured-output.pdf");
JavaScript
关键配置选项包括:
PdfPaperSize枚举值(A4,Letter,Legal和自定义尺寸 )
landscape: 为横向页面方向 设置true
printBackground: 包含CSS背景颜色和图像
marginTop/Bottom/Left/Right: 以毫米为单位的页面边距
renderDelay: 为JavaScript繁重的页面在捕获之前等待的毫秒数
如何向PDF添加页眉和页脚?
通过在配置对象中提供htmlFooter属性添加页眉和页脚。 两者都接受完整的HTML字符串,从而实现带有页码、日期和动态文本的样式内容。
import { PdfDocument } from "@ironsoftware/ironpdf" ;
const config = {
htmlHeader: {
htmlFragment: "<div style='text-align:center; font-size:12px; color:#666;'>Quarterly Report - Confidential</div>" ,
dividerLine: true ,
},
htmlFooter: {
htmlFragment: "<div style='text-align:right; font-size:10px;'>Page {page} of {total-pages}</div>" ,
dividerLine: true ,
},
};
const pdf = await PdfDocument .fromHtml( "<h1>Q3 Financial Summary</h1><p>See attached tables.</p>" , config);
await pdf.saveAs( "report-with-headers.pdf" );
import { PdfDocument } from "@ironsoftware/ironpdf";
const config = {
htmlHeader: {
htmlFragment: "<div style='text-align:center; font-size:12px; color:#666;'>Quarterly Report - Confidential</div>",
dividerLine: true,
},
htmlFooter: {
htmlFragment: "<div style='text-align:right; font-size:10px;'>Page {page} of {total-pages}</div>",
dividerLine: true,
},
};
const pdf = await PdfDocument.fromHtml("<h1>Q3 Financial Summary</h1><p>See attached tables.</p>", config);
await pdf.saveAs("report-with-headers.pdf");
JavaScript
在页脚HTML中使用{total-pages}令牌; IronPDF在渲染时替换正确的值。有关更多页眉和页脚模式,包括HTML页眉和页脚 以及高级页眉技术 ,请参见链接示例。
如何向PDF添加安全性和元数据?
使用PdfDocument安全方法对生成的PDF应用密码保护和加密 。 该库支持所有者和用户密码,提供打印、复制和编辑的细粒度权限控制。
import { PdfDocument } from "@ironsoftware/ironpdf" ;
const pdf = await PdfDocument .fromHtml( "<h1>Confidential Document</h1>" );
// Apply password protection with granular permissions
await pdf.securePdf({
userPassword: "view-password" ,
ownerPassword: "admin-password" ,
allowUserAnnotations: false ,
allowUserPrinting: true ,
allowUserCopyPasteContent: false ,
});
await pdf.saveAs( "secured-document.pdf" );
import { PdfDocument } from "@ironsoftware/ironpdf";
const pdf = await PdfDocument.fromHtml("<h1>Confidential Document</h1>");
// Apply password protection with granular permissions
await pdf.securePdf({
userPassword: "view-password",
ownerPassword: "admin-password",
allowUserAnnotations: false,
allowUserPrinting: true,
allowUserCopyPasteContent: false,
});
await pdf.saveAs("secured-document.pdf");
JavaScript
加密和解密 在应用密码时默认使用AES 256位加密。 对于文档认证工作流,IronPDF还支持使用X.509证书的数字签名 。
对于需要长期存档合规性文件,使用PdfDocument.fromHtml(),然后使用PDF/A转换方法。 IronPDF支持PDF/A合规 和PDF/UA可访问性标准 。)]
如何合并和操作现有的PDF?
PdfDocument提供合并、拆分和修改现有PDF文件的方法。 使用PdfDocument.fromFile()加载现有PDF,并使用操作方法来添加或删除页面、印章内容或替换文本。
import { PdfDocument } from "@ironsoftware/ironpdf" ;
// Merge two PDF files into one
const merged = await PdfDocument .mergePdf([
await PdfDocument .fromFile( "./report-part1.pdf" ),
await PdfDocument .fromFile( "./report-part2.pdf" ),
]);
await merged.saveAs( "./complete-report.pdf" );
import { PdfDocument } from "@ironsoftware/ironpdf";
// Merge two PDF files into one
const merged = await PdfDocument.mergePdf([
await PdfDocument.fromFile("./report-part1.pdf"),
await PdfDocument.fromFile("./report-part2.pdf"),
]);
await merged.saveAs("./complete-report.pdf");
JavaScript
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,或查看许可选项 以进行生产部署。
常见问题解答 通过npm install @ironsoftware/ironpdf安装IronPDF,然后使用您的HTML字符串调用PdfDocument.fromHtml(),并使用saveAs()保存结果。该库自动处理所有渲染。
在项目目录中运行npm install @ironsoftware/ironpdf。IronPDF引擎二进制文件在首次使用时会自动下载。对于离线或CI环境,请单独安装特定平台的引擎包,例如@ironsoftware/ironpdf-engine-linux-x64。
是的。IronPDF使用基于Chromium的渲染引擎,将所有CSS样式、外部字体和JavaScript执行保留在HTML到PDF转换中。输出符合Chrome的打印预览行为。
IronPDF支持数字签名、AES 256位加密、具有细粒度权限的密码保护、自定义页眉和页脚带页码标记、PDF合并、页面删除、HTML加印、文本提取、PDF/A合规性和多线程生成。
使用PdfDocument.fromFile('./path/to/template.html')。渲染器将解析HTML文件目录中的相对资源路径,因此无需额外配置,本地CSS和图像引用可以正常工作。
可以。使用PdfDocument.fromFile()加载现有PDF,并使用文本提取方法读取任意页面的内容。IronPDF支持创建新PDF文件和处理现有文档。
是的。Chromium渲染器捕获PDF之前会执行JavaScript。对于异步加载内容的页面,请在毫秒中设置renderDelay选项,为页面捕获前提供额外时间。
Yes, IronPDF supports applying digital signatures to PDFs using X.509 certificates. This feature is useful for document authentication and secure workflows.
IronPDF uses a full Chromium browser session to render pages, which means JavaScript chart libraries and frameworks like Angular are fully supported. This allows charts, graphs, and other complex visualizations to render correctly in the output PDFs.
IronPDF requires Node.js 12.0 or higher and runs on Windows, Linux, macOS, and Docker environments. It supports both x64 and ARM64 architectures, making it suitable for various deployment scenarios including local development and cloud environments.
技术作家
Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。
...
阅读更多