-1

我们正在使用 ITEXTPDF 压缩 PDF,但问题是我们想要压缩在上传到我们的网站之前压缩的文件......如果文件在没有压缩的情况下上传,我们希望保留这样的文件..

所以要做到这一点,我们需要确定 PDF 是否被压缩..我想知道有什么方法可以识别 PDF 是否被压缩或没有使用 ITEXTPDF 或其他工具!!!..

我试图谷歌它但找不到合适的答案..

如果您有任何想法,请告诉我...

谢谢

4

2 回答 2

1

您可以在 PDF 中获得多种类型的压缩。对象的数据可以被压缩,对象可以被压缩成对象流。

于 2013-12-06T07:42:51.867 回答
0

我投票赞成马克的答案,因为他是对的:如果你不更具体,你将不会得到答案。我会用一些额外的信息添加我自己的答案。

在 PDF 1.0 中,PDF 文件由用于 PDF 语法的 ASCII 字符和用于图像等对象的二进制代码组成。页面流将包含可见的 PDF 运算符和操作数,例如:

56.7 748.5 m
136.2 748.5 l
S

此代码告诉您必须在坐标(因为这是使用运算符将​​光标移动到的位置)和坐标(因为使用添加线的运算符构造路径S)之间绘制一条线( )。(x = 56.7; y = 748.5)m(x = 136.2; y = 748.5)l

从 PDF 1.2 开始,可以开始对此类内容流(页面内容流、表单 XObjects)使用过滤器。在大多数情况下,您会在流字典中发现一个/Filter具有值的条目。/FlateDecode您几乎找不到任何内容未压缩的“现代”PDF。

直到 PDF 1.5,PDF 文档中的所有间接对象以及交叉引用流都以 ASCII 格式存储在 PDF 文件中。从 PDF 1.5 开始,可以将特定类型的对象存储在对象流中。交叉引用表也可以压缩成流。iTextPdfReader有一种isNewXrefType()方法可以检查是否是这种情况。也许这就是你要找的。也许您的 PDF 需要由无法读取此类 PDF 的软件读取,但是……您没有告诉我们。

也许我们完全误解了这个问题。也许您想知道您收到的是实际 PDF 还是带有 PDF 的 zip 文件。或者,也许您想真正对 PDF 中使用的不同过滤器进行数据挖掘。简而言之:你的问题不是很清楚,我希望这个答案能解释你为什么要澄清。

于 2013-12-06T08:11:09.610 回答