使用Tika从大型pdf中提取文本

时间:2013-09-29 03:48:45

标签: java pdf extract apache-tika

我尝试从大型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();
        }
    }
}

2 个答案:

答案 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);