Articles in this section
Category / Section

How to use multiple fonts in a PDF table cell using C# and VB.NET?

5 mins read

Essential® PDF is a .NET PDF library used to create, read, and edit PDF documents. Using this library, you can use multiple fonts in a table cell using C# and VB.NET.

Steps to use multiple fonts in a table cell programmatically:

  1. Create a new console application project. Create a console application project in .NET PDF library
  2. Install the Syncfusion.Pdf.WinForms NuGet package as a reference to your .NET Framework application from NuGet.org. NuGet package reference screenshot in .NET PDF library
  3. Include the following namespaces in the Program.cs file.

C#

using Syncfusion.Pdf;
using Syncfusion.Pdf.Graphics;
using Syncfusion.Pdf.Grid;
using System.Drawing;

 

VB.NET

Imports Syncfusion.Pdf
Imports Syncfusion.Pdf.Graphics
Imports Syncfusion.Pdf.Grid
Imports System.Drawing

 

  1. Use the following code snippet to use multiple fonts in a table cell.

C#

// Create a new PDF document
PdfDocument pdfDocument = new PdfDocument();
// Create the page
PdfPage pdfPage = pdfDocument.Pages.Add();
// Create new PdfGrid
PdfGrid pdfGrid = new PdfGrid();
// Add row
PdfGridRow row1 = pdfGrid.Rows.Add();
// Add columns
pdfGrid.Columns.Add(3);
// Set the value to the specific cell
row1.Cells[0].Value = "Employee Details";
row1.Cells[0].ColumnSpan = 3;
// Add row
PdfGridRow row2 = pdfGrid.Rows.Add();
row2.Cells[0].Value = "Employee ID";
row2.Cells[1].Value = "Employee Name";
row2.Cells[2].Value = "Employee Address";
// Add row
PdfGridRow row3 = pdfGrid.Rows.Add();
row3.Cells[0].Value = "E01";
row3.Cells[1].Value = "Simons Bistro";
row3.Height = 50;
pdfGrid.BeginCellLayout += PdfGrid_BeginCellLayout;
// Create and customize the string formats
PdfStringFormat format = new PdfStringFormat();
format.Alignment = PdfTextAlignment.Center;
pdfGrid.Rows[0].Cells[0].StringFormat = format;
// Draw the PdfGrid
pdfGrid.Draw(pdfPage, PointF.Empty);
// Save the document
pdfDocument.Save("Table.pdf");
// Close the document
pdfDocument.Close(true);
// This will open the PDF file so the result will be seen in the default PDF viewer
System.Diagnostics.Process.Start("Table.pdf");

private static void PdfGrid_BeginCellLayout(object sender, PdfGridBeginCellLayoutEventArgs args)
{
    // Draw multiple fonts in a single table cell
    if (args.RowIndex == 2 && args.CellIndex == 2)
    {
        PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 10, PdfFontStyle.Bold);
        args.Graphics.DrawString("Phone: 31 12 34 56", font, PdfBrushes.Black, args.Bounds.X, args.Bounds.Y);
        font = new PdfStandardFont(PdfFontFamily.TimesRoman, 10, PdfFontStyle.Italic);
        args.Graphics.DrawString("Email: simonsbistro@outlook.com", font, PdfBrushes.Black, args.Bounds.X, args.Bounds.Y + 12);
        font = new PdfStandardFont(PdfFontFamily.Courier, 10, PdfFontStyle.Italic);
        args.Graphics.DrawString("Address: Vinbaeltet 34, US", font, PdfBrushes.Black, args.Bounds.X, args.Bounds.Y + (2 * 12));
    }
}

 

VB.NET

' Create a new PDF document
Dim pdfDocument As PdfDocument = New PdfDocument()
' Create the page
Dim pdfPage As PdfPage = pdfDocument.Pages.Add()
' Create new PdfGrid
Dim pdfGrid As PdfGrid = New PdfGrid()
' Add row
Dim row1 As PdfGridRow = pdfGrid.Rows.Add()
' Add columns
pdfGrid.Columns.Add(3)
' Set the value to the specific cell
row1.Cells(0).Value = "Employee Details"
row1.Cells(0).ColumnSpan = 3
' Add row
Dim row2 As PdfGridRow = pdfGrid.Rows.Add()
row2.Cells(0).Value = "Employee ID"
row2.Cells(1).Value = "Employee Name"
row2.Cells(2).Value = "Employee Address"
' Add row
Dim row3 As PdfGridRow = pdfGrid.Rows.Add()
row3.Cells(0).Value = "E01"
row3.Cells(1).Value = "Simons Bistro"
row3.Height = 50
AddHandler pdfGrid.BeginCellLayout, AddressOf PdfGrid_BeginCellLayout

' Create and customize the string formats
Dim format As PdfStringFormat = New PdfStringFormat()
format.Alignment = PdfTextAlignment.Center
pdfGrid.Rows(0).Cells(0).StringFormat = format
' Draw the PdfGrid
pdfGrid.Draw(pdfPage, PointF.Empty)
' Save the document
pdfDocument.Save("Table.pdf")
' Close the document
pdfDocument.Close(True)
' This will open the PDF file so the result will be seen in the default PDF viewer
System.Diagnostics.Process.Start("Table.pdf")

Private Shared Sub PdfGrid_BeginCellLayout(ByVal sender As Object, ByVal args As PdfGridBeginCellLayoutEventArgs)
' Draw multiple fonts in a single table cell
    If args.RowIndex = 2 AndAlso args.CellIndex = 2 Then
        Dim font As PdfFont = New PdfStandardFont(PdfFontFamily.Helvetica, 10, PdfFontStyle.Bold)
        args.Graphics.DrawString("Phone: 31 12 34 56", font, PdfBrushes.Black, args.Bounds.X, args.Bounds.Y)
        font = New PdfStandardFont(PdfFontFamily.TimesRoman, 10, PdfFontStyle.Italic)
        args.Graphics.DrawString("Email: simonsbistro@outlook.com", font, PdfBrushes.Black, args.Bounds.X, args.Bounds.Y + 12)
        font = New PdfStandardFont(PdfFontFamily.Courier, 10, PdfFontStyle.Italic)
        args.Graphics.DrawString("Address: Vinbaeltet 34, US", font, PdfBrushes.Black, args.Bounds.X, args.Bounds.Y + (2 * 12))
    End If
End Sub
A complete working sample can be downloaded from PDFFormSample.zip.

By executing the program, you will get the PDF document as follows. Output document screenshot in .NET PDF library

Take a moment to peruse the documentation, where you can find the options like creating a table using PdfLightTable and PdfGrid, cell and row customization in PdfLightTable and PdfGrid, built-in table styles for PdfGrid, and pagination in PdfGrid and PdfLightTable with code examples.

Refer here to explore the rich set of Syncfusion Essential® PDF features.

Note:

Starting with v16.2.0.x, if you reference Syncfusion® assemblies from a trial setup or from the NuGet feed, include a license key in your projects. Refer to the link to learn about generating and registering the Syncfusion® license key in your application to use the components without a trial message.

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please  to leave a comment
Access denied
Access denied