以下代码为一个 PDF 生成特殊字符而不是空格,但不是另一个:
String fullText;
BodyContentHandler handler = null;
try {
// size is limit is 100M
handler = new BodyContentHandler(100 * 1024 * 1024);
Metadata meta = new Metadata();
PDFParser parser = new PDFParser();
parser.setEnableAutoSpace(false);
parser.parse(new FileInputStream(this.pdf /*always a valid pdf file*/), handler, meta, new ParseContext());
}
catch (SAXException e) {
throw new IOException(e);
} catch (TikaException e) {
throw new IOException(e);
}
fullText = handler.toString();
根据 PDF,fullText 的子字符串将如下所示:
将*继续*将*被*使用*在*支持*的*中
什么时候应该是这样的:
将继续用于支持
在其他地方,'%' 替代 '-' 和 '!' 在粗体文本中替换空格。
仅在处理一个 PDF 而不是另一个 PDF 时才会出现此问题。根据 pdfinfo,这两个 PDF 都是由 Quartz PDFContext 生成的。
linux 命令 pdftotext 呈现相同的结果。
这是如何生成原始 PDF 的问题吗?为什么会这样?