PDFBox 解析器似乎可以解析,但文本剥离器的输出为空

PDFBox parser seems to parse, but empty output from text stripper

我在 Android 中使用 PDFBox 从文档中提取文本时遇到了一些问题。但是解析器似乎工作正常(或者至少,这就是我解释它的意思;谷歌搜索 "parsed=COSObject" 没有给出相关结果,不幸的是(对于某些文档 logcat 是垃圾邮件并且似乎没有办法关闭这个putput))。 getCharactersByArticle returns 此文档的空输出,即。 vectorlistoftps 为空。

我已经上传文件到:https://ufile.io/cnvoq

对于我尝试过的大多数其他文档,文本提取工作正常,或者我得到与此文档无关的错误。但这里没有。

这是相关的代码片段。

private void extractTextPosition() throws FileNotFoundException, IOException {
    FileInputStream stream = new FileInputStream(var1);
    PDFParser parser = new PDFParser(stream);

    parser.parse();
    Log.d("Parser has ","parsed");
    StringWriter outString = new StringWriter();
    CustomPDFTextStripper stripper = new CustomPDFTextStripper();
    stripper.setStartPage(currentPage);
    stripper.setEndPage(currentPage);
    stripper.setSortByPosition(true);

    try {
        stripper.writeText(parser.getPDDocument(), outString);
    } catch (Exception e) {
        e.printStackTrace();
    }
Vector<List<TextPosition>> vectorlistoftps = stripper.getCharactersByArticle();
}

CustomPDFTextStripper 与 PDFTextStripper 相同(我对其进行了更改,但所有更改均已被注释掉)。

Here is the logcat output

感谢任何帮助。

相关 PDF 不包含任何文本。

好的,当您查看它时,您会看到文本字形,但它们实际上并不是使用 文本绘制命令 绘制的(它采用某种编码的字符串并绘制匹配的字形)但是每个字母字形都是使用单独的矢量图形操作绘制的(移动到、直线到、曲线到、填充...)。

(您也无法在 Adob​​e Reader 中复制和粘贴文本,您甚至无法标记 复制它,因为根本没有要标记的文本。)

由 PDFBox PDFTextStripper 完成的文本提取(或其他 PDF 库的类似文本提取 类)仅适用于使用 文本绘图命令[=24= 绘制的文本] 通过解码他们的字符串参数。

您的 PDF 很可能需要 OCR 进行文本检索。