简体   繁体   English

pdf错误:IE9和IE10上的“预期dict对象”

[英]pdf error: “expected a dict object” on IE9 and IE10

I am not sure if this is an Adobe Acrobat/Reader or IE issue, but I can't seem to get any information from either Adobe support or its user to user forum, so I thought I would see if any IE users can help. 我不确定这是Adobe Acrobat / Reader还是IE问题,但我似乎无法从Adobe支持或其用户到用户论坛获取任何信息,所以我想我会看看是否有任何IE用户可以提供帮助。
What is happening is some users are attempting to open PDF files located on a website (intranet) via Internet Explorer 9 and also Internet Explorer 10. When the user clicks on the listed PDF file, an Acrobat (or Reader) error "Expected a dict object" appears and the IE screen remains blank. 发生了什么事情是一些用户试图通过Internet Explorer 9和Internet Explorer 10打开位于网站(内部网)上的PDF文件。当用户点击列出的PDF文件时,Acrobat(或Reader)错误“预期dict “对象”出现,IE屏幕保持空白。 I was able to recreate this error on my PC only on IE9 and IE10 but it works on IE8 and IE11 and the other browsers however. 我只能在IE9和IE10上在我的电脑上重新创建这个错误,但它适用于IE8和IE11以及其他浏览器。 So I am wondering if it is related to IE. 所以我想知道它是否与IE有关。 If the users open the pdf within either the Acrobat or Reader application, it opens successfully. 如果用户在Acrobat或Reader应用程序中打开pdf,则会成功打开。 We have a client who likes to open his PDF files this way, so I would like to resolve this issue (rather that telling him to open the pdf in Acrobat or Reader). 我们有一个客户喜欢以这种方式打开他的PDF文件,所以我想解决这个问题(而不是告诉他在Acrobat或Reader中打开PDF文件)。 Thank you for your answers. 谢谢您的回答。

If you have any control over saving the PDF, save or export the PDF itself with the "Optimize for Fast Web View" option or its equivalent turned off. 如果您可以控制保存PDF,请使用“Optimize for Fast Web View”选项或其等效选项保存或导出PDF本身。

For my particular situation, I see this problem with PDFs I export from InDesign (CS 1 or 6), and then open in Internet Explorer (11 currently, but in older versions previously) and Acrobat Reader XI (11.0.10 currently). 对于我的特殊情况,我看到这个问题与我从InDesign(CS 1或6)导出的PDF,然后在Internet Explorer(目前有11个,但之前的旧版本)和Acrobat Reader XI(当前为11.0.10)中打开。

I could make the problem go away oftentimes by having users clear IE's cache, and then download the PDF again, or change the PDF's filename and have them download the newly renamed version (and that worked often enough, oddly). 我可以通过让用户清除IE的缓存,然后再次下载PDF,或者更改PDF的文件名并让他们下载新重命名的版本(并且经常运行,奇怪)来解决问题。 But, I don't want to have to make end users do such things. 但是,我不想让最终用户做这样的事情。

All the solutions I've found otherwise were all about turning off "Allow fast web view" in Reader's preferences and/or disabling the plugin in Internet Explorer - to force the browser to open the file directly in Reader. 我发现的所有解决方案都是关于在Reader的首选项中关闭“允许快速Web查看”和/或在Internet Explorer中禁用插件 - 强制浏览器直接在Reader中打开文件。 But, once again, I don't want to make end users monkey with settings like that. 但是,再一次,我不想让最终用户使用这样的设置。

A reference to latter, end-user-oriented solutions: http://www.techyv.com/questions/adobe-reader-expected-dict-object 对后者,面向最终用户的解决方案的参考: http//www.techyv.com/questions/adobe-reader-expected-dict-object

If, in your testing, the document consistently fails under IE8 or IE9, but consistently succeeds under IE8 or IE11, then there's no randomness about it, but there may be key differences in which helper application (or version of same) is being used by each browser. 如果在您的测试中,文档在IE8或IE9下始终失败,但在IE8或IE11下一直成功,那么就没有随机性,但是辅助应用程序(或其版本)的使用可能存在关键差异每个浏览器。

Even if, as your wording suggests, you're running your IE8 through IE11 testing on the same machine throughout, I would suggest doublechecking that each browser is calling the same PDF utility. 即使你的措辞暗示,你在整个同一台机器上运行IE8到IE11测试,我建议双重检查每个浏览器调用相同的PDF实用程序。

If you have, for example, the latest version of Reader and an ancient copy of Acrobat sharing space on the same machine, IE8 and IE11 could be finding Reader (which might deal with the document's internals just fine) where IE9 and IE10 could be tied to an elderly Acrobat that has some problem digesting a piece of newer PDF coding. 例如,如果你有最新版本的Reader和同一台机器上的Acrobat共享空间的古老副本,IE8和IE11可能会找到Reader(它可能处理文件的内部很好)IE9和IE10可以绑在一起老年人Acrobat有一些问题消化了一段较新的PDF编码。

Conversely, another possibility is that an older Acro/Reader is ignoring a problem that a later release flags as an error to complain about. 相反,另一种可能性是较旧的Acro / Reader忽略了一个问题,即后来的版本标记为一个错误的抱怨。 As Max Wyss suggested, you should download the problem document to see if it's corrupted. 正如Max Wyss建议的那样,您应该下载问题文档以查看它是否已损坏。 Run it through Adobe Acrobat's Pre-flight PDF Syntax analyzer, to see if it will flag any problems in the document. 通过Adobe Acrobat的飞行前PDF语法分析器运行它,看它是否会标记文档中的任何问题。 If so, what you may be seeing are different utilities' reactions to a problem in the source document. 如果是这样,您可能会看到的是不同的实用程序对源文档中的问题的反应。

I realize this is an old post but I couldn't modify the Adobe posts to correct anyone so this is my best option. 我意识到这是一个旧帖子,但我无法修改Adobe帖子以纠正任何人,所以这是我最好的选择。

The answers are right but wrong. 答案是对的,但错了。 It is about a corrupt format, not a corrupt file or have anything to do with version difference most likely. 它是关于一个损坏的格式,而不是一个损坏的文件或最有可能与版本差异有关。

As a developer the hardest part about getting PDF's (and FDFs) to work correctly is field validation. 作为开发人员,让PDF(和FDF)正常工作的最难的部分是字段验证。 If you have ever looked at the files that fill out PDF forms they are very simple. 如果您曾查看过填写PDF表单的文件,那么它们非常简单。 Field Name, Value. 字段名称,值。

Another thing that is simple is how easily you can break them. 另一件很简单的事就是你可以轻松打破它们。 The format of the output is <</T(txtFieldName)/V(Value)>> 输出的格式是<</T(txtFieldName)/V(Value)>>

but, similar to SQL Injection if the end users put something into confuse it then it breaks and causes the DICT error. 但是,类似于SQL注入,如果最终用户将某些内容混淆,那么它会中断并导致DICT错误。 Lets say that the field info is: 可以说,字段信息是:

<</T(txtFieldName)/V(I work for the Central Intelligence Agency (CIA))>>

but your dumb CIA people forget to open or close the CIA parentheses... 但你愚蠢的中央情报局人员忘记打开或关闭中央情报局的括号......

<</T(txtFieldName)/V(I work for the Central Intelligence Agency --> CIA))>>

That causes a corrupt file, thereby causing the DICT error. 这会导致文件损坏,从而导致DICT错误。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM