【问题标题】:Generated PDF corrupt using wkhtmltopdf with firefox - fine on chrome使用 wkhtmltopdf 和 firefox 生成的 PDF 损坏 - 在 chrome 上很好
【发布时间】:2014-11-28 16:10:48
【问题描述】:

我们(我的工作)使用 wkhtmltopdf 生成 PDF,以导出用户在我的 php Web 应用程序中选择的数据。这在 chrome 中使用应用程序时工作正常,并且对于我们用于生成的两种方法(使用管道另一个写入磁盘)。但是,当使用 firefox 时,这两种方法都会生成损坏的 pdf。

我已经在我们的应用服务器的大约 4 个独立实例上的两个浏览器上对此进行了测试,结果是相同的。它只在 Firefox 中运行过一次,但在它运行后我无法再次复制它!

我也在 IE11 中尝试过。任何帮助或想法将不胜感激:)

更新

经测试可在这些浏览器中使用

  • IE11
  • IE10 - F12 开发工具
  • IE 9 - F12 开发工具
  • 歌剧 26
  • 野生动物园
  • 最新的 Chrome

看不到任何编码问题,并且两个请求看起来相同。据一位同事说,SPDY 没有问题。

【问题讨论】:

  • 在移动版 Firefox、桌面版和移动版 Firefox 中也出现故障。也在多个操作系统上测试了 Firefox

标签: php google-chrome firefox wkhtmltopdf


【解决方案1】:

我们通过确保在应用程序关闭期间设置内容长度标头以获得正确的值来设法解决此问题。由于某种原因,它影响了通过 spdy 启用的 gzip。

header('Content-Length: ' . strlen($pageContents), true);

【讨论】:

    【解决方案2】:

    您是否检查了两种情况下发送到服务器的内容?会不会是编码问题?

    【讨论】:

    • 我检查了两个请求,一切似乎都井井有条:/ 我确实注意到 SPDY 在 Firefox 中返回了一个额外的标头。 (我们正在运行 SPDY 3.1)虽然我在 firefox 中找不到任何关于 SPDY 错误的参考。
    • 您是否尝试过预解析标头并删除对 SPDY 的任何引用以检查它是否可能是问题的根源?
    • 我和一位同事一起研究了 SPDY,但这似乎不是问题。
    猜你喜欢
    • 2014-01-10
    • 1970-01-01
    • 2022-10-05
    • 2014-07-03
    • 2011-09-16
    • 1970-01-01
    • 2014-07-27
    • 1970-01-01
    • 2015-10-05
    相关资源
    最近更新 更多