使用pdf-box解析pdf会显示未知字符

时间:2012-09-12 13:05:39

标签: pdf pdfbox

当我尝试用java pdf生成带有pdf框的pdf文件时,显示垃圾字符。但它完全适用于常见的pdf我检查字体杯pdf显示FreeMono_00.ttf(但我没有在任何地方找到这样的字体)和工作pdf显示ArialMT。

我想对解析使用cups-pdf生成的pdf采取不同的做法。

下面是我用于解析的代码。

parser = new PDFParser(new FileInputStream(File file));
parser.parse();
           COSDocument  cosDoc = parser.getDocument();
           PDFTextStripperpdfStripper = new PDFTextStripper();
          PDDocument  pdDoc = new PDDocument(cosDoc);
 String parsedText = pdfStripper.getText(pdDoc); 

输出就是这样的 )LOH1DPHDVGW [W 6XEMHFWVXEMHFWVVDPSOH 0HVVDJHVHQGLQJGHWDLOVDORQJZLWKSULQWILOH 8VHU1DPH $ EGXOUD] DN30 8VHU,'d#DFRP

只是复制粘贴也给出了这样的

1 个答案:

答案 0 :(得分:1)

我只是重复我读过的内容......我在这里缺乏经验。如果有更多专家回答PDF / PDFBox问题,我会等待一个人回答。

我认为字体根本不包含Unicode表,或者在没有Unicode表的情况下嵌入到文档中。如果单个给定文档的文本似乎是simple substitution cipher,那么这往往会证实这一点。

如果嵌入了字体,我认为有时只会嵌入您实际使用的字形的摘录。这可能在这里,因为系统上没有安装字体(你说),而原始的FreeMono字体很大 - 超过4000个字形。在这种情况下,我担心字符和字形之间的对应关系可能与文档有关 - 但我在推测。