四时宝库

程序员的知识宝库

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

借助 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,您可以轻松处理复杂的文档。 此外,它可以促进向用户交付文档,并使它们更易于共享和打印。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接