我尝试从大型pdf中提取文本,但我只获得了第一页,我需要将所有文本传递给字符串变量。
这是代码
public class ParsePDF {
public static void main(String args[]) throws Exception {
try {
File file = new File("C:/vlarge.pdf");
String content = new Tika().parseToString(file);
System.out.println("The Content: " + content);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:2)
来自Javadocs:
为了避免不可预测的多余内存使用,返回的字符串包含 最多只能从getMaxStringLength()中提取第一个字符 输入文件。使用setMaxStringLength(int)方法来调整它 限制。
调用setMaxStringLength(-1)
将禁用此限制。
答案 1 :(得分:1)
尝试使用apache api TIKA。它也适用于大型PDF。
示例:
InputStream input = new FileInputStream("sample.pdf");
ContentHandler handler = new BodyContentHandler(Integer.MAX_VALUE);
Metadata metadata = new Metadata();
new PDFParser().parse(input, handler, metadata, new ParseContext());
String plainText = handler.toString();
System.out.println(plainText);