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

标签 java tabula

我能够使用 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

关于java - 我们可以使用 Java 中的 Tabula 提取 PDF 表格之间的文本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58617604/

相关文章:

pandas - PySpark Tabula-Py Read_PDF(错误 : No module named 'org.apache.commons' )

python - 如何使用 Python 抓取 PDF;仅特定内容

python - 如何在Python中使用tabula提取PDF文件中存在的多个表格?

Python:我尝试使用 tabula:ModuleNotFoundError:没有名为 'tabula' 的模块

java - 无法在 Android 中使用 SimpleDateFormat 解析 MYSQL 时间戳

java - 异步post方法中设置连接超时的方法

java - maven:无法执行项目目标

java - 如何在运行时更改 @autowired bean 实现?

python - 将 PDF 转换为 XLS

java - 来自 Jedis 的 Redis sessionID