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

升级Puppeteer v12后PDF体积骤增,如何减小体积?

Puppeteer v12生成PDF体积过大的优化方案

一、调整Puppeteer生成PDF的参数

  • 控制图像质量:启动浏览器时添加图像压缩参数,降低JPEG/PNG的默认质量,示例代码:
    const browser = await puppeteer.launch({
      args: [
        '--jpeg-quality=70', // 调整JPEG质量,范围0-100
        '--png-quality=70',  // 调整PNG质量,范围0-100
        '--disable-web-security' // 存在跨域图像加载问题时可添加
      ]
    });
    
  • 禁用不必要的渲染选项:若HTML中无需保留背景图或样式,设置printBackground: false减少冗余内容:
    await page.pdf({
      path: 'output.pdf',
      printBackground: false,
      format: 'A4'
    });
    
  • 调整缩放比例:通过scale参数缩小渲染尺寸(注意保证内容可读性),间接减小PDF体积:
    await page.pdf({
      path: 'output.pdf',
      scale: 0.9
    });
    

二、优化HTML源文件资源

  • 压缩图像资源:提前批量压缩HTML中的图片,优先用JPEG格式替代PNG(需透明通道除外),并设置合适的宽高属性,避免PDF渲染过大图像。
  • 移除冗余代码:清理HTML中未使用的CSS、JS代码,减少渲染时的冗余元素,避免PDF包含不必要的隐藏内容。
  • 替换WebP格式:部分Chrome版本对WebP图像的PDF渲染会增加体积,可将WebP转为JPEG/PNG后再嵌入HTML。

三、生成后压缩PDF

使用Ghostscript工具对生成的PDF进行二次压缩,根据需求选择不同压缩级别:

  • 屏幕级压缩(体积最小,适合网页查看):
    gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=compressed.pdf input.pdf
    
  • 打印级压缩(平衡体积和质量):
    gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer -dNOPAUSE -dQUIET -dBATCH -sOutputFile=compressed.pdf input.pdf
    

内容的提问来源于stack exchange,提问作者yogesh Rathod

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 17:05:21