- Demo
- C# source
- VB.Net source
The sample demonstrates how to work with font in PDF document.
using System; using System.Drawing; using Spire.Pdf; using Spire.Pdf.Graphics; namespace Font { class Program { static void Main(string[] args) { //Create a pdf document. PdfDocument doc = new PdfDocument(); // Create one page PdfPageBase page = doc.Pages.Add(); //Draw the text float l = page.Canvas.ClientSize.Width / 2; PointF center = new PointF(l, l); float r = (float)Math.Sqrt(2 * l * l); PdfRadialGradientBrush brush = new PdfRadialGradientBrush(center, 0f, center, r, Color.Blue, Color.Red); PdfFontFamily[] fontFamilies = (PdfFontFamily[])Enum.GetValues(typeof(PdfFontFamily)); float y = 10; for (int i = 0; i < fontFamilies.Length; i++) { String text = String.Format("Font Family: {0}", fontFamilies[i]); float x1 = 0; y = 10 + i * 16; PdfFont font1 = new PdfFont(PdfFontFamily.Courier, 14f); PdfFont font2 = new PdfFont(fontFamilies[i], 14f); float x2 = x1 + 10 + font1.MeasureString(text).Width; page.Canvas.DrawString(text, font1, brush, x1, y); page.Canvas.DrawString(text, font2, brush, x2, y); } //true type font - embedded. System.Drawing.Font font = new System.Drawing.Font("Arial", 14f, FontStyle.Bold); PdfTrueTypeFont trueTypeFont = new PdfTrueTypeFont(font); page.Canvas.DrawString("Font Family: Arial - Embedded", trueTypeFont, brush, 0, (y = y + 16f)); //right to left String arabicText = "\u0627\u0644\u0630\u0647\u0627\u0628\u0021\u0020" + "\u0628\u062F\u0648\u0631\u0647\u0020\u062D\u0648\u0644\u0647\u0627\u0021\u0020" + "\u0627\u0644\u0630\u0647\u0627\u0628\u0021\u0020" + "\u0627\u0644\u0630\u0647\u0627\u0628\u0021\u0020" + "\u0627\u0644\u0630\u0647\u0627\u0628\u0021"; trueTypeFont = new PdfTrueTypeFont(font, true); RectangleF rctg = new RectangleF(new PointF(0, (y = y + 16f)), page.Canvas.ClientSize); PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Right); format.RightToLeft = true; page.Canvas.DrawString(arabicText, trueTypeFont, brush, rctg, format); //true type font - not embedded font = new System.Drawing.Font("Batang", 14f, FontStyle.Italic); trueTypeFont = new PdfTrueTypeFont(font); page.Canvas.DrawString("Font Family: Batang - Not Embedded", trueTypeFont, brush, 0, (y = y + 16f)); //font file String fontFileName = "Hawaii_Killer.ttf"; trueTypeFont = new PdfTrueTypeFont(fontFileName, 20f); page.Canvas.DrawString("Hawaii Killer Font", trueTypeFont, brush, 0, (y = y + 16f)); page.Canvas.DrawString("Hawaii Killer Font, from http://www.1001freefonts.com", new PdfFont(PdfFontFamily.Helvetica, 8f), brush, 10, (y = y + 20f)); //cjk font PdfCjkStandardFont cjkFont = new PdfCjkStandardFont(PdfCjkFontFamily.MonotypeHeiMedium, 14f); page.Canvas.DrawString("How to say 'Font' in Chinese? \u5B57\u4F53", cjkFont, brush, 0, (y = y + 16f)); cjkFont = new PdfCjkStandardFont(PdfCjkFontFamily.HanyangSystemsGothicMedium, 14f); page.Canvas.DrawString("How to say 'Font' in Japanese? \u30D5\u30A9\u30F3\u30C8", cjkFont, brush, 0, (y = y + 16f)); cjkFont = new PdfCjkStandardFont(PdfCjkFontFamily.HanyangSystemsShinMyeongJoMedium, 14f); page.Canvas.DrawString("How to say 'Font' in Korean? \uAE00\uAF34", cjkFont, brush, 0, (y = y + 16f)); //Save pdf file. doc.SaveToFile("Font.pdf"); doc.Close(); //Launching the Pdf file. System.Diagnostics.Process.Start("Font.pdf"); } } }
Imports System.Drawing Imports Spire.Pdf Imports Spire.Pdf.Graphics Namespace FontFormat Friend Class Program Shared Sub Main(ByVal args() As String) 'Create a pdf document. Dim doc As New PdfDocument() ' Create one page Dim page As PdfPageBase = doc.Pages.Add() 'Draw the text Dim l As Single = page.Canvas.ClientSize.Width / 2 Dim center As New PointF(l, l) Dim r As Single = CSng(Math.Sqrt(2 * l * l)) Dim brush As New PdfRadialGradientBrush(center, 0.0F, center, r, Color.Blue, Color.Red) Dim fontFamilies() As PdfFontFamily _ = CType(System.Enum.GetValues(GetType(PdfFontFamily)), PdfFontFamily()) Dim y As Single = 10 For i As Integer = 0 To fontFamilies.Length - 1 Dim text As String = String.Format("Font Family: {0}", fontFamilies(i)) Dim x1 As Single = 0 y = 10 + i * 16 Dim font1 As New PdfFont(PdfFontFamily.Courier, 14.0F) Dim font2 As New PdfFont(fontFamilies(i), 14.0F) Dim x2 As Single = x1 + 10 + font1.MeasureString(text).Width page.Canvas.DrawString(text, font1, brush, x1, y) page.Canvas.DrawString(text, font2, brush, x2, y) Next i 'true type font - embedded. Dim font As New System.Drawing.Font("Arial", 14.0F, FontStyle.Bold) Dim trueTypeFont As New PdfTrueTypeFont(font) y = y + 16.0F page.Canvas.DrawString("Font Family: Arial - Embedded", trueTypeFont, brush, 0, y) 'right to left Dim arabicText As String _ = ChrW(&H627).ToString() & ChrW(&H644).ToString() & ChrW(&H630).ToString() _ & ChrW(&H647).ToString() & ChrW(&H627).ToString() & ChrW(&H628).ToString() _ & ChrW(&H21).ToString() & ChrW(&H20).ToString() & ChrW(&H628).ToString() _ & ChrW(&H62F).ToString() & ChrW(&H648).ToString() & ChrW(&H631).ToString() _ & ChrW(&H647).ToString() & ChrW(&H20).ToString() & ChrW(&H62D).ToString() _ & ChrW(&H648).ToString() & ChrW(&H644).ToString() & ChrW(&H647).ToString() _ & ChrW(&H627).ToString() & ChrW(&H21).ToString() & ChrW(&H20).ToString() _ & ChrW(&H627).ToString() & ChrW(&H644).ToString() & ChrW(&H630).ToString() _ & ChrW(&H647).ToString() & ChrW(&H627).ToString() & ChrW(&H628).ToString() _ & ChrW(&H21).ToString() & ChrW(&H20).ToString() & ChrW(&H627).ToString() _ & ChrW(&H644).ToString() & ChrW(&H630).ToString() & ChrW(&H647).ToString() _ & ChrW(&H627).ToString() & ChrW(&H628).ToString() & ChrW(&H21).ToString() _ & ChrW(&H20).ToString() & ChrW(&H627).ToString() & ChrW(&H644).ToString() _ & ChrW(&H630).ToString() & ChrW(&H647).ToString() & ChrW(&H627).ToString() _ & ChrW(&H628).ToString() & ChrW(&H21).ToString() trueTypeFont = New PdfTrueTypeFont(font, True) y = y + 16.0F Dim rctg As New RectangleF(New PointF(0, y), page.Canvas.ClientSize) Dim format As New PdfStringFormat(PdfTextAlignment.Right) format.RightToLeft = True page.Canvas.DrawString(arabicText, trueTypeFont, brush, rctg, format) 'true type font - not embedded font = New System.Drawing.Font("Batang", 14.0F, FontStyle.Italic) trueTypeFont = New PdfTrueTypeFont(font) y = y + 16.0F page.Canvas.DrawString("Font Family: Batang - Not Embedded", trueTypeFont, brush, 0, y) 'font file Dim fontFileName As String = "Hawaii_Killer.ttf" trueTypeFont = New PdfTrueTypeFont(fontFileName, 20.0F) y = y + 16.0F page.Canvas.DrawString("Hawaii Killer Font", trueTypeFont, brush, 0, y) y = y + 20.0F page.Canvas.DrawString("Hawaii Killer Font, from http://www.1001freefonts.com", _ New PdfFont(PdfFontFamily.Helvetica, 8.0F), brush, 10, y) 'cjk font Dim cjkFont As New PdfCjkStandardFont(PdfCjkFontFamily.MonotypeHeiMedium, 14.0F) y = y + 16.0F page.Canvas.DrawString("How to say 'Font' in Chinese? " _ & ChrW(&H5B57).ToString() & ChrW(&H4F53).ToString(), cjkFont, brush, 0, y) cjkFont = New PdfCjkStandardFont(PdfCjkFontFamily.HanyangSystemsGothicMedium, 14.0F) y = y + 16.0F page.Canvas.DrawString("How to say 'Font' in Japanese? " _ & ChrW(&H30D5).ToString() & ChrW(&H30A9).ToString() _ & ChrW(&H30F3).ToString() & ChrW(&H30C8).ToString(), cjkFont, brush, 0, y) cjkFont = New PdfCjkStandardFont(PdfCjkFontFamily.HanyangSystemsShinMyeongJoMedium, 14.0F) y = y + 16.0F page.Canvas.DrawString("How to say 'Font' in Korean? " _ & ChrW(&HAE00).ToString() & ChrW(&HAF34).ToString(), cjkFont, brush, 0, y) 'Save pdf file. doc.SaveToFile("Font.pdf") doc.Close() 'Launching the Pdf file. Process.Start("Font.pdf") End Sub End Class End Namespace