首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >pdftk不会解压缩数据流

pdftk不会解压缩数据流
EN

Stack Overflow用户
提问于 2013-02-25 08:03:02
回答 2查看 9.9K关注 0票数 9

我一直在尝试使用pdftk检查Nitro Reader创建的压缩pdf流中的信息,但pdftk不会放气。它不会产生错误,但除了重新排序pdf对象之外,它似乎不会做任何事情。Here是这些pdfs之一的一个最小的例子。

代码语言:javascript
运行
复制
    pdftk test.pdf output test-d.pdf uncompress

当我在其他pdf上尝试pdftk时,它似乎工作得很好。如果我手动提取数据流并用Python中的zlib解压缩,它们会正确地解压缩。此外,如果我在Adobe Reader中打开pdf并重新保存,pdftk在生成的pdf上运行良好。

我已经尽我所能手动检查了Nitro pdf,它似乎是一个有效的pdf。我对这里发生的事情感到非常困惑。

作为问题的背景,我有数百个这样的pdf,我正在尝试搜索某些关键字,如果我可以自动解压,我应该能够做到。

pdftk版本1.45

Windows 7家庭高级版SP1

Nitro Reader 2版本2.5.0.36

谢谢,詹姆斯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-26 14:40:34

我从开发人员那里得到了这个问题的答案。事实证明,这是pdftk处理/DecodeParms [null]行时的一个错误。

如果解码参数为空,则写入器可以省略/DecodeParms行,但兼容的读取器应该理解这一点。我试用了新版本的pdftk,这个问题似乎已经解决了。

票数 2
EN

Stack Overflow用户

发布于 2013-03-23 06:59:57

如果您未连接到pdftk,则可以使用qpdf。例如,您可以使用:

代码语言:javascript
运行
复制
$ qpdf --stream-data=uncompress input.pdf output.pdf

值得注意的是,如果存在blobs,它们仍然可能以二进制形式出现。不过,流的其余部分将是未压缩的(使用pdftkqpdf)。qpdf允许您解压缩所有流或仅解压缩流。

摘自qpdf手册:

指定--stream-data=uncompress时,qpdf将尝试删除它支持的任何无损滤镜。这包括/FlateDecode、/LZWDecode、/ASCII85Decode和/ASCIIHexDecode。这对于检查各种流的内容非常有用。

同样的情况也可能发生在pdftk上。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15058207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档