当我尝试用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
只是复制粘贴也给出了这样的
答案 0 :(得分:1)
我只是重复我读过的内容......我在这里缺乏经验。如果有更多专家回答PDF / PDFBox问题,我会等待一个人回答。
我认为字体根本不包含Unicode表,或者在没有Unicode表的情况下嵌入到文档中。如果单个给定文档的文本似乎是simple substitution cipher,那么这往往会证实这一点。
如果嵌入了字体,我认为有时只会嵌入您实际使用的字形的摘录。这可能在这里,因为系统上没有安装字体(你说),而原始的FreeMono字体很大 - 超过4000个字形。在这种情况下,我担心字符和字形之间的对应关系可能与文档有关 - 但我在推测。