Извлечение таблиц из PDF на Java
Contents
[
Hide
]
Используйте TableAbsorber, когда вам нужно обнаружить структуры таблиц в существующем PDF и прочитать их содержимое.
Извлечение текста из обнаруженных таблиц
Используйте этот пример, когда вам нужно находить таблицы на каждой странице и собирать текст их ячеек.
- Откройте исходный PDF в объекте Document.
- Обработайте каждую страницу с помощью TableAbsorber.
- Переберите обнаруженные таблицы, строки и ячейки, затем выведите извлечённый текст.
public static void extract(Path inputFile) {
try (Document document = new Document(inputFile.toString())) {
for (Page page : document.getPages()) {
TableAbsorber absorber = new TableAbsorber();
absorber.visit(page);
for (AbsorbedTable table : absorber.getTableList()) {
System.out.println("Table ----");
for (AbsorbedRow row : table.getRowList()) {
System.out.println("Row:");
StringBuilder rowText = new StringBuilder();
for (AbsorbedCell cell : row.getCellList()) {
StringBuilder cellText = new StringBuilder();
for (TextFragment fragment : cell.getTextFragments()) {
for (TextSegment segment : fragment.getSegments()) {
cellText.append(segment.getText());
}
}
rowText.append(" | ").append(cellText);
}
System.out.println(rowText);
}
}
}
}
}