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

Rails应用用Grover gem转PDF报错:ReadableStream未定义

解决Grover转PDF时「ReadableStream is not defined」错误

排查方向和解决办法

  • 检查Chrome/Chromium版本兼容性
    ReadableStream是现代浏览器API,Grover依赖Chrome/Chromium完成渲染,确保你的浏览器版本不低于78(该版本开始稳定支持ReadableStream)。在终端执行google-chrome --version或chromium --version查看版本,版本过低直接升级到最新稳定版即可。

  • 调整Grover配置参数
    尝试在初始化Grover时添加额外配置,强制启用必要特性或关闭可能冲突的选项:

    pdf = Grover.new(html, {
      emulate_media: 'screen',
      wait_for_network_idle: true,
      disable_webkit_features: 'none'
    }).to_pdf
    

    也可以针对性配置PDF渲染选项:

    pdf = Grover.new(html, {
      pdf_rendering_options: {
        print_background: true
      }
    }).to_pdf
    
  • 排查渲染的HTML内容
    先把Rails渲染生成的HTML保存到本地:

    File.write('test.html', html)
    

    再用Grover的命令行工具直接测试转PDF:

    grover test.html --output test.pdf
    

    若命令行能正常生成PDF,说明问题出在Rails环境下的Grover配置;若命令行也报错,就是HTML模板/布局里存在依赖ReadableStream的前端代码,要么移除这部分代码,要么添加polyfill做兼容。

  • 尝试更换Grover版本
    即便你确认依赖版本无冲突,也可以试试升级到最新稳定版:

    bundle update grover
    

    或者降级到之前验证过的稳定版本,部分版本可能存在特定环境下的API兼容问题。

  • 指定Chrome执行路径
    确保Grover能正确找到Chrome/Chromium的可执行文件,初始化时手动指定路径:

    pdf = Grover.new(html, {
      executable_path: '/usr/bin/google-chrome' # 替换为你的实际Chrome路径
    }).to_pdf
    

内容的提问来源于stack exchange,提问作者Marius Kressin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 12:57:07