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

pdfbox提取pdf文本,如果pdf中的字体本地没有,出现乱码
pdfbox提取pdf文本,如果pdf中的字体本地没有,出现乱码。

我写了个简单的代码,从pdf文件中取得   文本。传入不同的pdf文件发现有的可以正确显示,有的显示乱码,我用的是pdfbox   0.73版,而且所有的pdf都是英文的内容。

有的是同1个文件中一部分是乱码,一部分正常显示,所以我觉得是因为有些文本的字体本地没有,导致用getText()方法时,返回的是乱码。


代码大致如下:
PDDocument   doc=PDDocumet.load( "c:\\test.pdf ");
PDFTextStripper   stripper=new   PDFTextStripper   ();

String   text=stripper.getText(doc);

运行后text变量中有可能包括一部分是正常显示的字符,一部分是乱码

请问这种现象是不是因为字体的原因?如果是,有没有办法在调用getText()之前,将pdf中本地没有的字体替换成本地有的,这样再调用getText()应该可以正确显示。
或者有其他方法解决????




------解决方案--------------------
up

------解决方案--------------------
字体的原因是出现方框,你这应该是编码格式不统一吧~~或者读出来的时候就已经是乱码了,转码看看
------解决方案--------------------
和我联系easypdf@gmail.com
------解决方案--------------------
关注一下
------解决方案--------------------
关注一下

继续
------解决方案--------------------
关注一下,
我试验了ExtractText程序
有Resource目录,可是没有作用
cmap下明明有Identity-V的,可总是认为unknown encoding

------解决方案--------------------
出来转成char时,java 用Unicode 编码
看看Encoding是什么,不一定是Unicode编码啊