1

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

2 回答 2

2

Javadocs

为了避免不可预知的过多内存使用,返回的字符串仅包含从输入文档中提取的最多 getMaxStringLength() 的第一个字符。使用 setMaxStringLength(int) 方法来调整此限制。

调用setMaxStringLength(-1)将禁用此限制。

于 2014-09-15T18:50:37.250 回答
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);
于 2013-12-20T13:57:12.687 回答