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
相关产品推荐
相关产品推荐

