Spire.PDF supports to embed image and grid into a grid cell. We've introduced how to embed an image into a grid cell in the article - How to Insert an Image to PDF Grid Cell in C#, this article is going to show you how to embed a grid into a grid cell in PDF using Spire.PDF.
Detail steps:
Step 1: Create a PDF document and add a page to it.
PdfDocument pdf = new PdfDocument(); PdfPageBase page = pdf.Pages.Add();
Step 2: Create a PDF grid.
//Create a grid PdfGrid grid = new PdfGrid(); //Add two rows PdfGridRow row1 = grid.Rows.Add(); PdfGridRow row2 = grid.Rows.Add(); //Set the Top and Bottom cell padding grid.Style.CellPadding.Top = 5f; grid.Style.CellPadding.Bottom = 5f; //Add two columns grid.Columns.Add(2); //Set columns' width grid.Columns[0].Width = 120f; grid.Columns[1].Width = 120f;
Step 3: Create another PDF grid to embed.
//Create another grid PdfGrid embedGrid = new PdfGrid(); //Add a row PdfGridRow newRow = embedGrid.Rows.Add(); //Add two columns embedGrid.Columns.Add(2); //Set columns' width embedGrid.Columns[0].Width = 50f; embedGrid.Columns[1].Width = 50f;
Step 4: Assign values to the cells of the embed grid and the grid, and set formatting.
//Create a PDFStringFormat instance PdfStringFormat stringFormat = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle); //Assign values to the cells of the embedGrid and set formatting newRow.Cells[0].Value = "Spire.Doc"; newRow.Cells[0].StringFormat = stringFormat; newRow.Cells[1].Value = "Spire.PDF"; newRow.Cells[1].StringFormat = stringFormat; //Assign values to the cells of the grid and set formatting row1.Cells[0].Value = "Customer's Name"; row1.Cells[0].StringFormat = stringFormat; row1.Cells[0].Style.BackgroundBrush = PdfBrushes.Gray; row1.Cells[1].Value = "Product(s)"; row1.Cells[1].StringFormat = stringFormat; row1.Cells[1].Style.BackgroundBrush = PdfBrushes.Gray; row2.Cells[0].Value = "Michael"; row2.Cells[0].StringFormat = stringFormat; //Assign the embedGrid to a cell of the grid row2.Cells[1].Value = embedGrid; row2.Cells[1].StringFormat = stringFormat;
Step 5: Draw the grid to the new added page.
grid.Draw(page, new PointF(0f, 50f));
Step 6: Save the document.
pdf.SaveToFile("EmbedGridInCell.pdf");
Screenshot:
Full code:
using Spire.Pdf.Grid; using Spire.Pdf; using System.Drawing; using Spire.Pdf.Graphics; namespace Embed_a_Grid_in_a_Grid_Cell_in_PDF { class Program { static void Main(string[] args) { //Create a pdf document PdfDocument pdf = new PdfDocument(); //Add a page PdfPageBase page = pdf.Pages.Add(); //Create a pdf grid PdfGrid grid = new PdfGrid(); //Add two rows PdfGridRow row1 = grid.Rows.Add(); PdfGridRow row2 = grid.Rows.Add(); //Set Top and Bottom cell padding of the grid grid.Style.CellPadding.Top = 5f; grid.Style.CellPadding.Bottom = 5f; //Add two columns grid.Columns.Add(2); //Set the columns’ width grid.Columns[0].Width = 120f; grid.Columns[1].Width = 120f; //Create another grid to embed PdfGrid embedGrid = new PdfGrid(); //Add a row PdfGridRow newRow = embedGrid.Rows.Add(); //Add two columns embedGrid.Columns.Add(2); //Set the columns’ width embedGrid.Columns[0].Width = 50f; embedGrid.Columns[1].Width = 50f; //Create a PDFStringFormat instance PdfStringFormat stringFormat = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle); //Assign values to the cells of the embedGrid and set formatting newRow.Cells[0].Value = "Spire.Doc"; newRow.Cells[0].StringFormat = stringFormat; newRow.Cells[1].Value = "Spire.PDF"; newRow.Cells[1].StringFormat = stringFormat; //Assign values to the cells of the grid and set formatting row1.Cells[0].Value = "Customer's Name"; row1.Cells[0].StringFormat = stringFormat; row1.Cells[0].Style.BackgroundBrush = PdfBrushes.Gray; row1.Cells[1].Value = "Product(s)"; row1.Cells[1].StringFormat = stringFormat; row1.Cells[1].Style.BackgroundBrush = PdfBrushes.Gray; row2.Cells[0].Value = "Michael"; row2.Cells[0].StringFormat = stringFormat; //Assign the embedGrid to the cell of the grid row2.Cells[1].Value = embedGrid; row2.Cells[1].StringFormat = stringFormat; //Draw the grid to the new added page grid.Draw(page, new PointF(0f, 50f)); //Save the pdf document pdf.SaveToFile("EmbedGridInCell.pdf"); } } }