p:带有PDF文件的媒体导致“文件不以'%PDF-'开头。” IE7中的错误

时间:2013-08-13 12:46:17

标签: internet-explorer jsf pdf jsf-2 primefaces

我根据此问题使用<p:media>并回答:How to bind dynamic content using <p:media>?

它在IE7中不起作用,而它可以正常使用Mozilla和Chrome。 IE7错误如下:

  

文件不以'%PDF - '开头。

我理解这是因为生成的PDF的文件名是dynamiccontent.properties.xhtml。如何更改文件名?我尝试在DefaultStreamedContent构造函数中传递文件名,但它没有效果。

1 个答案:

答案 0 :(得分:5)

很抱歉发布帖子,但对于那些看到这篇文章的人来说,是的,这可能是文件名问题。

只要%PDF标题在文件的前1024个字节内的任何位置开始,Acrobat产品就会历史性地打开PDF。没有对%PDF-header之前的无关字节执行检查。但是,10.1.5和11.0.01更新通过对PDF标头进行更严格的解析来提高安全性。该产品现在拒绝打开那些没有正确启动'%PDF-'标题的小部分PDF。

您可以通过设置适当的首选项

来禁用计算机上的标头验证

如果AVG​​eneral键不存在,请手动创建。

HKLM路径通常是:

HKLM \ Software \ Adob​​e(产品名称)(版本)\ AVGeneral \ bValidateBytesBeforeHeader = dword:00000000

例如,要更改Acrobat 11.0的行为,请在此位置创建一个DWORD:HKLM \ SOFTWARE \ Adob​​e \ Adob​​e Acrobat \ 11.0 \ AVGeneral \ bValidateBytesBeforeHeader = dword:00000000

HKCU路径通常是:

HKCU \ Software \ Adob​​e(产品名称)(版本)\ AVGeneral \ bValidateBytesBeforeHeader = dword:00000000

例如,要更改Reader 10.0的行为,请在此位置创建一个DWORD:HKCU \ SOFTWARE \ Adob​​e \ Acrobat Reader \ 10.0 \ AVGeneral \ bValidateBytesBeforeHeader = dword:00000000

始终更改首选项路径中的产品和版本号以匹配您的安装。此方法允许PDF显示在您控制的计算机上。

https://helpx.adobe.com/acrobat/kb/pdf-error-1015-11001-update.html