React JS使用pdfMake调用getBase64返回undefined问题求助
问题排查与修复方案
1. getBase64未定义问题修复
这个问题由两个常见原因导致:
- 未正确挂载pdfmake依赖的字体文件,导致生成的实例方法缺失
- 调用方式和你使用的pdfmake版本不匹配,v2.x及以上版本已废弃回调式API,改为返回Promise
首先修正依赖引入配置,必须挂载字体资源,否则实例会出现方法异常:
import pdfMake from "pdfmake/build/pdfmake"; import pdfFonts from "pdfmake/build/vfs_fonts"; pdfMake.vfs = pdfFonts.pdfMake.vfs;
之后修改getBase64的调用逻辑,改用Promise链式调用:
const pdfDocGenerator = pdfMake.createPdf(docDefinition); pdfDocGenerator.getBase64().then(pdfData => { resolve({ pdfData: `data:application/pdf;base64,${pdfData}`, onlyData: pdfData, }); });
如果修改后仍提示方法不存在,可将getBase64替换为getBase64String,部分构建版本使用该命名。
2. PDF打开空白问题修复
按以下顺序排查:
- 先使用最简合法的
docDefinition测试,排除内容配置错误:const docDefinition = { content: ['PDF测试内容', {text: '测试标题', fontSize: 20, bold: true}] }; - 打印生成的
pdfData字符串,确认没有出现截断、多余字符问题,再拼接为Data URI打开验证。
内容的提问来源于stack exchange,提问作者Mike Victoria
相关产品推荐
相关产品推荐

