我们正在使用ITEXTPDF来压缩PDF,但问题是我们想要压缩在上传到我们网站之前压缩的文件...如果文件是在没有压缩的情况下上传的,我们希望留下那样的.. < / p>
所以要做到这一点我们需要确定PDF是否被压缩..我想知道有没有什么方法可以识别PDF是否使用ITEXTPDF或其他工具进行压缩!!! ..
我曾试图谷歌但却找不到合适的答案..
如果你有任何想法,请告诉我......感谢
答案 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; /FlateDecode
有PdfReader
方法来检查是否属于这种情况。也许这就是你正在寻找的东西。也许您的PDF需要通过无法阅读此类PDF的软件阅读,但是......您并没有告诉我们。
也许我们完全误解了这个问题。也许您想知道您是否收到了带有PDF的实际PDF或zip文件。或者您可能希望真正数据挖掘PDF中使用的不同过滤器。简而言之:您的问题不是很清楚,我希望这个答案能够解释为什么要澄清。