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