page 284

Draw PDF Image Watermark in WPF

2012-06-27 07:40:55 Written by Koohji

Image watermark can be used to beautify as well as specify your PDF document. A properly managed PDF document with suitable image watermark can both give a different feeling and show the content or background to its readers. For example, if your PDF document is about environment protection, you can insert an image related to this topic. Spire.PDF for WPF allows you to easily draw a PDF image watermark for WPF.

Before you start, please make sure that Spire.PDF for WPF (or Spire.Office for WPF) is correctly installed on your system. Please follow the below procedure to realize this task.

Step 1: Create a new project

  • Create a new project in WPF Application
  • Add a button in MainWindow and set the button Content property to be "Run".
  • Add Spire.Pdf.Wpf.dll and System.Drawing as references. After adding the namespaces, you can view the below codes.
[C#]
using System.Drawing;
using System.Drawing.Imaging;
using Spire.Pdf;
using Spire.Pdf.Graphics;
namespace WPFPDFwatermark
{
    /// 
    /// Interaction logic for MainWindow.xaml
    /// 
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {

        }
    }
}
[VB.NET]
Imports System.Drawing
Imports System.Drawing.Imaging
Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Namespace WPFPDFwatermark
	''' 
	''' Interaction logic for MainWindow.xaml
	''' 
	Public Partial Class MainWindow
		Inherits Window
		Public Sub New()
			InitializeComponent()
		End Sub

		Private Sub button1_Click(sender As Object, e As RoutedEventArgs)
	          End Sub
	End Class
End Namespace

Step 2: Create a new PDF document and draw image watermark in it

After creating a new PDF document and setting its margin, you need to add a page in it. And then, insert the image watermark in the page you just added.

[C#]
            //Create a pdf document.
            PdfDocument doc = new PdfDocument();

            //margin
            PdfUnitConvertor unitCvtr = new PdfUnitConvertor();
            PdfMargins margin = new PdfMargins();
            margin.Top = unitCvtr.ConvertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point);
            margin.Bottom = margin.Top;
            margin.Left = unitCvtr.ConvertUnits(3.17f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point);
            margin.Right = margin.Left;

            // Create one page
            PdfPageBase page = doc.Pages.Add(PdfPageSize.A4, margin);
            System.Drawing.Image img = System.Drawing.Image.FromFile(@"D:\e-iceblue\Spire.PDF\Demos\Data\Backgroundimage.png");
            page.BackgroundImage = img;

[VB.NET]
	'Create a pdf document.
	Dim doc As New PdfDocument()

	'margin
	Dim unitCvtr As New PdfUnitConvertor()
	Dim margin As New PdfMargins()
	margin.Top = unitCvtr.ConvertUnits(2.54F, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point)
	margin.Bottom = margin.Top
	margin.Left = unitCvtr.ConvertUnits(3.17F, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point)
	margin.Right = margin.Left

	' Create one page
	Dim page As PdfPageBase = doc.Pages.Add(PdfPageSize.A4, margin)
	Dim img As System.Drawing.Image = System.Drawing.Image.FromFile("D:\e-iceblue\Spire.PDF\Demos\Data\Backgroundimage.png")
	page.BackgroundImage = img

Step 3: Draw page in PDF document

This step shows you to insert page header, title, icon and content in the page and set their formats. Actually, not all the PDF file must have a header or icon or reference content. So it is better to choose what you need according to your own situation.

[C#]
    private static void DrawPage(PdfPageBase page)
        {
            float pageWidth = page.Canvas.ClientSize.Width;
            float y = 50;

            //page header
            PdfPen pen1 = new PdfPen(System.Drawing.Color.LightGray, 1f);
            PdfBrush brush1 = new PdfSolidBrush(System.Drawing.Color.LightGray);
            PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("Arial", 8f, System.Drawing.FontStyle.Italic));
            PdfStringFormat format1 = new PdfStringFormat(PdfTextAlignment.Right);
            String text = "Demo of Spire.Pdf";
            page.Canvas.DrawString(text, font1, brush1, pageWidth, y, format1);
            SizeF size = font1.MeasureString(text, format1);
            y = y + size.Height + 1;
            page.Canvas.DrawLine(pen1, 0, y, pageWidth, y);

            //title
            y = y + 5;
            PdfBrush brush2 = new PdfSolidBrush(System.Drawing.Color.Black);
            PdfTrueTypeFont font2 = new PdfTrueTypeFont(new Font("Arial", 16f, System.Drawing.FontStyle.Bold));
            PdfStringFormat format2 = new PdfStringFormat(PdfTextAlignment.Center);
            format2.CharacterSpacing = 1f;
            text = "Summary of Science";
            page.Canvas.DrawString(text, font2, brush2, pageWidth / 2, y, format2);
            size = font2.MeasureString(text, format2);
            y = y + size.Height + 6;

            //icon
            PdfImage image = PdfImage.FromFile(@"D:\e-iceblue\Spire.PDF\Demos\Data\leaf.jpg");
            page.Canvas.DrawImage(image, new PointF(pageWidth - image.PhysicalDimension.Width, y));
            float imageLeftSpace = pageWidth - image.PhysicalDimension.Width - 2;
            float imageBottom = image.PhysicalDimension.Height + y;

            //refenrence content
            PdfTrueTypeFont font3 = new PdfTrueTypeFont(new Font("Arial", 9f));
            PdfStringFormat format3 = new PdfStringFormat();
            format3.ParagraphIndent = font3.Size * 2;
            format3.MeasureTrailingSpaces = true;
            format3.LineSpacing = font3.Size * 1.5f;
            String text1 = "(All text and picture from ";
            String text2 = "Wikipedia";
            String text3 = ", the free encyclopedia)";
            page.Canvas.DrawString(text1, font3, brush2, 0, y, format3);

            size = font3.MeasureString(text1, format3);
            float x1 = size.Width;
            format3.ParagraphIndent = 0;
            PdfTrueTypeFont font4 = new PdfTrueTypeFont(new Font("Arial", 9f,System.Drawing. FontStyle.Underline));
            PdfBrush brush3 = PdfBrushes.Blue;
            page.Canvas.DrawString(text2, font4, brush3, x1, y, format3);
            size = font4.MeasureString(text2, format3);
            x1 = x1 + size.Width;

            page.Canvas.DrawString(text3, font3, brush2, x1, y, format3);
            y = y + size.Height;

            //content
            PdfStringFormat format4 = new PdfStringFormat();
            text = System.IO.File.ReadAllText(@"D:\e-iceblue\Spire.PDF\Demos\Data\Summary_of_Science.txt");
            PdfTrueTypeFont font5 = new PdfTrueTypeFont(new Font("Arial", 10f));
            format4.LineSpacing = font5.Size * 1.5f;
            PdfStringLayouter textLayouter = new PdfStringLayouter();
            float imageLeftBlockHeight = imageBottom - y;
            PdfStringLayoutResult result
                = textLayouter.Layout(text, font5, format4, new SizeF(imageLeftSpace, imageLeftBlockHeight));
            if (result.ActualSize.Height < imageBottom - y)
            {
                imageLeftBlockHeight = imageLeftBlockHeight + result.LineHeight;
                result = textLayouter.Layout(text, font5, format4, new SizeF(imageLeftSpace, imageLeftBlockHeight));
            }
            foreach (LineInfo line in result.Lines)
            {
                page.Canvas.DrawString(line.Text, font5, brush2, 0, y, format4);
                y = y + result.LineHeight;
            }
            PdfTextWidget textWidget = new PdfTextWidget(result.Remainder, font5, brush2);
            PdfTextLayout textLayout = new PdfTextLayout();
            textLayout.Break = PdfLayoutBreakType.FitPage;
            textLayout.Layout = PdfLayoutType.Paginate;
            RectangleF bounds = new RectangleF(new PointF(0, y), page.Canvas.ClientSize);
            textWidget.StringFormat = format4;
            textWidget.Draw(page, bounds, textLayout);
        }
[VB.NET]
Private Shared Sub DrawPage(page As PdfPageBase)
	Dim pageWidth As Single = page.Canvas.ClientSize.Width
	Dim y As Single = 50

	'page header
	Dim pen1 As New PdfPen(System.Drawing.Color.LightGray, 1F)
	Dim brush1 As PdfBrush = New PdfSolidBrush(System.Drawing.Color.LightGray)
	Dim font1 As New PdfTrueTypeFont(New Font("Arial", 8F, System.Drawing.FontStyle.Italic))
	Dim format1 As New PdfStringFormat(PdfTextAlignment.Right)
	Dim text As [String] = "Demo of Spire.Pdf"
	page.Canvas.DrawString(text, font1, brush1, pageWidth, y, format1)
	Dim size As SizeF = font1.MeasureString(text, format1)
	y = y + size.Height + 1
	page.Canvas.DrawLine(pen1, 0, y, pageWidth, y)

	'title
	y = y + 5
	Dim brush2 As PdfBrush = New PdfSolidBrush(System.Drawing.Color.Black)
	Dim font2 As New PdfTrueTypeFont(New Font("Arial", 16F, System.Drawing.FontStyle.Bold))
	Dim format2 As New PdfStringFormat(PdfTextAlignment.Center)
	format2.CharacterSpacing = 1F
	text = "Summary of Science"
	page.Canvas.DrawString(text, font2, brush2, pageWidth / 2, y, format2)
	size = font2.MeasureString(text, format2)
	y = y + size.Height + 6

	'icon
	Dim image As PdfImage = PdfImage.FromFile("D:\e-iceblue\Spire.PDF\Demos\Data\leaf.jpg")
	page.Canvas.DrawImage(image, New PointF(pageWidth - image.PhysicalDimension.Width, y))
	Dim imageLeftSpace As Single = pageWidth - image.PhysicalDimension.Width - 2
	Dim imageBottom As Single = image.PhysicalDimension.Height + y

	'refenrence content
	Dim font3 As New PdfTrueTypeFont(New Font("Arial", 9F))
	Dim format3 As New PdfStringFormat()
	format3.ParagraphIndent = font3.Size * 2
	format3.MeasureTrailingSpaces = True
	format3.LineSpacing = font3.Size * 1.5F
	Dim text1 As [String] = "(All text and picture from "
	Dim text2 As [String] = "Wikipedia"
	Dim text3 As [String] = ", the free encyclopedia)"
	page.Canvas.DrawString(text1, font3, brush2, 0, y, format3)

	size = font3.MeasureString(text1, format3)
	Dim x1 As Single = size.Width
	format3.ParagraphIndent = 0
	Dim font4 As New PdfTrueTypeFont(New Font("Arial", 9F, System.Drawing.FontStyle.Underline))
	Dim brush3 As PdfBrush = PdfBrushes.Blue
	page.Canvas.DrawString(text2, font4, brush3, x1, y, format3)
	size = font4.MeasureString(text2, format3)
	x1 = x1 + size.Width

	page.Canvas.DrawString(text3, font3, brush2, x1, y, format3)
	y = y + size.Height

	'content
	Dim format4 As New PdfStringFormat()
	text = System.IO.File.ReadAllText("D:\e-iceblue\Spire.PDF\Demos\Data\Summary_of_Science.txt")
	Dim font5 As New PdfTrueTypeFont(New Font("Arial", 10F))
	format4.LineSpacing = font5.Size * 1.5F
	Dim textLayouter As New PdfStringLayouter()
	Dim imageLeftBlockHeight As Single = imageBottom - y
	Dim result As PdfStringLayoutResult = textLayouter.Layout(text, font5, format4, New SizeF(imageLeftSpace, imageLeftBlockHeight))
	If result.ActualSize.Height < imageBottom - y Then
		imageLeftBlockHeight = imageLeftBlockHeight + result.LineHeight
		result = textLayouter.Layout(text, font5, format4, New SizeF(imageLeftSpace, imageLeftBlockHeight))
	End If
	For Each line As LineInfo In result.Lines
		page.Canvas.DrawString(line.Text, font5, brush2, 0, y, format4)
		y = y + result.LineHeight
	Next
	Dim textWidget As New PdfTextWidget(result.Remainder, font5, brush2)
	Dim textLayout As New PdfTextLayout()
	textLayout.Break = PdfLayoutBreakType.FitPage
	textLayout.Layout = PdfLayoutType.Paginate
	Dim bounds As New RectangleF(New PointF(0, y), page.Canvas.ClientSize)
	textWidget.StringFormat = format4
	textWidget.Draw(page, bounds, textLayout)
End Sub

Step 4: Save and launch the file

[C#]
            //Save pdf file.
            doc.SaveToFile("ImageWaterMark.pdf");
            doc.Close();
            //Launching the Pdf file.
            System.Diagnostics.Process.Start("ImageWaterMark.pdf");
[VB.NET]
	'Save pdf file.
	doc.SaveToFile("ImageWaterMark.pdf")
	doc.Close()
	'Launching the Pdf file.
	System.Diagnostics.Process.Start("ImageWaterMark.pdf")

Effective Screeshot:

Add Image Watermark in PDF

How to Set Excel Background Color in WPF

2012-06-26 07:02:06 Written by Koohji

Excel background color is a very useful property when we need to demonstrate data for special purpose. That is also a basic feature for any Excel solution developer. Here will demonstrate how to design Excel background color regardless whether Microsoft Excel is installed on your system or not. Spire.Xls for WPF is a professional component for directly managing Excel operations. With it you can easily and fast set Excel background color in WPF.

Spire.Xls for WPF is always welcome to any kind of trial and evaluation. So now please feel free to download Spire.Xls for WPF and then follow our guide to easily set Excel background color in WPF or try other function of Spire.Xls for WPF.

Friendly Reminder:

  • Before we code to set Excel background color in WPF, please add spire.xls dll as reference by Clicking ProjectAdd ReferenceBrowse → Choose the folder contains Spire.XLS for WPFBin.NET 4.0.
  • Please make sure the namespace-Spire.Xls being imported.

Next we will demonstrate the how to set Excel background color in WPF within just 3 Steps.

Step 1: Load Excel in WPF

Spire.XLS for WPF enables users directly loading Excel file or create a new Excel. We will load an Excel in this step and later set its background color in WPF. Please check the code examples below.

[C#]
Workbook workbook = new Workbook(); 
workbook.LoadFromFile(@"..\test.xls", ExcelVersion.Version97to2003);
[VB.NET]
Dim workbook As New Workbook()
workbook.LoadFromFile("..\test.xls", ExcelVersion.Version97to2003)

Step 2: Set Excel background color in WPF

In this step, we will set the background color of the Excel which we just loaded above. With Spire.Xls for WPF, developers only need few lines of codes to freely set background colors in Excel. Please check the following example.

[C#]
Worksheet worksheet = workbook.Worksheets[0];
//set the backgroundcolor=LightBlue of Range["A2:E9"]
worksheet.Range["A2:E9"].Style.Color = Color.LightBlue;
//set the backgroundcolor=Silver of Range["A11:E18"]
worksheet.Range["A11:E18"].Style.Color = Color.Silver;
[VB.NET]
Dim worksheet As Worksheet = workbook.Worksheets(0)
'set the backgroundcolor=LightBlue of Range["A2:E9"]
worksheet.Range("A2:E9").Style.Color = Color.LightBlue
'set the backgroundcolor=Silver of Range["A11:E18"]
worksheet.Range("A11:E18").Style.Color = Color.Silver

Step 3: Save and preview

Now we will use the following codes to save and preview our work.

[C#]
workbook.SaveToFile("sample.xls", ExcelVersion.Version97to2003);
System.Diagnostics.Process.Start(workbook.FileName);
[VB.NET]
workbook.SaveToFile("sample.xls", ExcelVersion.Version97to2003)
System.Diagnostics.Process.Start(workbook.FileName)

We have successfully set Excel background color in WPF, now press F5 to run this application and you will see the different background color we set. Below is an effective screenshot, please have a check:

How to Draw Text in PDF Document in WPF

2012-06-26 02:17:29 Written by Koohji

Text enjoys the same popularity whatever it is in PDF documents or in word files. Without it, people can hardly show their real purpose even with the help of images, tables, graphics or hyperlinks. Spire.PDF for WPF not only enables you to easily draw text in PDF document, but also allows you to align, rotate, transform Text and set text font & color in minutes.

Before you start, please make sure that Spire.PDF for WPF (or Spire.Office for WPF) is correctly installed on your system. Please follow the below procedure to realize this task.

Step 1: Create a new project

  • Create a new project in WPF Application
  • Add a button in MainWindow and set the button Content property to be "Run".
  • Add Spire.Pdf.Wpf.dll and System.Drawing as references. After adding the namespaces, you can view the below codes.
[C#]
using System.Drawing;
using Spire.Pdf;
using Spire.Pdf.Graphics;

namespace WPFPDFtext
{
    /// 
    /// Interaction logic for MainWindow.xaml
    /// 
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {

        }
    }
}
[VB.NET]
Imports System.Drawing
Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Namespace WPFPDFtext
	''' 
	''' Interaction logic for MainWindow.xaml
	''' 
	Public Partial Class MainWindow
		Inherits Window
		Public Sub New()
			InitializeComponent()
		End Sub

		Private Sub button1_Click(sender As Object, e As RoutedEventArgs)
	          End Sub
	End Class
End Namespace

Step 2: Draw text of various styles in PDF document

Create a new PDF document and add a page in it

[C#]
            //Create a pdf document.
            PdfDocument doc = new PdfDocument();

            // Create one page
            PdfPageBase page = doc.Pages.Add();
[VB.NET]
	'Create a pdf document.
	Dim doc As New PdfDocument()

	'Create one page
	Dim page As PdfPageBase = doc.Pages.Add()

Draw text in the page

[C#]
        private static void DrawText(PdfPageBase page)
        {
            //save graphics state
            PdfGraphicsState state = page.Canvas.Save();

            //Draw text - brush
            String text = "Text,turn Around! Go! Go! Go!";
            PdfPen pen = PdfPens.DeepSkyBlue;
            PdfSolidBrush brush = new PdfSolidBrush(System.Drawing.Color.Blue);
            PdfStringFormat format = new PdfStringFormat();
            PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 18f, PdfFontStyle.Italic);
            SizeF size = font.MeasureString(text, format);
            RectangleF rctg
                = new RectangleF(page.Canvas.ClientSize.Width / 2 + 10, 180,
                size.Width / 3 * 2, size.Height * 3);
            page.Canvas.DrawString(text, font, pen, brush, rctg, format);

            //restor graphics
            page.Canvas.Restore(state);
        }
[VB.NET]
Private Shared Sub DrawText(page As PdfPageBase)
	'save graphics state
	Dim state As PdfGraphicsState = page.Canvas.Save()

	'Draw text - brush
	Dim text As [String] = "Text,turn Around! Go! Go! Go!"
	Dim pen As PdfPen = PdfPens.DeepSkyBlue
	Dim brush As New PdfSolidBrush(System.Drawing.Color.Blue)
	Dim format As New PdfStringFormat()			
           Dim size As SizeF = font.MeasureString(text, format)
	Dim rctg As New RectangleF(page.Canvas.ClientSize.Width / 2 + 10, 180, size.Width / 3 * 2, size.Height * 3)
	page.Canvas.DrawString(text, font, pen, brush, rctg, format)

	'restor graphics
	page.Canvas.Restore(state)
End Sub

Align PDF text. This step allows you to align text and align text in rectangle

[C#]
        private static void AlignText(PdfPageBase page)
        {
            //Draw the text - alignment
            PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 20f);
            PdfSolidBrush brush = new PdfSolidBrush(System.Drawing.Color.DarkSeaGreen);

            PdfStringFormat leftAlignment = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Middle);
            page.Canvas.DrawString("Left!", font, brush, 0, 40, leftAlignment);
            page.Canvas.DrawString("Left!", font, brush, 0, 60, leftAlignment);

            PdfStringFormat rightAlignment = new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Middle);
            page.Canvas.DrawString("Right!", font, brush, page.Canvas.ClientSize.Width, 40, rightAlignment);
            page.Canvas.DrawString("Right!", font, brush, page.Canvas.ClientSize.Width, 60, rightAlignment);

            PdfStringFormat centerAlignment
                = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);
            page.Canvas.DrawString("Text,turn Around! Go! Go! Go!",
                font, brush, page.Canvas.ClientSize.Width / 2, 40, centerAlignment);
        }
        private static void AlignTextInRectangle(PdfPageBase page)
        {
            //Draw the text - align in rectangle
            PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 10f);
            PdfSolidBrush brush = new PdfSolidBrush(System.Drawing.Color.Blue);
            RectangleF rctg1 = new RectangleF(0, 70, page.Canvas.ClientSize.Width / 2, 100);
            RectangleF rctg2
                = new RectangleF(page.Canvas.ClientSize.Width / 2, 70, page.Canvas.ClientSize.Width / 2, 100);
            page.Canvas.DrawRectangle(new PdfSolidBrush(System.Drawing.Color.LightBlue), rctg1);
            page.Canvas.DrawRectangle(new PdfSolidBrush(System.Drawing.Color.SkyBlue), rctg2);

            PdfStringFormat leftAlignment
                = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Top);
            page.Canvas.DrawString("Left! Left!", font, brush, rctg1, leftAlignment);
            page.Canvas.DrawString("Left! Left!", font, brush, rctg2, leftAlignment);

            PdfStringFormat rightAlignment
                = new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Middle);
            page.Canvas.DrawString("Right! Right!", font, brush, rctg1, rightAlignment);
            page.Canvas.DrawString("Right! Right!", font, brush, rctg2, rightAlignment);

            PdfStringFormat centerAlignment
                = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Bottom);
            page.Canvas.DrawString("Text,turn Around! Go! Go! Go!", font, brush, rctg1, centerAlignment);
            page.Canvas.DrawString("Text,turn Around! Go! Go! Go!", font, brush, rctg2, centerAlignment);
        }
[VB.NET]
Private Shared Sub AlignText(page As PdfPageBase)
	'Draw the text - alignment
	Dim font As New PdfFont(PdfFontFamily.Helvetica, 20F)
	Dim brush As New PdfSolidBrush(System.Drawing.Color.DarkSeaGreen)

	Dim leftAlignment As New PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Middle)
	page.Canvas.DrawString("Left!", font, brush, 0, 40, leftAlignment)
	page.Canvas.DrawString("Left!", font, brush, 0, 60, leftAlignment)

	Dim rightAlignment As New PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Middle)
	page.Canvas.DrawString("Right!", font, brush, page.Canvas.ClientSize.Width, 40, rightAlignment)
	page.Canvas.DrawString("Right!", font, brush, page.Canvas.ClientSize.Width, 60, rightAlignment)

	Dim centerAlignment As New PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle)
	page.Canvas.DrawString("Text,turn Around! Go! Go! Go!", font, brush, page.Canvas.ClientSize.Width / 2, 40, centerAlignment)
End Sub
Private Shared Sub AlignTextInRectangle(page As PdfPageBase)
	'Draw the text - align in rectangle
	Dim font As New PdfFont(PdfFontFamily.Helvetica, 10F)
	Dim brush As New PdfSolidBrush(System.Drawing.Color.Blue)
	Dim rctg1 As New RectangleF(0, 70, page.Canvas.ClientSize.Width / 2, 100)
	Dim rctg2 As New RectangleF(page.Canvas.ClientSize.Width / 2, 70, page.Canvas.ClientSize.Width / 2, 100)
	page.Canvas.DrawRectangle(New PdfSolidBrush(System.Drawing.Color.LightBlue), rctg1)
	page.Canvas.DrawRectangle(New PdfSolidBrush(System.Drawing.Color.SkyBlue), rctg2)

	Dim leftAlignment As New PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Top)
	page.Canvas.DrawString("Left! Left!", font, brush, rctg1, leftAlignment)
	page.Canvas.DrawString("Left! Left!", font, brush, rctg2, leftAlignment)

	Dim rightAlignment As New PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Middle)
	page.Canvas.DrawString("Right! Right!", font, brush, rctg1, rightAlignment)
	page.Canvas.DrawString("Right! Right!", font, brush, rctg2, rightAlignment)

	Dim centerAlignment As New PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Bottom)
	page.Canvas.DrawString("Text,turn Around! Go! Go! Go!", font, brush, rctg1, centerAlignment)
	page.Canvas.DrawString("Text,turn Around! Go! Go! Go!", font, brush, rctg2, centerAlignment)
End Sub

Rotate PDF text

[C#]
  private static void RotateText(PdfPageBase page)
        {
            //save graphics state
            PdfGraphicsState state = page.Canvas.Save();

            //Draw the text - transform           
            PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 10f);
            PdfSolidBrush brush = new PdfSolidBrush(System.Drawing.Color.DarkOrchid);

            PdfStringFormat centerAlignment
                = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Middle);
            float x = page.Canvas.ClientSize.Width / 2;
            float y = 380;

            page.Canvas.TranslateTransform(x, y);
            for (int i = 0; i < 12; i++)
            {
                page.Canvas.RotateTransform(30);
                page.Canvas.DrawString("Text,turn Around! Go! Go! Go!", font, brush, 20, 0, centerAlignment);
            }

            //restor graphics
            page.Canvas.Restore(state);
        }
[VB.NET]
Private Shared Sub RotateText(page As PdfPageBase)
	'save graphics state
	Dim state As PdfGraphicsState = page.Canvas.Save()

	'Draw the text - transform           
	Dim font As New PdfFont(PdfFontFamily.Helvetica, 10F)
	Dim brush As New PdfSolidBrush(System.Drawing.Color.DarkOrchid)

	Dim centerAlignment As New PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Middle)
	Dim x As Single = page.Canvas.ClientSize.Width / 2
	Dim y As Single = 380

	page.Canvas.TranslateTransform(x, y)
	For i As Integer = 0 To 11
		page.Canvas.RotateTransform(30)
		page.Canvas.DrawString("Text,turn Around! Go! Go! Go!", font, brush, 20, 0, centerAlignment)
	Next

	'restor graphics
	page.Canvas.Restore(state)
End Sub

Transform PDF text

[C#]
private static void TransformText(PdfPageBase page)
        {
            //save graphics state
            PdfGraphicsState state = page.Canvas.Save();

            //Draw the text - transform           
            PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 18f);
            PdfSolidBrush brush1 = new PdfSolidBrush(System.Drawing.Color.LightSeaGreen);
            PdfSolidBrush brush2 = new PdfSolidBrush(System.Drawing.Color.CadetBlue);

            page.Canvas.TranslateTransform(20, 200);
            page.Canvas.ScaleTransform(1f, 0.6f);
            page.Canvas.SkewTransform(-10, 0);
            page.Canvas.DrawString("Text,turn Around! Go! Go! Go!", font, brush1, 0, 0);

            page.Canvas.SkewTransform(10, 0);
            page.Canvas.DrawString("Text,turn Around! Go! Go! Go!", font, brush2, 0, 0);

            page.Canvas.ScaleTransform(1f, -1f);
            page.Canvas.DrawString("Text,turn Around! Go! Go! Go!", font, brush2, 0, -2 * 18);
            //restor graphics
            page.Canvas.Restore(state);
        }
[VB.NET]
Private Shared Sub TransformText(page As PdfPageBase)
	'save graphics state
	Dim state As PdfGraphicsState = page.Canvas.Save()

	'Draw the text - transform           
	Dim font As New PdfFont(PdfFontFamily.Helvetica, 18F)
	Dim brush1 As New PdfSolidBrush(System.Drawing.Color.LightSeaGreen)
	Dim brush2 As New PdfSolidBrush(System.Drawing.Color.CadetBlue)

	page.Canvas.TranslateTransform(20, 200)
	page.Canvas.ScaleTransform(1F, 0.6F)
	page.Canvas.SkewTransform(-10, 0)
	page.Canvas.DrawString("Text,turn Around! Go! Go! Go!", font, brush1, 0, 0)

	page.Canvas.SkewTransform(10, 0)
	page.Canvas.DrawString("Text,turn Around! Go! Go! Go!", font, brush2, 0, 0)

	page.Canvas.ScaleTransform(1F, -1F)
	page.Canvas.DrawString("Text,turn Around! Go! Go! Go!", font, brush2, 0, -2 * 18)
	'restor graphics
	page.Canvas.Restore(state)
End Sub

Step 3: Save and launch the file

[C#]
            //Save doc file.
            doc.SaveToFile("DrawText.pdf");
            doc.Close();

            //Launching the Pdf file.
            System.Diagnostics.Process.Start("DrawText.pdf");
[VB.NET]
	'Save doc file.
	doc.SaveToFile("DrawText.pdf")
	doc.Close()

	'Launching the Pdf file.
	System.Diagnostics.Process.Start("DrawText.pdf")

Effective Screeshot:

Draw Text in PDF

page 284