1

注意:我不确定这是在这里更好,还是在超级用户下更好,但由于它涉及 poppler 库,我会在这里假设,因为这里的人更有可能知道它是如何工作的。

软件:Irex Iliad 的 iPDF 2.12 + Poppler 2.11(最后一次提交 2006-12-12)。来源在这里
问题文档:Sciam 数字 PDF(其中任何一个,因为都以相同的方式生成)。

该文档可以使用 Okular、Adobe Reader 和 XPDF 正常加载,无需任何密码,并且可以毫无问题地阅读。
使用 iPDF 加载 - 所以 poppler - 需要密码才能打开文档。
我尝试绕过 Poppler/SecurityHandler.cc 中的 SecurityHandler:checkEncryption 方法,使其返回 true。这有效,但无法加载带有错误的pdf:

Error: Unsupported version/revision (4/4) of Standard security handler
Error (13571568): Unknown compression method in flate stream
Error: Top-level pages object is wrong type (null)
Error: Couldn't read page catalog
(PV_E)PDFCore.cpp:61,open() Open PDF document (èÖ@(èÖ@à failed with error code 2
(PV_E)PDFApp.cpp:185,open() Could not open file!

这表明实际的流是加密的,如果为真的话,这表明 okular 以某种方式绕过了这一点。

我知道人们在其他移动设备上也有类似的问题(我在 Nexus One 上发现了类似的报告)。

我对 pdf 格式的工作原理知之甚少,无法知道是否应该使用一些“默认”密码来打开(不需要其他权限)文档。有没有?当它只需要使用用户密码(空白?)打开它时,它是否正在请求所有者密码?

否则,有谁知道像 Okular/XPDF 这样的东西如何能够毫无问题地打开它?

4

1 回答 1

0

事实证明,应用程序使用的 poppler 版本对于所需的安全处理程序来说太旧了。

因此,我已经开始了我自己的项目,为我的 iliad 创建一个新的 pdf 查看器,该查看器基于可以处理的 poppler 的最新(0.14.*)版本。来源在这里

于 2010-08-26T21:22:50.563 回答