【问题标题】:p:media with PDF file causes "File does not begin with '%PDF-'." error in IE7p:media with PDF file 导致“文件不以 '%PDF-' 开头。” IE7中的错误
【发布时间】:2013-08-13 12:46:16
【问题描述】:
我正在使用<p:media> 基于这个问题&答案:How to bind dynamic content using <p:media>?
它在 IE7 中无法运行,而在 Mozilla 和 Chrome 中运行良好。 IE7错误为:
文件不以“%PDF-”开头。
我理解这是因为生成的 PDF 的文件名是 dynamiccontent.properties.xhtml。如何更改文件名?我尝试在DefaultStreamedContent构造函数中传递文件名,但没有效果。
【问题讨论】:
标签:
internet-explorer
jsf
pdf
jsf-2
primefaces
【解决方案1】:
很抱歉 necro-post,但对于那些看到这篇文章的人来说,是的,这可能是文件名问题。
Acrobat 产品历来打开 PDF,只要 %PDF-header 在文件的前 1024 个字节内的任何位置开始。未对 %PDF 标头之前的无关字节执行任何检查。但是,10.1.5 和 11.0.01 更新通过执行更严格的 PDF 标头解析来提高安全性。该产品现在拒绝打开以“%PDF-”标题开头的一小部分 PDF。
您可以通过设置适当的首选项来禁用机器上的标头验证
如果 AVGeneral 键不存在,请手动创建。
HKLM 路径一般是:
HKLM\Software\Adobe(产品名称)(版本)\AVGeneral\bValidateBytesBeforeHeader=dword:00000000
例如,要更改 Acrobat 11.0 的行为,请在以下位置创建一个 DWORD:HKLM\SOFTWARE\Adobe\Adobe Acrobat\11.0\AVGeneral\bValidateBytesBeforeHeader=dword:00000000
HKCU 路径一般是:
HKCU\Software\Adobe(产品名称)(版本)\AVGeneral\bValidateBytesBeforeHeader=dword:00000000
例如,要更改 Reader 10.0 的行为,请在以下位置创建一个 DWORD:HKCU\SOFTWARE\Adobe\Acrobat Reader\10.0\AVGeneral\bValidateBytesBeforeHeader=dword:00000000
始终更改首选项路径中的产品和版本号以匹配您的安装。此方法允许 PDF 显示在您控制的机器上。
https://helpx.adobe.com/acrobat/kb/pdf-error-1015-11001-update.html