# @foliojs-fork/pdfkit 中文文档

规范地址：https://npmcn.com/package/%40foliojs-fork/pdfkit/

版本：0\.15\.3
npm 元数据更新时间：2025-01-01T11:28:42.952Z
中文译文更新时间：2026-11-15T04:04:45.916Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40foliojs-fork/pdfkit
原文对照：https://npmcn.com/package/%40foliojs-fork/pdfkit/?lang=original
项目主页：http://pdfkit.org/
源码仓库：https://github.com/foliojs-fork/pdfkit

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：2 MB，24 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：未声明
- 运行依赖：5 个
- 首次发布：2021-07-02T09:08:20.088Z
- 最新版本发布：2025-01-01T11:28:42.751Z
- 近 30 天下载量：7534150（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：8（近 12 个月 0 个）

## 中文简介

一个用于节点.js的 PDF 生成库

## 安装

```sh
npm install @foliojs-fork/pdfkit
```

也可以使用：`pnpm add @foliojs-fork/pdfkit`、`yarn add @foliojs-fork/pdfkit`、`bun add @foliojs-fork/pdfkit`

## README

# PDFKit 叉线 [![npm](https://img.shields.io/npm/v/@foliojs-fork/pdfkit.svg?colorB=0E7FBF)](https://www.npmjs.com/package/@foliojs-fork/pdfkit)

一个用于节点和浏览器的JavaScript PDF生成库.

## 说明

PDFKit 是一个用于节点和浏览器的 PDF 文件生成库,它使创建复杂、多页、可打印 文档。 API包含可连锁性,既包括低级功能,也包括对更高层次的抽象 级别功能。 PDFKit API的设计很简单,因此生成复杂的文档往往像 几个函数调用.

检查一些 [文献和实例](http://pdfkit.org/docs/getting_started.html) 亲眼看看! 您也可以将指南读作 [自生成的 PDF](http://pdfkit.org/docs/guide.pdf) 中显示实例输出. 如果你想看看它是如何生成的, 请检查 README在 [文档](https://github.com/foliojs/pdfkit/tree/master/docs) 文件夹.

您也可以尝试 PDFKit 的交互式浏览演示 [这里](http://pdfkit.org/demo/browser.html)。 。 。 .

## 为什么是叉子?

因为PDFKit需要最新的这些依赖:

-   [foliojs-fork/fontkit (法语)](https://github.com/foliojs-fork/fontkit) (见 [为什么是叉子?](https://github.com/foliojs-fork/fontkit#why-fork)(中文(简体) )
-   [foliojs-fork/ 断线](https://github.com/foliojs-fork/linebreak) (见 [为什么是叉子?](https://github.com/foliojs-fork/linebreak#why-fork)(中文(简体) )

## 安装

安装使用 [无](http://npmjs.org/) 软件包管理器。 安装 npm 后只需输入以下命令 .

```
npm install @foliojs-fork/pdfkit
```

## 特征

-   矢量图形
    -   HTML5 类似画布的 API
    -   路径操作
    -   简单路径创建的 SVG 路径解析器
    -   转换
    -   线性梯度和射线梯度
-   文本
    -   行包( 有软连字符识别)
    -   文本对齐
    -   项目列表
-   字体嵌入
    -   支持 TrueType (.ttf), OpenType (.otf), WOFF, WOFF2, TrueType Collections (.ttc), 和 Datafork TrueType (.dfont) 字体
    -   字体子设置
    -   见 [字体kit](http://github.com/foliojs/fontkit) 需要更多关于高级 glyph 版式支持的详情.
-   图像嵌入
    -   支持JPEG和PNG文件(包括有索引的PNG文件,以及透明化的PNG文件)
-   说明
    -   链接
    -   页:1
    -   要点
    -   2\. 强调
    -   包括:.
-   缩写
-   大纲
-   PDF 安全
    -   加密
    -   访问权限(打印、复制、修改、注释、表格填充、内容可访问性、文件组装)
-   无障碍支持(标记内容、逻辑结构、标记的PDF、PDF/UA)

## 马上就来!

-   图案填充
-   创建表格和设置内容的高级API
-   更多性能优化
-   更棒的,也许你写的! 请叉开这个寄存器 并发送我拉请求.

## 示例

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

// Create a document
const doc = new PDFDocument();

// Pipe its output somewhere, like to a file or HTTP response
// See below for browser usage
doc.pipe(fs.createWriteStream('output.pdf'));

// Embed a font, set the font size, and render some text
doc
  .font('fonts/PalatinoBold.ttf')
  .fontSize(25)
  .text('Some text with an embedded font!', 100, 100);

// Add an image, constrain it to a given size, and center it vertically and horizontally
doc.image('path/to/image.png', {
  fit: [250, 300],
  align: 'center',
  valign: 'center'
});

// Add another page
doc
  .addPage()
  .fontSize(25)
  .text('Here is some vector graphics...', 100, 100);

// Draw a triangle
doc
  .save()
  .moveTo(100, 150)
  .lineTo(100, 250)
  .lineTo(200, 250)
  .fill('#FF3300');

// Apply some transforms and render an SVG path with the 'even-odd' fill rule
doc
  .scale(0.6)
  .translate(470, -380)
  .path('M 250,75 L 323,301 131,161 369,161 177,301 z')
  .fill('red', 'even-odd')
  .restore();

// Add some text with annotations
doc
  .addPage()
  .fillColor('blue')
  .text('Here is a link!', 100, 100)
  .underline(100, 100, 160, 27, { color: '#0000FF' })
  .link(100, 100, 160, 27, 'http://google.com/');

// Finalize PDF file
doc.end();
```

[此示例的 PDF 输出](http://pdfkit.org/demo/out.pdf) (加上几个添加) 显示 PDFKit 的能动性——生产 代码量很小的复杂文档。 更多,请看 `demo` 文件夹和 [PDFKit 编程指南](http://pdfkit.org/docs/getting_started.html)。 。 。 .

## 浏览器使用

在浏览器中使用PDFKit有三种方法:

-   使用 [浏览器](http://browserify.org/)演示 [源代码](https://npmcn.com/package/%40foliojs-fork/pdfkit/demo/browser.js) 财务报告和审定财务报表 [构建脚本](https://github.com/foliojs/pdfkit/blob/master/package.json#L56)
-   使用 [网络软件包](https://webpack.js.org/)。见 [完整实例](https://npmcn.com/package/%40foliojs-fork/pdfkit/examples/webpack)。 。 。 .
-   使用预建版本 。 分配为 `pdfkit.standalone.js` 文档中 [释放](https://github.com/foliojs/pdfkit/releases) 或包件中 `js` 文件夹.

除了PDFKit,你还需要一个地方将输出流到. HTML5 有一个 [块](https://developer.mozilla.org/en-US/docs/Web/API/Blob) 可用于存储二进制数据的对象,以及 获取此数据的 URL 以显示 Iframe 中的 PDF 输出, 或上传到服务器等 。 为了 从 PDFKit 的输出中获取 Blob, 您可以使用 [双流](https://github.com/devongovett/blob-stream) 模块.

以下示例使用浏览器或网络包来加载 `PDFKit` 财务报告和审定财务报表 `blob-stream`。见 [这里](https://codepen.io/blikblum/pen/gJNWMg?editors=1010) 财务报告和审定财务报表 [这里](https://codepen.io/blikblum/pen/YboVNq?editors=1010) 实例 预建版本的使用.

```javascript
// require dependencies
const PDFDocument = require('pdfkit');
const blobStream = require('blob-stream');

// create a document the same way as above
const doc = new PDFDocument();

// pipe the document to a blob
const stream = doc.pipe(blobStream());

// add your content to the document here, as usual

// get a blob when you are done
doc.end();
stream.on('finish', function() {
  // get a blob you can do whatever you like with
  const blob = stream.toBlob('application/pdf');

  // or get a blob URL for display in the browser
  const url = stream.toBlobURL('application/pdf');
  iframe.src = url;
});
```

您可以看到 PDFKit 的交互式浏览演示 [这里](http://pdfkit.org/demo/browser.html)。 。 。 .

请注意,为了浏览使用 PDFKit 的工程,您需要安装 `brfs` 模块为 npm, 用于将内置字体数据装入软件包。 它被列为一个 `devDependency` 内 PDFKit 软件 `package.json`,所以它不是默认为节点用户安装的. 如果您忘记安装, 浏览会打印出一个错误消息 .

## 文档

关于完整的API文档和更多实例,请参见: [PDFKit 网站](http://pdfkit.org/)。 。 。 .

## 许可证

PDFKit根据麻省理工学院的许可提供.

## 常见问题

### @foliojs-fork/pdfkit 是什么？

一个用于节点\.js的 PDF 生成库

### 如何安装 @foliojs-fork/pdfkit？

在项目目录运行 npm install @foliojs-fork/pdfkit，或使用 pnpm add / yarn add / bun add。

### @foliojs-fork/pdfkit 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/foliojs-fork\_\_pdfkit 是否存在。

### @foliojs-fork/pdfkit 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @foliojs-fork/pdfkit 可以商用吗？

@foliojs-fork/pdfkit 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @foliojs-fork/pdfkit 的下载量有多少？

根据 npm 官方下载统计，@foliojs-fork/pdfkit 在 2026/10/15 – 2026/11/13 这 30 天内被下载 7,534,150 次，日均约 251,138 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @foliojs-fork/pdfkit 还在维护吗？

最新版本 0\.15\.3 发布于 2025/01/01（1\.9 年前）；至今共发布 8 个版本，其中过去 12 个月发布了 0 个；首次发布于 2021/07/02。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

