Оглавление
Установлено через NuGet
PM> Install-Package Spire.PDF
Ссылки по теме
Таблица обеспечивает быстрый и эффективный доступ к данным, отображаемым в строках и столбцах в визуально привлекательной форме. Представленные в виде таблицы данные оказывают большее влияние, чем просто слова, и позволяют читателям легко сравнивать и понимать отношения между ними. В этой статье вы узнаете, как создать таблицу в формате PDF на C# и VB.NET используя Spire.PDF for .NET.
Spire.PDF for .NET предлагает класс PdfTable и PdfGrid для работы с таблицами в документе PDF. Класс PdfTable используется для быстрого создания простых обычных таблиц без лишнего форматирования, а класс PdfGrid используется для создания более сложных таблиц.
В таблице ниже перечислены различия между этими двумя классами.
PdfТаблица | PdfGrid | |
Форматирование | ||
Ряд | Можно установить через события. Нет поддержки API. | Можно настроить через API. |
Столбец | Можно установить через API (StringFormat). | Можно установить через API (StringFormat). |
Клетка | Можно установить через события. Нет поддержки API. | Можно настроить через API. |
Другие | ||
Диапазон столбцов | Не поддерживается. | Можно настроить через API. |
Диапазон строк | Можно установить через события. Нет поддержки API. | Можно настроить через API. |
Вложенная таблица | Можно установить через события. Нет поддержки API. | Можно настроить через API. |
События | Бегинцелллайаут, Эндцелллайаут, БегинРовлайаут, ЭндРовлайаут, Бегинпажемакет, ендпажемакаут. | Бегинпажемакет, ендпажемакаут. |
В следующих разделах показано, как создать таблицу в PDF с помощью классов PdfTable и PdfGrid соответственно.
Установите Spire.PDF for .NET
Для начала вам нужно добавить файлы DLL, включенные в пакет Spire.PDF for .NET, в качестве ссылок в ваш проект .NET. Файлы DLL можно загрузить по этой ссылке или установить через NuGet.
PM> Install-Package Spire.PDF
Создайте таблицу с помощью класса PdfTable
Ниже приведены шаги для создания таблицы с использованием класса PdfTable.
- Создайте объект PdfDocument.
- Добавьте к нему страницу с помощью метода PdfDocument.Pages.Add().
- Создайте объект Pdftable.
- Задайте стиль таблицы через свойство PdfTable.Style.
- Вставить данные в таблицу через свойство PdfTable.DataSource.
- Установите высоту строки и цвет строки через событие BeginRowLayout.
- Нарисуйте таблицу на странице PDF с помощью метода PdfTable.Draw().
- Сохраните документ в файл PDF с помощью метода PdfDocument.SaveToFile().
- C#
- VB.NET
using System; using System.Data; using System.Drawing; using Spire.Pdf; using Spire.Pdf.Graphics; using Spire.Pdf.Tables; namespace CreateTable { class Program { static void Main(string[] args) { //Create a PdfDocument object PdfDocument doc = new PdfDocument(); //Add a page PdfPageBase page = doc.Pages.Add(PdfPageSize.A4, new PdfMargins(40)); //Create a PdfTable object PdfTable table = new PdfTable(); //Set font for header and the rest cells table.Style.DefaultStyle.Font = new PdfTrueTypeFont(new Font("Times New Roman", 12f, FontStyle.Regular), true); table.Style.HeaderStyle.Font = new PdfTrueTypeFont(new Font("Times New Roman", 12f, FontStyle.Bold), true); //Crate a DataTable DataTable dataTable = new DataTable(); dataTable.Columns.Add("ID"); dataTable.Columns.Add("Name"); dataTable.Columns.Add("Department"); dataTable.Columns.Add("Position"); dataTable.Columns.Add("Level"); dataTable.Rows.Add(new string[] { "1", "David", "IT", "Manager", "1" }); dataTable.Rows.Add(new string[] { "3", "Julia", "HR", "Manager", "1" }); dataTable.Rows.Add(new string[] { "4", "Sophie", "Marketing", "Manager", "1" }); dataTable.Rows.Add(new string[] { "7", "Wickey", "Marketing", "Sales Rep", "2" }); dataTable.Rows.Add(new string[] { "9", "Wayne", "HR", "HR Supervisor", "2" }); dataTable.Rows.Add(new string[] { "11", "Mia", "Dev", "Developer", "2" }); //Set the datatable as the data source of table table.DataSource = dataTable; //Show header(the header is hidden by default) table.Style.ShowHeader = true; //Set font color and backgroud color of header row table.Style.HeaderStyle.BackgroundBrush = PdfBrushes.Gray; table.Style.HeaderStyle.TextBrush = PdfBrushes.White; //Set text alignment in header row table.Style.HeaderStyle.StringFormat = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle); //Set text alignment in other cells for (int i = 0; i < table.Columns.Count; i++) { table.Columns[i].StringFormat = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle); } //Register with BeginRowLayout event table.BeginRowLayout += Table_BeginRowLayout; //Draw table on the page table.Draw(page, new PointF(0, 30)); //Save the document to a PDF file doc.SaveToFile("PdfTable.pdf"); } //Event handler private static void Table_BeginRowLayout(object sender, BeginRowLayoutEventArgs args) { //Set row height args.MinimalHeight = 20f; //Alternate row color if (args.RowIndex < 0) { return; } if (args.RowIndex % 2 == 1) { args.CellStyle.BackgroundBrush = PdfBrushes.LightGray; } else { args.CellStyle.BackgroundBrush = PdfBrushes.White; } } } }
Создайте таблицу с помощью класса PdfGrid
Ниже приведены шаги по созданию таблицы с использованием класса PdfGrid.
- Создайте объект PdfDocument.
- Добавьте к нему страницу с помощью метода PdfDocument.Pages.Add().
- Создайте объект PdfGrid.
- Задайте стиль таблицы через свойство PdfGrid.Style.
- Добавьте строки в таблицу с помощью метода PdfGrid.Rows.Add().
- Вставка данных в определенные ячейки через свойство PdfGridRow.Cells[index].Value.
- Распределяйте ячейки по столбцам или строкам с помощью свойства PdfGridRow.RowSpan или PdfGridRow.ColumnSpan.
- Задайте форматирование конкретной ячейки с помощью свойств PdfGridRow.Cells[index].StringFormat и PdfGridRow.Cells[index].Style.
- Нарисуйте таблицу на странице PDF с помощью метода PdfGrid.Draw().
- Сохраните документ в файл PDF с помощью метода PdfDocument.SaveToFile().
- C#
- VB.NET
using Spire.Pdf; using Spire.Pdf.Graphics; using Spire.Pdf.Grid; using System.Drawing; namespace CreateGrid { class Program { static void Main(string[] args) { //Create a PdfDocument object PdfDocument doc = new PdfDocument(); //Add a page PdfPageBase page = doc.Pages.Add(PdfPageSize.A4,new PdfMargins(40)); //Create a PdfGrid PdfGrid grid = new PdfGrid(); //Set cell padding grid.Style.CellPadding = new PdfPaddings(1, 1, 1, 1); //Set font grid.Style.Font = new PdfTrueTypeFont(new Font("Times New Roman", 13f, FontStyle.Regular), true); //Add rows PdfGridRow row1 = grid.Rows.Add(); PdfGridRow row2 = grid.Rows.Add(); PdfGridRow row3 = grid.Rows.Add(); PdfGridRow row4 = grid.Rows.Add(); grid.Columns.Add(4); //Set column width foreach (PdfGridColumn col in grid.Columns) { col.Width = 110f; } //Write data into specific cells row1.Cells[0].Value = "Order and Payment Status"; row2.Cells[0].Value = "Order number"; row2.Cells[1].Value = "Date"; row2.Cells[2].Value = "Customer"; row2.Cells[3].Value = "Paid or not"; row3.Cells[0].Value = "00223"; row3.Cells[1].Value = "2022/06/02"; row3.Cells[2].Value = "Brick Lane Realty"; row3.Cells[3].Value = "Yes"; row4.Cells[0].Value = "00224"; row4.Cells[1].Value = "2022/06/03"; row4.Cells[3].Value = "No"; //Span cell across columns row1.Cells[0].ColumnSpan = 4; //Span cell across rows row3.Cells[2].RowSpan = 2; //Set text alignment of specific cells row1.Cells[0].StringFormat = new PdfStringFormat(PdfTextAlignment.Center); row3.Cells[2].StringFormat = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Middle); //Set background color of specific cells row1.Cells[0].Style.BackgroundBrush = PdfBrushes.Orange; row4.Cells[3].Style.BackgroundBrush = PdfBrushes.LightGray; //Format cell border PdfBorders borders = new PdfBorders(); borders.All = new PdfPen(Color.Orange, 0.8f); foreach (PdfGridRow pgr in grid.Rows) { foreach (PdfGridCell pgc in pgr.Cells) { pgc.Style.Borders = borders; } } //Draw table on the page grid.Draw(page, new PointF(0, 30)); //Save the document to a PDF file doc.SaveToFile("PdfGrid.pdf"); } } }
Подать заявку на временную лицензию
Если вы хотите удалить оценочное сообщение из сгенерированных документов или избавиться от функциональных ограничений, пожалуйста запросить 30-дневную пробную лицензию для себя.