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()应该可以正确显示。
或者有其他方法解决????

解决方案 »

  1.   

    lixiaoxue85(蛮野蛮) ( ) 信誉:97    Blog  2007-3-26 19:09:41  得分: 0  
     
     
       
    字体的原因是出现方框我的就是一部分字是方框,而且编码格式我试过了,怎么转也没用,而且我也不知道他以前的编码格式是什么
     
      

  2.   

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

  3.   

    谢谢各位关注这个问题自从上次留帖后不久就没做了,最近有时间继续搞...我用的PDF 是南美国家一个公司的文件,发现这个文档里的字符编码根本和我们的不一样,比如说字符"M" 它的字节码是 01, 提出来转成char时,java 用Unicode 编码得到的就是个 特殊字符,也就是乱码.
      

  4.   

    可能lz的pdf中那个并不是标准的英文字符,而是扩展的欧洲国家的某种语言,所以字节码看起来是ascii的,但其实不是英文字母
      

  5.   

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