PDFBox 文本提取 - 空输出

PDFBox text extraction - empty output

我正在尝试从一组 PDF 中提取一些信息。到目前为止,这是有效的,但是一个 PDF 让我感到不满。

我正在使用 PDFBox 1.8.8,Java 7.

PDDocument document = PDDocument.load(pdfFile);
PDFTextStripper stripper = new PDFTextStripper();
System.out.println("File: "+pdfFile.getAbsolutePath()+" readable: "+pdfFile.canRead()+" size: "+pdfFile.length());
System.out.println(stripper.getText(document));

它只是打印

File: /foo/bar/mypdf.pdf readable: true size: 1267743

然后结束。通常我使用 writeText 方法并通过流汇集文本,但上面的代码用于简化。我试过用 pdftotext 转换 PDF - 它和其他的一样工作。

我也不例外,什么都没有。有什么想法吗?

编辑: 附加信息:使用 Acrobat Distiller 9.0.0 (Windows) 创建,格式 PDF-1.6;其他 PDF 版本为 1.4 和 1.5

似乎没有包含外来字符。我可以在 Evince PDF-viewermark/copy 中输入文本

编辑2:

该死。文件 属性 对话框 (Nautilus) 说 "Security: No",但是 pdfinfo 给我:

Encrypted:      yes (print:yes copy:no change:no addNotes:no algorithm:AES)

无论如何要规避它?毕竟pdftotext可以把文字弄出来

文档 "encrypted"(写保护),但没有设置用户密码。这个 Whosebug 答案显示了如何删除加密并简单地读取文件:remove encryption from pdf with pdfbox, like qpdf