借助 PDFKit 的强大功能,只需使用几个简单的命令即可制作精美的 PDF 文档。
PDFKit 是一个 Node.js 库,可让开发人员轻松创建和使用 PDF 文件。 它提供了简单而有效的 API,用于生成 PDF 并向其中添加不同类型的内容,例如文本、图像和形状。
了解如何使用 PDF Kit 在 Node.js 中创建 PDF。
设置 PDFkit
您必须先在计算机上安装 Node.js 和 npm(Node.js 包管理器)。
通过运行以下终端命令确保您已安装这些工具:
node -v
npm -v
要开始在 Node.js 项目中使用 PDFKit,请运行以下 npm 命令安装:
npm install pdfkit
此命令将安装 PDFKit 并将其添加到项目的依赖项中。
使用 PDFKit 创建 PDF 文档
要使用 PDFKit 创建 PDF 文档,需要脚本文件中引入pdfkit 包和 fs(文件系统)模块:
const PDFDocument = require('pdfkit');
const fs = require('fs');
接下来,创建 PDFDocument 类的新实例。 这个类代表一个 PDF 文件:
const doc = new PDFDocument();
创建的实例是一个可读流,这意味着您可以使用 pipe() 方法将其内容保存到文件中。
为此,将 doc 实例通过管道传输到由 fs.createWriteStream 创建的可写流中:
doc.pipe(fs.createWriteStream('MyPDFDoc.pdf'));
createWriteStream 方法将 PDF 文件的内容保存到本地文件系统上的指定位置。
上面的代码块会将生成的 PDF 文件保存到您当前的工作目录,名称为 MyPDFDoc.pdf。
在向 PDF 添加内容后始终结束流很重要。 您可以使用以下命令执行此操作:
doc.end();
现在运行node.js命令 node [脚本名称] ,在当前工作目录中创建 PDF 文件 MyPDFDoc.pdf。
使用 PDFKit 添加文本
在通过管道保存它之前,您可以进行各种更改。 使用PDFKit向文档添加文本很简单,而且包含许多选项来自定义输出的显示。
要向文档添加文本,只需调用 text() 方法并将要添加的文本作为参数传递给这个函数:
doc.text("Coding is Easy!")
当 PDFKIT 向文档添加文本时,它会跟踪该文本的当前 X 和 Y 位置。 因此,无论何时调用 text 方法,PDFKit 都会在前一行下方添加一个新行。
但是,通过提供 X 和 Y 坐标,您可以更改其位置:
doc.text('Coding is Easy!', 100, 100)
要向上或向下移动一行,请使用文本应移动的行数调用 moveDown 或 moveUp 方法:
doc.moveDown(3);
doc.moveUp();
默认情况下,在不传递参数的情况下,调用方法都会导致它仅移动一行。
PDFKit 支持 PDF 格式定义的所有 14 种标准字体。 PDFKit 文本文档有这些标准字体的完整列表。
使用 font() 方法指定所需的字体。 只需将相应的字体名称作为字符串传入即可:
doc.font('Times-Roman')
.text('Coding is Easy!');
您还可以分别使用 fontSize() 和 fillColor() 方法更改字体大小和文本颜色。
例如:
// 这会将文本颜色更改为红色并将其字体大小设置为 8
doc.fillColor('red')
.fontSize(8)
.text('Coding is Easy!');
使用 PDFKit 添加图像
要将图像添加到 PDF 文档,只需将其路径传递给文档实例上的image方法:
doc.image('path/to/image.jpeg')
PDFKit 允许您添加 JPEG 或 PNG 格式的图像。
默认情况下,PDFKit 将以其原始大小插入图像。 您可以通过提供包含键值对的对象作为 image() 方法的参数来更改图像的尺寸。 您可以指定宽度、高度以及水平和垂直对齐方式。
例如:
// 指定宽度
doc.image('path/to/image.jpg', { width: 300 });
// 指定宽度和高度
doc.image('path/to/image.jpg', { width: 300, height:200 })
使用 PDFKit 添加页面
要向 PDF 文档添加新页面,只需调用文档实例的 addPage 方法:
doc.addPage()
要在每次添加新页面时自动添加内容,请在文档实例上使用 pageAdded 事件。
例如:
doc.on('pageAdded', () => doc.text("Coding is Easy!"));
PDFKit 允许您在制作新文档或向现有文档添加新页面时指定页面尺寸。 PDFKit 纸张文档解释了几种预定义的页面大小。
要使用任何这些预定义的页面大小,请将对象传递给 PDFDocument 构造函数或 addPage() 方法。 使用 size 属性指定一个字符串,它是纸张尺寸的名称。
例如:
// 构造函数设置
const doc = new PDFDocument({ size: 'A5' });
// addPage 函数中设置
doc.addPage({ size: 'A7' });
将此选项对象传递给 PDFDocument 构造函数可设置整个文档的默认页面大小。 然后,您可以通过将不同的值传递给 addPage 方法来覆盖此默认值。
您可以在添加页面时通过将对象传递给 margins 属性来设置页边距。
margins 属性采用一个对象,该对象具有代表每个边距的 top、bottom、left 和 right 属性。
例如:
// 设置不同的边距
doc.addPage({
margins: {
top: 72,
bottom: 72,
left: 50,
right: 50
}
});
此代码将上下边距设置为 72 ,将左右边距设置为 50 。 请注意,PDFKit 创建的文档的默认边距是所有边上的 1 英寸(72 pt)边距。
要将所有上、下、左、右边距设置为相同的值,只需将一个具有 margin 属性的对象传递给 addPage 方法:
doc.addPage({ margin: 60 }) // 每个边设置边距为60
在 Node.js 中使用 PDFKit 创建 PDF 的优势
PDFKit 使您能够从 Node.js 应用程序生成标准和受支持的文档。 使用 PDFKit,您可以轻松处理复杂的文档。 此外,它可以促进向用户交付文档,并使它们更易于共享和打印。