📜  如何在 Node.js 中创建 PDF 文档?(1)

📅  最后修改于: 2023-12-03 15:24:17.931000             🧑  作者: Mango

如何在 Node.js 中创建 PDF 文档?

在 Node.js 中创建 PDF 文档可以使用多种不同的库和工具。本文将介绍两种不同的方式。

使用 PDFKit

PDFKit 是一个流式的 PDF 生成器,可以用于 Node.js 应用程序中。它使用 Canvas API 来绘制 PDF 内容,并将其转换为 PDF 文件。

首先,使用 npm 安装 PDFKit。

npm install pdfkit

然后创建一个 PDF 文档:

const PDFDocument = require('pdfkit');
const fs = require('fs');

const doc = new PDFDocument();
doc.pipe(fs.createWriteStream('output.pdf'));

doc.text('Hello World!');
doc.end();

使用 PDFDocument 类创建一个 PDF 文档实例,并将其管道连接到文件系统写入流。然后可以使用 text 方法添加文本内容。

PDFKit 还提供了其他方法来添加更多类型的内容,例如图像,表格,列表等等。更多信息可以在 官方文档 中查找。

使用 Puppeteer

Puppeteer 是一个 Node.js 库,它提供了一种可以操作 headless Chrome 的方法。使用 Puppeteer,可以生成 PDF 文件,而不需要安装任何第三方库。

首先,使用 npm 安装 Puppeteer。

npm install puppeteer

然后创建一个 PDF 文档:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://www.google.com', {waitUntil: 'networkidle2'});
  await page.pdf({path: 'output.pdf', format: 'A4'});
  await browser.close();
})();

使用 puppeteer.launch 方法启动一个 headless Chrome 实例,并使用 browser.newPage 创建一个新页面。然后,使用 page.goto 方法导航到指定的 URL。在该页面加载完成之后,调用 page.pdf 方法生成 PDF 文件。

Puppeteer 还有更多功能,例如截屏,自动化测试等等。更多信息可以在 官方文档 中查找。

总结

本文介绍了两种不同的方式,在 Node.js 中创建 PDF 文档。PDFKit 提供了一个流式的 API,使得添加内容变得非常容易。Puppeteer 利用 headless Chrome 实例提供了更多功能,例如自动化测试。选择哪种方式取决于具体的需求。