NuGet을 통해 설치됨
PM> Install-Package Spire.PDF
관련된 링크들
테이블을 사용하면 시각적으로 보기 좋은 방식으로 행과 열에 표시된 데이터에 빠르고 효율적으로 액세스할 수 있습니다. 표로 제시될 때 데이터는 단순히 단어로 사용될 때보다 더 큰 영향을 미치며 독자가 데이터 간의 관계를 쉽게 비교하고 이해할 수 있도록 합니다. 이 기사에서는 다음을 수행하는 방법을 배웁니다 C# 및 VB.NET에서 PDF로 테이블 만들기 Spire.PDF for .NET사용.
Spire.PDF for .NET는 PDF 문서의 테이블 작업을 위해 PdfTable 및 PdfGrid 클래스를 제공합니다. PdfTable 클래스는 너무 많은 서식을 지정하지 않고 간단하고 일반 테이블을 빠르게 만드는 데 사용되는 반면 PdfGrid 클래스는 더 복잡한 테이블을 만드는 데 사용됩니다.
아래 표에는 이 두 클래스의 차이점이 나열되어 있습니다.
PDF 테이블 | Pdf그리드 | |
포맷팅 | ||
열 | 이벤트를 통해 설정할 수 있습니다. API 지원이 없습니다. | API를 통해 설정할 수 있습니다. |
열 | API(StringFormat)를 통해 설정할 수 있습니다. | API(StringFormat)를 통해 설정할 수 있습니다. |
셀 | 이벤트를 통해 설정할 수 있습니다. API 지원이 없습니다. | API를 통해 설정할 수 있습니다. |
기타 | ||
열 범위 | 지원하지 않습니다. | API를 통해 설정할 수 있습니다. |
행 범위 | 이벤트를 통해 설정할 수 있습니다. API 지원이 없습니다. | API를 통해 설정할 수 있습니다. |
중첩 테이블 | 이벤트를 통해 설정할 수 있습니다. API 지원이 없습니다. | API를 통해 설정할 수 있습니다. |
이벤트 | BeginCellLayout, EndCellLayout, BeginRowLayout, EndRowLayout, BeginPageLayout, EndPageLayout. | BeginPageLayout, EndPageLayout. |
다음 섹션에서는 각각 PdfTable 클래스와 PdfGrid 클래스를 사용하여 PDF로 표를 만드는 방법을 보여줍니다.
Spire.PDF for .NET 설치
먼저 Spire.PDF for .NET 패키지에 포함된 DLL 파일을 .NET 프로젝트의 참조로 추가해야 합니다. DLL 파일은 이 링크 에서 다운로드하거나 NuGet을 통해 설치할 수 있습니다.
PM> Install-Package Spire.PDF
PdfTable 클래스를 사용하여 테이블 만들기
다음은 PdfTable 클래스를 사용하여 테이블을 만드는 단계입니다.
- PdfDocument 개체를 만듭니다.
- PdfDocument.Pages.Add() 메서드를 사용하여 페이지를 추가합니다.
- Pdftable 개체를 만듭니다.
- PdfTable.Style 속성을 통해 테이블 스타일을 설정합니다.
- PdfTable.DataSource 속성을 통해 테이블에 데이터를 삽입합니다.
- BeginRowLayout 이벤트를 통해 행 높이와 행 색상을 설정합니다.
- PdfTable.Draw() 메서드를 사용하여 PDF 페이지에 테이블을 그립니다.
- PdfDocument.SaveToFile() 메서드를 사용하여 문서를 PDF 파일로 저장합니다.
- 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 속성을 통해 특정 셀의 서식을 설정합니다.
- PdfGrid.Draw() 메서드를 사용하여 PDF 페이지에 테이블을 그립니다.
- PdfDocument.SaveToFile() 메서드를 사용하여 문서를 PDF 파일로 저장합니다.
- 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일 평가판 라이선스 요청 자신을 위해.