Извлеките таблицы из PDF с помощью Java

Извлеките таблицу из PDF-документа. Используйте Aspose.PDF для Java для программного изменения PDF-файлов

Как извлечь таблицы из PDF-документа с помощью библиотеки Java

Чтобы извлечь таблицу, мы будем использовать Aspose.PDF для Java API, который представляет собой многофункциональный, мощный и простой в использовании API преобразования для платформы Java. Вы можете загрузить его последнюю версию непосредственно с Maven и установить ее в свой проект на базе Maven, добавив следующие конфигурации в pom.xml.

Repository

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java AP</name>
    <url>https://releases.aspose.com/java/repo/</url>
</repository>

Dependency

<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>version of aspose-pdf API</version>
</dependency>

Извлечение таблиц из PDF с помощью Java


Вам понадобится Aspose.PDF for Java, чтобы попробовать код в своей среде.

  1. Загрузите PDF-файл с экземпляром документа.
  2. Создайте объект TableAbsorber для поиска таблиц.
  3. Посетите первую страницу с абсорбером.
  4. Получите первый стол на странице.
  5. Уберите таблицу. Сохраните файл.

Извлечение таблиц из PDF - Java


    Document pdfDocument = new Document(_dataDir + "the_worlds_cities_in_2018_data_booklet 7.pdf");
    for(Page page : pdfDocument.getPages())
    {
        TableAbsorber absorber = new TableAbsorber();
        absorber.visit(page);
        for (AbsorbedTable table : absorber.getTableList())
        {
            for (AbsorbedRow row : table.getRowList())
            {
                for (AbsorbedCell cell : row.getCellList())
                {
                    TextFragmentCollection textFragmentCollection = cell.getTextFragments();
                    for (TextFragment fragment : textFragmentCollection)
                    {
                        String txt = "";
                        for (TextSegment seg : fragment.getSegments())
                            txt += seg.getText();
                        System.out.println(txt);
                    }
                }
            }
        }
    }