我试图从一组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-viewer
中标记/复制文本EDIT2:
该死的。文件属性对话框(Nautilus)说"安全:否",但是pdfinfo
给了我:
Encrypted: yes (print:yes copy:no change:no addNotes:no algorithm:AES)
无论如何要绕过那个?毕竟,pdftotext
可以将文本删除。
答案 0 :(得分:1)
该文件被加密" (写保护),但没有设置用户密码。此Stackoverflow答案显示了如何删除加密并只读取文件:remove encryption from pdf with pdfbox, like qpdf