我们可以使用 Java 中的 Tabula 提取 PDF 表格之间的文本吗?

Can we extract texts between tables in PDF using Tabula in Java?

我能够使用 Tabula 提取表格。我寻找如何使用 Tabula 输出它们之间的文本的方法,但它似乎只适用于表格。知道怎么做吗?

public static List<Table> extractTablesFromPDF(PDDocument document) {
    NurminenDetectionAlgorithm detectionAlgorithm = new NurminenDetectionAlgorithm();

    ExtractionAlgorithm algExtractor;

    SpreadsheetExtractionAlgorithm extractor=new SpreadsheetExtractionAlgorithm();

    ObjectExtractor extractor = new ObjectExtractor(document);
    PageIterator pages = extractor.extract();
    List<Table> tables=new ArrayList<Table>(); 
    while (pages.hasNext()) {
        Page page = pages.next();
        if (extractor.isTabular(page)) {
            algExtractor=new SpreadsheetExtractionAlgorithm();
        }
        else
            algExtractor=new BasicExtractionAlgorithm(); 

        List<Rectangle> tablesOnPage = detectionAlgorithm.detect(page);


        for (Rectangle guessRect : tablesOnPage) {
            Page guess = page.getArea(guessRect);
            tables.addAll((List<Table>) algExtractor.extract(guess));     
        }

    }

    return tables; 
}

提前感谢您的帮助!

这里是 Tabula 的维护者。

Tabula 中没有 public 方法可以这样做,但您可以求助于 PDFBox 的 PDFTextStripper

查看 PDFBox 附带的命令行工具之一可能会有用:https://github.com/apache/pdfbox/blob/trunk/tools/src/main/java/org/apache/pdfbox/tools/ExtractText.java