【发布时间】:2012-07-28 16:57:55
【问题描述】:
我无法解密流中的数据,例如:
56 0 obj
<< /Length 1242 /Filter /FlateDecode >>
stream
x]êΩnƒ Ñ{ûbÀKq¬æ\âê¢....(whole binary is omitted)
endstream
endobj
我尝试隔离文件和二进制字符串中的二进制内容 (x]êΩnƒ Ñ{ûbÀKq¬æ\âê¢....)。解码功能gzinflate($encripted_data) 向我发送解码错误,我认为这是因为编码内容没有“放气”左右。
在 PDF Reference v 1.7,(六版)的第 67 页,我发现 /FlateDecode 过滤器的描述为:...解压缩使用 zlib/deflate 压缩方法编码的数据,再现原始文本或二进制数据
我需要真正的原始解决方案,也就是 php 函数或/和算法,如何处理这个“\FlateDecoded”流。
谢谢!
【问题讨论】:
-
你需要这个函数只用于选定的对象还是所有压缩流(和所有压缩方案)?
-
亲爱的库尔特!我很高兴知道如何处理各种过滤器,例如:ASCIIHexDecode、ASCII85Decode、LZWDecode、RunLengthDecode、CCITTFaxDecode、JBIG2Decode、DCTDecode、JPXDecode、Crypt,但在现实生活中,FlateDecode 是 PDF 文件中最常用的,它是由“打印到 PDF...”-s))) 生成,现在我真的需要处理这个单一的过滤器。
-
你说'我认为这是因为编码的内容没有“放气”左右'。 -- 这就是为什么我在回答中给了你关于
qpdf的提示。您可以(至少)使用它来验证或伪造您自己的努力,即使事实证明它不符合您的直接要求。您的56 0 obj-object 也可以是任何东西。如果您不知道它在 PDF 中的哪个位置被引用为56 0 R,则无法知道它是 ICC 配置文件、字体、图像、某些页面内容还是其他... -
亲爱的库尔特!可能是 qpdf 是 taks 的好解决方案,就像这样,但不幸的是,qpdf 是“shell”或命令行解决方案。不是我的情况。 Bitte verzeih mir! Danke für die Hinweise!