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

使用Puppeteer合并PDF后前端获取到空白PDF的问题求助

使用Puppeteer合并PDF后前端获取到空白PDF的问题求助

大家好,我最近碰到一个头疼的问题:我用Puppeteer生成了多个PDF,把每个PDF都以buffer的形式存在变量里,接着写了个combinePDFs函数,想通过Puppeteer把这些buffer合并成单个PDF返回给前端,但前端拿到的却是空白PDF,实在找不到问题出在哪,麻烦各位帮忙看看!

以下是我的后端代码:

async function combinePDFs(pdfBuffers) {
  const browser = await puppeteer.launch({
    headless: "new",
    args: [
      "--no-sandbox",
      "--disable-setuid-sandbox",
      "--font-render-hinting=none",
    ],
  });

  const page = await browser.newPage();
  const combinedPDFBuff = Buffer.concat(pdfBuffers);

  await page.setContent(`<embed src="data:application/pdf;base64,${combinedPDFBuff.toString('base64')}" type="application/pdf" />`, {
    waitUntil: 'domcontentloaded',
  });

  await page.emulateMediaType('screen');
  await page.setViewport({
    width: 1200,
    height: 800
  });

  const combinedPDFBuffer = await page.pdf({
    format: 'A4',
    printBackground: true,
    preferCSSPageSize: true,
  });

  await browser.close();
  return combinedPDFBuffer
}

// 接口返回部分
const combineResultBuff =  await combinePDFs(pdfBuff)
console.log("object",combineResultBuff);
res.setHeader("Content-Type","application/pdf");
res.send(combineResultBuff)

前端获取PDF的代码如下:

const config = {
  url: process.env.REACT_APP_BASE_URL + `/order/way_bill_generate`,
  method: "post",
  headers: {
    secret_key: process.env.REACT_APP_SECRET_KEY,
    Authorization: `Bearer ${token}`,
  },
  responseType: "blob",
  data: {
    data: saveData,
  },
};

setLoading(true)
try {
  const wayBill = await axios(config);
  const blob = new Blob([wayBill.data], { type: "application/pdf" });
  const url = URL.createObjectURL(blob);
  setPDFUrl(url);
  setLoading(false)
} catch (err) {
  console.log(err);
  setLoading(false)
}

后端打印combineResultBuff能看到有数据,但前端生成的Blob打开后就是空白的,实在摸不着头绪,有没有大佬能帮忙分析下原因或者给个解决方案?

备注:内容来源于stack exchange,提问作者Abhishek Poddar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 09:34:27