我正在尝试从一组PDF中提取一些信息。到目前为止,该方法仍然有效,但是一个PDF给我带来了不满。
我在Java 7中使用PDFBox 1.8.8。
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方法并通过流漏斗文本,但是为了简化起见,使用了上面的代码。我尝试过使用PDF转换pdftotext
-它的工作原理与其他PDF相同。
我也不例外,一无所有。有任何想法吗?
编辑:附加信息:使用Acrobat Distiller 9.0.0(Windows)创建,格式为PDF-1.6;其他PDF版本为1.4和1.5
似乎不包含外来字符。我可以在Evince PDF查看器中标记/复制文本
编辑2:
该死的。文件属性对话框(Nautilus)表示“安全性:否”,但显示pdfinfo
了以下内容:
Encrypted: yes (print:yes copy:no change:no addNotes:no algorithm:AES)
反正要规避吗?毕竟,pdftotext
可以把文本弄出来。
该文档已“加密”(写保护),但未设置用户密码。这个Stackoverflow答案显示了如何删除加密并仅读取文件:使用pdfbox(例如qpdf)从pdf删除加密
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句