【发布时间】:2021-01-04 01:41:10
【问题描述】:
我正在与 Apache Drill 集成,它使用户能够直接使用 SQL 查询 PDF 文件。我已经完成了大约 80%,并且对 Tabula 在这方面的表现印象深刻。
但是,当我执行第一个使用 Tabula 库的 Drill 查询时,会弹出一个 Java 图标,并在命令行中看到以下文本:
2020-10-25 15:06:55.770 java[71188:7121498] Persistent UI failed to open file file://localhost/Users/******/Saved%20Application%20State/net.java.openjdk.cmd.savedState/window_1.data: Permission denied (13)
我更改了该目录的权限,但仍然收到 Java 弹出窗口。
这对于 Drill 来说是不正常的行为,我的目标是以编程方式集成 Tabula。 Tabula 是否试图打开一个窗口或类似的东西,如果是这样,有没有办法禁用它?我注意到这不会发生在我的单元测试中。
这里有一些相关的代码sn-ps:
public static List<Table> extractTablesFromPDF(PDDocument document, ExtractionAlgorithm algorithm) {
NurminenDetectionAlgorithm detectionAlgorithm = new NurminenDetectionAlgorithm();
ExtractionAlgorithm algExtractor;
SpreadsheetExtractionAlgorithm extractor=new SpreadsheetExtractionAlgorithm();
ObjectExtractor objectExtractor = new ObjectExtractor(document);
PageIterator pages = objectExtractor.extract();
List<Table> tables= new ArrayList<>();
while (pages.hasNext()) {
Page page = pages.next();
algExtractor = algorithm;
/*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(algExtractor.extract(guess));
}
}
return tables;
}
这不会发生在我的单元测试中。 提前感谢您的帮助!
【问题讨论】:
标签: java pdf pdfbox apache-drill tabula