2

当我尝试使用由 cups pdf 生成的 java 中的 pdf 框解析 pdf 文件时,显示垃圾字符。但它与常见的 pdf 完美配合,我检查了 font cups 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

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

4

1 回答 1

1

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

我相信该字体要么根本不包含 Unicode 表,要么已经嵌入到没有 Unicode 表的文档中。如果文本似乎是单个给定文档的简单替换密码,那将倾向于证实这一点。

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

于 2012-09-14T01:17:00.943 回答