Манипуляция таблицами в существующем PDF

Манипуляция таблицами в существующем PDF

Одной из первых функций, поддерживаемых Aspose.PDF for .NET, являются его возможности работы с таблицами, и он предоставляет отличную поддержку для добавления таблиц в PDF-файлы, создаваемые с нуля или в любых существующих PDF-файлах. Вы также получаете возможность интегрировать таблицу с базой данных (DOM), чтобы создавать динамические таблицы на основе содержимого базы данных. В этом новом релизе мы реализовали новую функцию поиска и анализа простых таблиц, которые уже существуют на странице PDF-документа. Новый класс Aspose.PDF.Text.TableAbsorber предоставляет эти возможности. Использование TableAbsorber очень похоже на существующий класс TextFragmentAbsorber. Следующий фрагмент кода показывает шаги для обновления содержимого в конкретной ячейке таблицы.

Следующий фрагмент кода также работает с библиотекой Aspose.PDF.Drawing.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ManipulateTable()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Tables();

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "input.pdf"))
    {
        // Create TableAbsorber object to find tables
        var absorber = new Aspose.Pdf.Text.TableAbsorber();

        // Visit first page with absorber
        absorber.Visit(document.Pages[1]);

        // Get access to first table on page, their first cell and text fragments in it
        Aspose.Pdf.Text.TextFragment fragment = absorber.TableList[0].RowList[0].CellList[0].TextFragments[1];

        // Change text of the first text fragment in the cell
        fragment.Text = "hi world";

        // Save PDF document
        document.Save(dataDir + "ManipulateTable_out.pdf");
    }
}

Заменить старую таблицу на новую в PDF-документе

В случае, если вам нужно найти конкретную таблицу и заменить ее на желаемую, вы можете использовать метод Replace() класса TableAbsorber для этого. Следующий пример демонстрирует функциональность замены таблицы внутри PDF-документа:

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ReplaceTable()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Tables();

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "Table_input2.pdf"))
    {
        // Create TableAbsorber object to find tables
        var absorber = new Aspose.Pdf.Text.TableAbsorber();

        // Visit first page with absorber
        absorber.Visit(document.Pages[1]);

        // Get first table on the page
        Aspose.Pdf.Text.AbsorbedTable table = absorber.TableList[0];

        // Create new table
        var newTable = new Aspose.Pdf.Table();
        newTable.ColumnWidths = "100 100 100";
        newTable.DefaultCellBorder = new Aspose.Pdf.BorderInfo(BorderSide.All, 1F);

        Row row = newTable.Rows.Add();
        row.Cells.Add("Col 1");
        row.Cells.Add("Col 2");
        row.Cells.Add("Col 3");

        // Replace the table with new one
        absorber.Replace(document.Pages[1], table, newTable);

        // Save PDF document
        document.Save(dataDir + "ReplaceTable_out.pdf");
    }
}