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