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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:24:03