【发布时间】:2012-02-04 02:30:06
【问题描述】:
我有一个 JSF 页面,它使用支持 bean 将 PDF 文档流式传输到浏览器。这个功能很好用,直到现在在 iOS 设备上测试这个功能时我还没有遇到任何问题。
在 iPad 和 iPod Touch 上的 Safari 上,当 PDF 流获得响应时,它最终只是被粘贴为网页上的不可滚动层。在桌面浏览器中,文件提示保存或打开,并使用 Adobe Reader 正确打开。这是一个问题,因为在 iOS 设备上仅显示 PDF 的第一页的一部分,而无法查看其他部分。
我已经通过网络在这些设备上测试了其他 PDF,但它们的行为并不相同。启动 PDF 应用程序或 Safari 加载可滚动预览,这是所需的结果。其他人有这个吗?
我的支持 bean 正在将 PDF 的缓冲输入流写入输出流。我设置了以下响应标头:
response.setContentType ("application/pdf");
response.setContentLength(inputLength);
response.setHeader ("Content-Disposition", "inline;filename=\"" + saveFilename + ".pdf\"");
response.setHeader ("Cache-Control", "must-revalidate, post-check=0, pre-check=0, public");
我尝试将内容配置从内联切换到附件,但这没有帮助。
【问题讨论】: