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 不包含任何文本。
好的,当您查看它时,您会看到文本字形,但它们实际上并不是使用 文本绘制命令 绘制的(它采用某种编码的字符串并绘制匹配的字形)但是每个字母字形都是使用单独的矢量图形操作绘制的(移动到、直线到、曲线到、填充...)。
(您也无法在 Adobe Reader 中复制和粘贴文本,您甚至无法标记 复制它,因为根本没有要标记的文本。)
由 PDFBox PDFTextStripper
完成的文本提取(或其他 PDF 库的类似文本提取 类)仅适用于使用 文本绘图命令[=24= 绘制的文本] 通过解码他们的字符串参数。
您的 PDF 很可能需要 OCR 进行文本检索。
我在 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 不包含任何文本。
好的,当您查看它时,您会看到文本字形,但它们实际上并不是使用 文本绘制命令 绘制的(它采用某种编码的字符串并绘制匹配的字形)但是每个字母字形都是使用单独的矢量图形操作绘制的(移动到、直线到、曲线到、填充...)。
(您也无法在 Adobe Reader 中复制和粘贴文本,您甚至无法标记 复制它,因为根本没有要标记的文本。)
由 PDFBox PDFTextStripper
完成的文本提取(或其他 PDF 库的类似文本提取 类)仅适用于使用 文本绘图命令[=24= 绘制的文本] 通过解码他们的字符串参数。
您的 PDF 很可能需要 OCR 进行文本检索。