2

我正在使用 pylons 来提供动态生成的 pdf 文档以进行报告:我的方法适用于 firefox 和 chrome(如果插件可用或以其他方式下载它,它会显示 pdf 内联)但 IE(7 和 8)只显示空白页并且不提示下载。不过,IE 可以正确显示其他网站生成的 PDF。

不知道这是否重要,但该页面是通过 HTTPS 访问的。

我的控制器执行以下操作:

  • 通过 mako 渲染源页面
  • 使用 pisa 将 html 转换为 pdf
  • 将这些标头添加到响应中:Content-type: application/pdfContent-disposition: inline; filename=file.pdf

你有什么建议吗?我似乎被卡住了,想不出其他可以尝试的方法。

4

2 回答 2

2

在 django 我这样做:

response['Content-Disposition'] = 'attachment; filename=rawr.pdf'

因此,尝试更改inlineattachment,看看会发生什么。

于 2010-05-29T09:01:21.970 回答
2

不确定这是否有帮助,但在 IE6 中,当我尝试流式传输动态生成的 PDF 时,我遇到了各种奇怪的浏览器错误。根据内容处置标题是内联还是附件,错误会有所不同,但无论哪种方式,这都是一场火车事故。

事实证明,IE6 必须缓存 PDF 才能将其传递给 Acrobat Reader,并且 Pylons 响应中的默认标头说“不要缓存这个”。我通过添加允许缓存 10 秒:

    del response.headers['Cache-Control']
    del response.headers['Pragma']
    response.cache_expires(seconds=10)

到返回 PDF 的控制器,一切都很好。

于 2010-06-20T23:22:27.567 回答