Можем ли мы извлечь текст между таблицами в PDF, используя Tabula в Java? - PullRequest
0 голосов
/ 30 октября 2019

Мне удалось извлечь таблицы с помощью 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; 
}

Заранее благодарю за помощь!

1 Ответ

0 голосов
/ 31 октября 2019

сопровождающий Табулы здесь.

В Табуле нет открытых методов для этого, но вы можете прибегнуть к PDFBox's PDFTextStripper.

Может пригодиться один из инструментов командной строки, включенный в PDFBox: https://github.com/apache/pdfbox/blob/trunk/tools/src/main/java/org/apache/pdfbox/tools/ExtractText.java

...