1

以下代码为一个 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 的问题吗?为什么会这样?

4

0 回答 0