日期:2014-05-20  浏览次数:21015 次

用java实现pdf文件内容读取及解析时如何解压缩stream到endstream之间的压缩数据
第一步直接读取pdf中的内容,得到格式如下内容:

%PDF-1.4
%〕抛
8 0 obj
<</Length 150/Filter/FlateDecode>>stream
x淢尰? E鲈吴v滥"??%Cオ
?$h轱7@剱[鏫咛哺psW磺5侬疚T鱬郧x曔!.?q?t衰?[糔C镂o{c 鏄?艪D崘k囿鯜D葧鬕c聝nGwl汹k?輙3|禽娫[塉弁埏挪?怄4?
endstream
endobj

可以看到stream与endstream之间的内容为乱码,这是一串经过压缩的数据,现在的问题是如何将这一串数据解压缩?我试过用java.util.zip中的类来解压缩,但总是报异常:
java.util.zip.ZipException: incorrect header check
好像第一步还需对stream到endstream中的内容进行处理,然后才能解压缩,但是始终不知如何操作。有没有类似经验的人给支个招?

------解决方案--------------------
关注 没搞出来 以为UTF可以的呢 试了一下 没有成功 嘿嘿
------解决方案--------------------
读的时候必须用二进制方式读取
------解决方案--------------------
读出来的东西是乱码 用UTF-8试试 ,人家写的编码你不知道 读出来肯定是乱码 读进来要进行编码解析