在表格中提供字体作为缓冲区时,PDFKit 会崩溃
作者: ykw9263创建于 2026年6月25日更新于 2026年8月21日
错误报告
□ 问题描述
当在表格单元格中提供带有 " Buffer " 或 " UintArray " 弧的字体时,将扔出 " 不支持的字体格式或标准的PDF字体。
在进行一些挖掘时,我发现,在“正常化Cell()”中,字体对象与表格样式中的其他字体相接而来。
https://GitHub.com/foliojs/pdfkit/blob/2fdafa275a6bc2c8751cd952edc844545ade57d/lib/table/正统.js#L96.
此行执行花费了异常长的时间,在此之后字体src变成了类似的东西. {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么? 控制台.log( font.src) //{"一":数,"二":数,"三":数,.}
□ 代码样本
<!- -- 邮政编码或链接到活例(可从https://repl.it/@blikblum/minimal-pdfkit得到叉子),以复制这个问题 -- -- >
``` ZZ
从“ pdfkit” 导入 PDFDocument;
从“fs”导入 fs;
const doc = 新的PDF文件();
doc.table (.row) ([
{
文本:"你好世界",
字体 : { src: fs. readFileSync(SOME CUSTOM FONT),家族:FONT FAMILY},
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
) )□ 可能的修补
替换字体深与手工属性分配相融合 。 考虑到字体对象的结构,浅色合并可能也足够了。
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么? 就我而言,换成这样是正常的 const字体={.colStyle.font,.rowStyle.font,.cell.font} (中文(简体) ).
□你的环境
* pdfkit版本:0.19.1
* 节点版本:24.1.5.0
*浏览器版本(如果适用):N/A
* 操作系统:Windows 11内容来源: foliojs/pdfkit