有什么办法我们可以找到PDF文件压缩与否?

时间:2013-12-05 22:19:51

标签: asp.net pdf compression c#-3.0 itextpdf

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

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

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

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

感谢

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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的{​​{1}}条目。你几乎找不到任何&#34;现代&#34;内容未被压缩的PDF。

直到PDF 1.5,PDF文档中的所有间接对象以及交叉引用流都以ASCII格式存储在PDF文件中。从PDF 1.5开始,特定类型的对象可以存储在对象流中。交叉引用表也可以压缩为流。 iText&#39; /FlateDecodePdfReader方法来检查是否属于这种情况。也许这就是你正在寻找的东西。也许您的PDF需要通过无法阅读此类PDF的软件阅读,但是......您并没有告诉我们。

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