Извлечь таблицу из PDF в Java

Извлечь таблицу из PDF в Java

Недавно мы опубликовали статью о том, как программно извлечь текст из файла PDF на Java. В этом сообщении блога мы узнаем, как извлечь таблицу из PDF на Java, используя этот Java API для PDF. Эта библиотека предоставляет мощные функции для анализа документов PDF и управления ими. Кроме того, вы можете автоматизировать извлечение данных, создав экстрактор таблиц PDF с помощью этой библиотеки. Однако перед продолжением убедитесь, что на вашем локальном компьютере установлена Java.

В этом руководстве должны быть освещены следующие моменты:

Экстрактор таблиц PDF — установка API

Процесс установки этой библиотеки прост и понятен. На самом деле вы можете либо скачать API, либо установить его, используя следующие конфигурации Maven.

 <repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <classifier>jdk17</classifier>
</dependency>

Извлечь таблицу из PDF в Java

После установки API вы можете приступить к написанию кода для программного создания экстрактора таблиц PDF.

Вы можете выполнить шаги и фрагмент кода, указанные ниже:

  1. Создайте объект класса Document и загрузите исходный файл PDF.
  2. Создайте экземпляр класса TableAbsorber, который выполняет поиск и предоставляет доступ к результатам поиска.
  3. Пролистайте страницы документа PDF, вызвав метод getPages.
  4. Вызовите метод visit, чтобы извлечь таблицу со страницы.
  5. Вызовите метод getTableList, который возвращает доступный только для чтения IList, содержащий найденные таблицы.
  6. Получите строки, вызвав метод getRowList. Выполните итерацию по списку строк.
  7. Пройдитесь по списку ячеек, вызвав метод getCellList.
  8. Вызовите метод getTextFragments, чтобы получить коллекцию объектов TextFragment, описывающих текст, содержащийся в ячейке.
  9. Вызовите метод getSegments, который получает текстовые сегменты для текущего TextFragment.
  10. Распечатайте результаты.

Скопируйте и вставьте следующий код в основной файл:

String filePath = "table.pdf";
// Создайте объект класса Document и загрузите исходный файл PDF. 
Document pdfDocument = new Document(filePath);
// Создайте экземпляр класса TableAbsorber, который выполняет поиск и предоставляет доступ к результатам поиска.  
TableAbsorber absorber = new TableAbsorber();
// Пролистайте страницы документа PDF, вызвав метод getPages. 
for (Page page : pdfDocument.getPages()) {
    // Вызовите метод посещения, чтобы извлечь таблицу со страницы. 
        absorber.visit(page);
        // Вызвать метод getTableList, который возвращает IList только для чтения, содержащий найденные таблицы. 
        for (AbsorbedTable table : absorber.getTableList()) {
                System.out.println("Table");
                // Получить строки, вызвав метод getRowList. Перебрать список строк.  
                for (AbsorbedRow row : table.getRowList()) {
                        // Перебрать список ячеек, вызвав метод getCellList 
                        for (AbsorbedCell cell : row.getCellList()) {
                            // Вызовите метод getTextFragments, чтобы получить коллекцию объектов TextFragment, описывающих текст, содержащийся в ячейке. 
                                for (TextFragment fragment : cell.getTextFragments()) {
                                        StringBuilder sb = new StringBuilder();
                                        // Вызовите метод getSegments, который получает текстовые сегменты для текущего TextFragment. 
                                        for (TextSegment seg : fragment.getSegments())
                                                sb.append(seg.getText());
                                        System.out.print(sb.toString() + "|");
                                }
                        }
                        System.out.println();
                }
        }
}

Получить бесплатную лицензию

Вы можете воспользоваться бесплатной временной лицензией, чтобы опробовать API без ограничений пробной версии.

Подведение итогов

Это подводит нас к концу этого сообщения в блоге. Вы узнали, как программно извлечь таблицу из PDF на Java. Это руководство действительно поможет вам, если вы хотите создать экстрактор таблиц PDF для своего бизнес-приложения. Кроме того, вы можете посетить документацию, чтобы узнать о других функциях.

Кроме того, мы рекомендуем вам следовать нашему Руководству по началу работы.

Наконец, conholdate.com пишет новые сообщения в блоге. Поэтому, пожалуйста, оставайтесь на связи для получения последних обновлений.

Задайте вопрос

Вы можете сообщить нам о своих вопросах или запросах на нашем форуме.

Часто задаваемые вопросы

Могу ли я извлечь таблицы из PDF?

Пожалуйста, посетите эту ссылка, чтобы узнать шаги и фрагмент кода, который программно извлекает таблицу из PDF-документа.

Смотрите также