You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PDFKit(Node.js):如何获取当前页码?

在PDFKit中获取当前页码的方法

PDFKit本身没有提供直接获取当前页码的API,但可以通过手动维护计数器结合页面事件来实现,具体步骤如下:

  • 初始化一个页码计数器,默认从1开始(文档创建时默认存在第一页)
  • 监听PDF文档的pageAdded事件,每次新增页面(不管是内容溢出自动分页还是手动调用addPage())时,将计数器加1
  • 随时读取计数器的值就能获取当前所在页码

代码示例

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

const doc = new PDFDocument();
let currentPage = 1;

// 监听页面新增事件,实时更新页码
doc.on('pageAdded', () => {
  currentPage++;
});

// 写入会触发自动分页的长内容
doc.text('这是一段会触发自动分页的长内容。'.repeat(60));

// 手动添加新页面
doc.addPage();
console.log('当前页码:', currentPage); // 此时输出3(初始1 + 自动分页1次 + 手动加页1次)

// 继续写入内容,溢出时会自动触发pageAdded更新页码
doc.text('更多测试内容...'.repeat(30));

doc.pipe(fs.createWriteStream('output.pdf'));
doc.end();

注意事项

PDFKit是流式生成PDF的工具,无法回溯修改已经生成的页面。如果你的业务需要“切换到第4页写入内容”,本质上还是要按顺序生成内容,通过currentPage变量跟踪进度,当页码到达4时执行对应的写入逻辑。后续内容溢出到第5、6页时,计数器会自动更新,你可以随时读取currentPage来判断当前位置,进而执行对应的业务逻辑。

内容的提问来源于stack exchange,提问作者user2565735

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 07:48:27