Генератор таблиц
Вам нужно создать динамичные и визуально привлекательные таблицы в ваших PDF-документах с помощью .NET? Aspose.PDF для .NET предоставляет мощный класс TableGenerator, который упрощает этот процесс. В этой главе мы рассмотрим шаги по созданию таблиц в PDF-документе с использованием Aspose.PDF Table Generator, начиная с создания демонстрационного документа и заканчивая генерацией таблиц с помощью класса TableGenerator. Погрузимся в изучение процесса создания таблиц шаг за шагом.
Предварительные требования
Вам потребуется следующее:
- Visual Studio 2019 или более поздняя версия
- Aspose.PDF для .NET 24.3 или более поздняя версия
- Образец PDF-файла
Создание демонстрационного документа
Прежде чем приступить к созданию таблиц, давайте создадим демонстрационный документ с пустыми страницами, на которые будут вставлены наши таблицы. Перед тем как приступить к созданию таблиц, создадим демонстрационный документ с пустыми страницами, куда будут вставляться наши таблицы.
- Создайте новый PDF-документ.
- Добавьте пустые страницы в документ.
- Сохраните документ в указанный файл.
// <summary>
// Создает демонстрационный документ с пустыми страницами.
//
// Параметры:
// - fileName: Путь и имя выходного файла.
// </summary>
internal static void CreateDemoDocument(string fileName)
{
// Создайте новый PDF-документ.
var document = new Aspose.Pdf.Document();
// Добавьте четыре пустые страницы в документ.
for (int i = 0; i < 2; i++)
{
document.Pages.Add();
}
// Сохраните документ в указанный файл.
document.Save(fileName);
}
Генерация таблиц
Как только наш демонстрационный документ готов, мы можем начать генерировать таблицы с помощью класса TableGenerator
. Следующий фрагмент демонстрирует, как генерировать таблицы с различными типами содержимого и параметрами форматирования. Вот как генерировать таблицы:
- Создайте новый экземпляр класса
TableGenerator
. - Создайте новый экземпляр класса
TableGenerator
. - Создайте параметры таблицы и укажите источники данных для входных и выходных файлов.
- Добавьте в параметры таблицы с рядами и ячейками, указав содержимое и форматирование.
- Обработайте генерацию таблицы с помощью метода
Process
и получите контейнер с результатом.
Создание таблиц
Чтобы создать таблицу с использованием Aspose.PDF, выполните следующие шаги:
// Создайте новый экземпляр класса TableGenerator.
var generator = new TableGenerator();
// Создайте параметры таблицы и добавьте демонстрационные таблицы.
var options = new TableOptions();
// Добавьте в параметры источники данных для входного и выходного файлов.
options.AddInput(new FileDataSource(@"C:\Samples\Results\table-generator-demo.pdf"));
options.AddOutput(new FileDataSource(@"C:\Samples\Results\table-generator-demo.pdf"));
// Добавьте первую таблицу в параметры.
options
.InsertPageAfter(1)
.AddTable()
В приведенном выше коде мы создаем экземпляр TableOptions
и указываем источники данных для входных и выходных файлов документа PDF.
В приведенном выше коде мы создаем экземпляр TableOptions
и указываем источники данных входного и выходного файлов для PDF документа.
Добавление содержимого в таблицы
После создания таблицы вы можете заполнить ее строками и ячейками, содержащими различные типы содержимого, такие как текст, HTML, изображения и т.д. Вот как добавить содержимое в таблицу:
options
.AddTable()
.AddRow()
.AddCell()
.AddParagraph(new HtmlFragment("<h1>Заголовок 1</h1>")) // Добавить HTML содержимое в ячейку.
.AddCell()
.AddParagraph(new HtmlFragment("<h2>Заголовок 2</h2>"))
.AddCell()
.AddParagraph(new HtmlFragment("<h3>Заголовок 3</h3>"));
В этом примере мы добавляем строку в таблицу и заполняем ее ячейками, содержащими HTML фрагменты, представляющие заголовки.
Полезные методы:
- InsertPageAfter: Вставляет страницу после указанного номера страницы.
- InsertPageBefore: Вставляет страницу перед указанным номером страницы.
- AddTable: Добавляет таблицу в документ.
- AddTable: Добавляет таблицу в документ.
- AddRow: Добавляет строку в таблицу.
- AddCell: Добавляет ячейки в строку.
- AddParagraph: Добавляет содержимое в ячейку.
Вы можете добавить следующие типы содержимого в параграф:
- HtmlFragment - содержимое на основе HTML-разметки
- TeXFragment - содержимое на основе разметки TeX/LaTeX
- TextFragment - простой текстовый контент
- Image - графическое изображение
Выполнение генерации таблицы
После добавления содержимого мы можем начать создание таблицы.
// Обработка генерации таблицы и получение контейнера с результатами.
var resultContainer = generator.Process(options);
// Вывод количества результатов в коллекции результатов.
Console.WriteLine(resultContainer.ResultCollection.Count);
Метод Process
выполняет генерацию таблицы. Этот метод также может быть обернут в try-catch для обработки ошибок.
Ниже вы можете увидеть полный код примера:
using Aspose.Pdf;
using Aspose.Pdf.Plugins;
using Aspose.Pdf.Text;
namespace AsposePluginsNet8.Documentation
{
// <summary>
// Представляет класс, демонстрирующий использование генерации таблиц в Aspose.Pdf.
// </summary>
internal static class TableDemo
{
// <summary>
// Запускает демонстрацию генерации таблицы.
// </summary>
internal static void Run()
{
// Создание демонстрационного документа и генерация таблиц.
CreateDemoDocument(@"C:\Samples\Results\table-generator-demo.pdf");
CreateDemoTable();
}
// <summary>
// Создает демонстрационный документ с четырьмя пустыми страницами.
//
// Параметры:
// - fileName: Путь и имя выходного файла.
// </summary>
internal static void CreateDemoDocument(string fileName)
{
// Создание нового PDF документа.
var document = new Aspose.Pdf.Document();
// Добавление четырех пустых страниц в документ.
for (int i = 0; i < 2; i++)
{
document.Pages.Add();
}
// Сохранение документа в указанный файл.
document.Save(fileName);
}
// <summary>
// Генерирует таблицы с использованием класса TableGenerator.
// </summary>
internal static void CreateDemoTable()
{
// Создание нового экземпляра класса TableGenerator.
var generator = new TableGenerator();
// Создание параметров таблицы и добавление демонстрационных таблиц.
var options = new TableOptions();
// Добавление источников данных входных и выходных файлов к параметрам.
options.AddInput(new FileDataSource(@"C:\Samples\Results\table-generator-demo.pdf"));
options.AddOutput(new FileDataSource(@"C:\Samples\Results\table-generator-demo.pdf"));
// Добавление первой таблицы к параметрам.
options
.InsertPageAfter(1)
.AddTable()
.AddRow()
.AddCell()
.AddParagraph(new HtmlFragment("<h1>Заголовок 1</h1>"))
.AddCell()
.AddParagraph(new HtmlFragment("<h2>Заголовок 2</h2>"))
.AddCell()
.AddParagraph(new HtmlFragment("<h3>Заголовок 3</h3>"))
.AddRow()
.AddCell()
.AddParagraph(new TeXFragment("{\\small Уравнение $E=mc^2$, открытое в 1905 году Альбертом Эйнштейном.}", true))
.AddCell()
.AddParagraph(new TextFragment("Ячейка 2 2"))
.AddCell()
.AddParagraph(new TextFragment("Ячейка 2 3"))
.AddRow()
.AddCell()
.AddParagraph(new TextFragment("Ячейка 3 1а"))
.AddParagraph(new TextFragment("Ячейка 3 1б"))
.AddCell()
.AddParagraph(new TextFragment("Ячейка 3 2"))
.AddCell()
.AddParagraph(new TextFragment("Ячейка 3 3"));
// Добавление второй таблицы к параметрам.
options
.InsertPageBefore(2)
.AddTable()
.AddRow()
.AddCell()
.AddParagraph(new TextFragment("Заголовок 1 1"))
.AddCell()
.AddParagraph(new TextFragment("Заголовок 1 2"))
.AddCell()
.AddParagraph(new TextFragment("Заголовок 1 3"))
.AddRow()
.AddCell()
.AddParagraph(new Image()
{
File = @"C:\Samples\logo.png",
FixWidth = 75,
FixHeight = 75,
})
.AddCell()
.AddParagraph(new Image()
{
File = @"C:\Samples\sample.svg",
FileType = ImageFileType.Svg,
FixWidth = 75,
FixHeight = 75
})
.AddCell()
.AddParagraph(new Image()
{
ImageStream = File.OpenRead(@"C:\Samples\Conversion\Demo.dcm"),
FileType = ImageFileType.Dicom,
FixWidth = 75,
FixHeight = 75
});
// Обработка генерации таблицы и получение контейнера с результатами.
var resultContainer = generator.Process(options);
// Вывод количества результатов в коллекции результатов.
Console.WriteLine(resultContainer.ResultCollection.Count);
}
}
}