Formating (4)
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
using System;
using System.Drawing;
using Spire.Pdf;
using Spire.Pdf.Graphics;
namespace TextLayout
{
class Program
{
static void Main(string[] args)
{
//Create a pdf document.
PdfDocument doc = new PdfDocument();
// Create one page
PdfPageBase page = doc.Pages.Add();
float pageWidth = page.Canvas.ClientSize.Width;
float y = 0;
//page header
PdfPen pen1 = new PdfPen(Color.LightGray, 1f);
PdfBrush brush1 = new PdfSolidBrush(Color.LightGray);
PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("Arial", 8f, 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(Color.Black);
PdfTrueTypeFont font2 = new PdfTrueTypeFont(new Font("Arial", 16f, 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("Wikipedia_Science.png");
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, 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("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);
//Save pdf file.
doc.SaveToFile("TextLayout.pdf");
doc.Close();
//Launching the Pdf file.
System.Diagnostics.Process.Start("TextLayout.pdf");
}
}
}
Imports System.Drawing
Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Namespace TextLayout
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()
Dim pageWidth As Single = page.Canvas.ClientSize.Width
Dim y As Single = 0
'page header
Dim pen1 As New PdfPen(Color.LightGray, 1.0F)
Dim brush1 As PdfBrush = New PdfSolidBrush(Color.LightGray)
Dim font1 As New PdfTrueTypeFont(New Font("Arial", 8.0F, 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(Color.Black)
Dim font2 As New PdfTrueTypeFont(New Font("Arial", 16.0F, FontStyle.Bold))
Dim format2 As New PdfStringFormat(PdfTextAlignment.Center)
format2.CharacterSpacing = 1.0F
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("Wikipedia_Science.png")
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", 9.0F))
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", 9.0F, 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("Summary_of_Science.txt")
Dim font5 As New PdfTrueTypeFont(New Font("Arial", 10.0F))
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 line
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)
'Save pdf file.
doc.SaveToFile("TextLayout.pdf")
doc.Close()
'Launching the Pdf file.
Process.Start("TextLayout.pdf")
End Sub
End Class
End Namespace
The sample demonstrates how to set PDF page orientation for Silverlight via Spire.PDF.

<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="pageOrientation_PDF.App">
<Application.Resources>
</Application.Resources>
</Application>
using System;
using System.Windows;
namespace pageOrientation_PDF
{
public partial class App : Application
{
public App()
{
this.Startup += this.Application_Startup;
this.Exit += this.Application_Exit;
this.UnhandledException += this.Application_UnhandledException;
InitializeComponent();
}
private void Application_Startup(object sender, StartupEventArgs e)
{
this.RootVisual = new MainPage();
}
private void Application_Exit(object sender, EventArgs e)
{
}
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
// If the app is running outside of the debugger then report the exception using
// the browser's exception mechanism. On IE this will display it a yellow alert
// icon in the status bar and Firefox will display a script error.
if (!System.Diagnostics.Debugger.IsAttached)
{
// NOTE: This will allow the application to continue running after an exception has been thrown
// but not handled.
// For production applications this error handling should be replaced with something that will
// report the error to the website and stop the application.
e.Handled = true;
Deployment.Current.Dispatcher.BeginInvoke(delegate { ReportErrorToDOM(e); });
}
}
private void ReportErrorToDOM(ApplicationUnhandledExceptionEventArgs e)
{
try
{
string errorMsg = e.ExceptionObject.Message + e.ExceptionObject.StackTrace;
errorMsg = errorMsg.Replace('"', '\'').Replace("\r\n", @"\n");
System.Windows.Browser.HtmlPage.Window.Eval("throw new Error(\"Unhandled Error in Silverlight Application " + errorMsg + "\");");
}
catch (Exception)
{
}
}
}
}
Imports System.Windows
Namespace pageOrientation_PDF
Partial Public Class App
Inherits Application
Public Sub New()
AddHandler Me.Startup, AddressOf Application_Startup
AddHandler Me.Exit, AddressOf Application_Exit
AddHandler Me.UnhandledException, AddressOf Application_UnhandledException
InitializeComponent()
End Sub
Private Sub Application_Startup(ByVal sender As Object, ByVal e As StartupEventArgs)
Me.RootVisual = New MainPage()
End Sub
Private Sub Application_Exit(ByVal sender As Object, ByVal e As EventArgs)
End Sub
Private Sub Application_UnhandledException(ByVal sender As Object, ByVal e As ApplicationUnhandledExceptionEventArgs)
' If the app is running outside of the debugger then report the exception using
' the browser's exception mechanism. On IE this will display it a yellow alert
' icon in the status bar and Firefox will display a script error.
If Not Debugger.IsAttached Then
' NOTE: This will allow the application to continue running after an exception has been thrown
' but not handled.
' For production applications this error handling should be replaced with something that will
' report the error to the website and stop the application.
e.Handled = True
Deployment.Current.Dispatcher.BeginInvoke(Sub() ReportErrorToDOM(e))
End If
End Sub
Private Sub ReportErrorToDOM(ByVal e As ApplicationUnhandledExceptionEventArgs)
Try
Dim errorMsg As String = e.ExceptionObject.Message + e.ExceptionObject.StackTrace
errorMsg = errorMsg.Replace(""""c, "'"c).Replace(vbCrLf, vbLf)
System.Windows.Browser.HtmlPage.Window.Eval("throw new Error(""Unhandled Error in Silverlight Application " & errorMsg & """);")
Catch e1 As Exception
End Try
End Sub
End Class
End Namespace
<UserControl x:Class="pageOrientation_PDF.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<Grid x:Name="LayoutRoot" Background="White" Loaded="LayoutRoot_Loaded">
<Button Content="RUN" Height="23" HorizontalAlignment="Left" Margin="297,265,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
</Grid>
</UserControl>
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.IO;
using System.Drawing;
using Spire.Pdf;
using Spire.Pdf.Graphics;
namespace pageOrientation_PDF
{
public partial class MainPage : UserControl
{
private SaveFileDialog saveFileDialog = null;
public MainPage()
{
InitializeComponent();
this.saveFileDialog = new SaveFileDialog();
this.saveFileDialog.Filter = "PDF Document(*.pdf)|*.pdf";
}
private void button1_Click(object sender, RoutedEventArgs e)
{
//create a pdfDocument
PdfDocument document = new PdfDocument();
//add one portrait page
PdfSection section1 = document.Sections.Add();
section1.PageSettings.Orientation = PdfPageOrientation.Portrait;
section1.PageSettings.Size = PdfPageSize.A4;
PdfPageBase page = section1.Pages.Add();
//draw the portrait page
DrawPage(page);
//add one landscape page
PdfSection section2 = document.Sections.Add();
section2.PageSettings.Orientation = PdfPageOrientation.Landscape;
section2.PageSettings.Size = PdfPageSize.A4;
PdfPageBase page21 = section2.Pages.Add();
//draw the landscape page
DrawPage(page21);
//save the pdfDocument
bool? result = this.saveFileDialog.ShowDialog();
if (result.HasValue && result.Value)
{
using (Stream stream = this.saveFileDialog.OpenFile())
{
document.SaveToStream(stream);
}
}
}
private void DrawPage(PdfPageBase page)
{
float pageWidth = page.Canvas.ClientSize.Width;
float y = 0;
//title
y = y + 5;
PdfBrush brush1 = new PdfSolidBrush(Color.FromArgb(255, 0, 0, 0));
PdfFont font1 = new PdfFont(PdfFontFamily.Helvetica, 30f);
PdfStringFormat format1 = new PdfStringFormat(PdfTextAlignment.Center);
format1.CharacterSpacing = 1f;
String text = "Spire.Office";
page.Canvas.DrawString(text, font1, brush1, pageWidth / 2, y, format1);
SizeF size = font1.MeasureString(text, format1);
y = y + size.Height + 6;
//draw the content
PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 15f);
PdfStringFormat format = new PdfStringFormat();
PdfBrush brush = PdfBrushes.DeepSkyBlue;
format.LineSpacing = font.Size * 1.5f;
float x1 = 2*size.Width;
y = y + size.Height;
//content
text = "Spire.Office for .NET is a compilation of every .NET component offered by e-iceblue. It includes Spire.Doc, Spire.XLS, Spire.PDFViewer, Spire.PDF and Spire.DataExport. Spire.Office contains the most up-to-date versions of the components above. Using Spire.Office for .NET developers can create a wide range of applications." +
"Consistently offer high-quality, pure and stable .NET components for handling office format files. E-iceblue product lines include components for Word, Excel, PDF and component specially used for data exporting. For E-iceblue, customer service and products quality are the same most important and we guarantee 100% honesty to" +
"customers. E-iceblue Welcome any feedback from customers and promise timely and effectively response. E-iceblue .NET component products save your time and save your money from now on.";
PdfStringLayouter textLayouter = new PdfStringLayouter();
PdfStringLayoutResult result
= textLayouter.Layout(text, font, format, new SizeF(pageWidth, 0));
foreach (LineInfo line in result.Lines)
{
page.Canvas.DrawString(line.Text, font, brush, 0, y, format);
y = y + result.LineHeight;
}
}
private void LayoutRoot_Loaded(object sender, RoutedEventArgs e)
{
}
}
}
Imports System.Windows Imports System.Windows.Controls Imports System.Windows.Media Imports System.IO Imports System.Drawing Imports Spire.Pdf Imports Spire.Pdf.Graphics Namespace pageOrientation_PDF Partial Public Class MainPage Inherits UserControl Private saveFileDialog As SaveFileDialog = Nothing Public Sub New() InitializeComponent() Me.saveFileDialog = New SaveFileDialog() Me.saveFileDialog.Filter = "PDF Document(*.pdf)|*.pdf" End Sub Private Sub button1_Click(ByVal sender As Object, ByVal e As RoutedEventArgs) 'create a pdfDocument Dim document As New PdfDocument() 'add one portrait page Dim section1 As PdfSection = document.Sections.Add() section1.PageSettings.Orientation = PdfPageOrientation.Portrait section1.PageSettings.Size = PdfPageSize.A4 Dim page As PdfPageBase = section1.Pages.Add() 'draw the portrait page DrawPage(page) 'add one landscape page Dim section2 As PdfSection = document.Sections.Add() section2.PageSettings.Orientation = PdfPageOrientation.Landscape section2.PageSettings.Size = PdfPageSize.A4 Dim page21 As PdfPageBase = section2.Pages.Add() 'draw the landscape page DrawPage(page21) 'save the pdfDocument Dim result? As Boolean = Me.saveFileDialog.ShowDialog() If result.HasValue AndAlso result.Value Then Using stream As Stream = Me.saveFileDialog.OpenFile() document.SaveToStream(stream) End Using End If End Sub Private Sub DrawPage(ByVal page As PdfPageBase) Dim pageWidth As Single = page.Canvas.ClientSize.Width Dim y As Single = 0 'title y = y + 5 Dim brush1 As PdfBrush = New PdfSolidBrush(Color.FromArgb(255, 0, 0, 0)) Dim font1 As New PdfFont(PdfFontFamily.Helvetica, 30f) Dim format1 As New PdfStringFormat(PdfTextAlignment.Center) format1.CharacterSpacing = 1f Dim text As String = "Spire.Office" page.Canvas.DrawString(text, font1, brush1, pageWidth / 2, y, format1) Dim size As SizeF = font1.MeasureString(text, format1) y = y + size.Height + 6 'draw the content Dim font As New PdfFont(PdfFontFamily.Helvetica, 15f) Dim format As New PdfStringFormat() Dim brush As PdfBrush = PdfBrushes.DeepSkyBlue format.LineSpacing = font.Size * 1.5f Dim x1 As Single = 2*size.Width y = y + size.Height 'content text = "Spire.Office for .NET is a compilation of every .NET component offered by e-iceblue. It includes Spire.Doc, Spire.XLS, Spire.PDFViewer, Spire.PDF and Spire.DataExport. Spire.Office contains the most up-to-date versions of the components above. Using Spire.Office for .NET developers can create a wide range of applications." & "Consistently offer high-quality, pure and stable .NET components for handling office format files. E-iceblue product lines include components for Word, Excel, PDF and component specially used for data exporting. For E-iceblue, customer service and products quality are the same most important and we guarantee 100% honesty to" & "customers. E-iceblue Welcome any feedback from customers and promise timely and effectively response. E-iceblue .NET component products save your time and save your money from now on." Dim textLayouter As New PdfStringLayouter() Dim result As PdfStringLayoutResult = textLayouter.Layout(text, font, format, New SizeF(pageWidth, 0)) For Each line As LineInfo In result.Lines page.Canvas.DrawString(line.Text, font, brush, 0, y, format) y = y + result.LineHeight Next line End Sub Private Sub LayoutRoot_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs) End Sub End Class End Namespace
Published in
Formating
The sample demonstrates how to Set PDF Text Format for Silverlight via Spire.PDF.

<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="TextFormat_PDF.App">
<Application.Resources>
</Application.Resources>
</Application>
using System;
using System.Windows;
namespace TextFormat_PDF
{
public partial class App : Application
{
public App()
{
this.Startup += this.Application_Startup;
this.Exit += this.Application_Exit;
this.UnhandledException += this.Application_UnhandledException;
InitializeComponent();
}
private void Application_Startup(object sender, StartupEventArgs e)
{
this.RootVisual = new MainPage();
}
private void Application_Exit(object sender, EventArgs e)
{
}
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
// If the app is running outside of the debugger then report the exception using
// the browser's exception mechanism. On IE this will display it a yellow alert
// icon in the status bar and Firefox will display a script error.
if (!System.Diagnostics.Debugger.IsAttached)
{
// NOTE: This will allow the application to continue running after an exception has been thrown
// but not handled.
// For production applications this error handling should be replaced with something that will
// report the error to the website and stop the application.
e.Handled = true;
Deployment.Current.Dispatcher.BeginInvoke(delegate { ReportErrorToDOM(e); });
}
}
private void ReportErrorToDOM(ApplicationUnhandledExceptionEventArgs e)
{
try
{
string errorMsg = e.ExceptionObject.Message + e.ExceptionObject.StackTrace;
errorMsg = errorMsg.Replace('"', '\'').Replace("\r\n", @"\n");
System.Windows.Browser.HtmlPage.Window.Eval("throw new Error(\"Unhandled Error in Silverlight Application " + errorMsg + "\");");
}
catch (Exception)
{
}
}
}
}
Imports System.Windows
Namespace TextFormat_PDF
Partial Public Class App
Inherits Application
Public Sub New()
AddHandler Me.Startup, AddressOf Application_Startup
AddHandler Me.Exit, AddressOf Application_Exit
AddHandler Me.UnhandledException, AddressOf Application_UnhandledException
InitializeComponent()
End Sub
Private Sub Application_Startup(ByVal sender As Object, ByVal e As StartupEventArgs)
Me.RootVisual = New MainPage()
End Sub
Private Sub Application_Exit(ByVal sender As Object, ByVal e As EventArgs)
End Sub
Private Sub Application_UnhandledException(ByVal sender As Object, ByVal e As ApplicationUnhandledExceptionEventArgs)
' If the app is running outside of the debugger then report the exception using
' the browser's exception mechanism. On IE this will display it a yellow alert
' icon in the status bar and Firefox will display a script error.
If Not Debugger.IsAttached Then
' NOTE: This will allow the application to continue running after an exception has been thrown
' but not handled.
' For production applications this error handling should be replaced with something that will
' report the error to the website and stop the application.
e.Handled = True
Deployment.Current.Dispatcher.BeginInvoke(Sub() ReportErrorToDOM(e))
End If
End Sub
Private Sub ReportErrorToDOM(ByVal e As ApplicationUnhandledExceptionEventArgs)
Try
Dim errorMsg As String = e.ExceptionObject.Message + e.ExceptionObject.StackTrace
errorMsg = errorMsg.Replace(""""c, "'"c).Replace(vbCrLf, vbLf)
System.Windows.Browser.HtmlPage.Window.Eval("throw new Error(""Unhandled Error in Silverlight Application " & errorMsg & """);")
Catch e1 As Exception
End Try
End Sub
End Class
End Namespace
<UserControl x:Class="TextFormat_PDF.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<Grid x:Name="LayoutRoot" Background="White">
<Button Content="Run" Height="23" HorizontalAlignment="Left" Margin="296,265,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
</Grid>
</UserControl>
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.IO;
using System.Drawing;
using Spire.Pdf;
using Spire.Pdf.Graphics;
namespace TextFormat_PDF
{
public partial class MainPage : UserControl
{
private SaveFileDialog saveFileDialog = null;
public MainPage()
{
InitializeComponent();
this.saveFileDialog = new SaveFileDialog();
this.saveFileDialog.Filter = "PDF Documents(*.pdf)|*.pdf";
}
private void button1_Click(object sender, RoutedEventArgs e)
{
//create a blank pdf document
PdfDocument pdfDoc = new PdfDocument();
//add one page
PdfPageBase page = pdfDoc.Pages.Add();
//draw text and set the text format
float y = 10;
float pageWidth = page.Canvas.ClientSize.Width;
SizeF size = new SizeF();
string text = "This is a sample demonstrates how to set text format using Spire.pdf ";
PdfFont font = new PdfFont(PdfFontFamily.TimesRoman, 18);
PdfBrush brush = PdfBrushes.Red;
PdfStringFormat format1 = new PdfStringFormat(PdfTextAlignment.Left);
page.Canvas.DrawString(text, font, brush, 0, y, format1);
y = y + size.Height + 30;
PdfBrush brush1 = new PdfSolidBrush(Colors.Black);
PdfFont font1 = new PdfFont(PdfFontFamily.Helvetica, 12);
format1.CharacterSpacing = 1f;
text = "This is a left aligned string ";
size = font1.MeasureString(text, format1);
page.Canvas.DrawString(text, font1, brush1, 0, y, format1);
y = y + size.Height;
page.Canvas.DrawString(text, font1, brush1, 0, y, format1);
size = font1.MeasureString(text, format1);
y = y + size.Height + 6;
text = "This is a center aligned string";
format1.Alignment = PdfTextAlignment.Center;
PdfBrush brush2 = PdfBrushes.Blue;
PdfFont font2 = new PdfFont(PdfFontFamily.Courier, 12);
size = font2.MeasureString(text, format1);
page.Canvas.DrawString(text, font2, brush2, pageWidth / 2, y, format1);
y = y + size.Height;
page.Canvas.DrawString(text, font2, brush2, pageWidth / 2, y, format1);
y = y + size.Height + 6;
text = "This is a right aligned string";
format1.Alignment = PdfTextAlignment.Right;
PdfBrush brush3 = PdfBrushes.Green;
PdfFont font3 = new PdfFont(PdfFontFamily.TimesRoman, 12);
size = font3.MeasureString(text, format1);
page.Canvas.DrawString(text, font3, brush3, pageWidth, y, format1);
y = y + size.Height;
page.Canvas.DrawString(text, font3, brush3, pageWidth, y, format1);
//save the pdf document
bool? result = this.saveFileDialog.ShowDialog();
if (result.HasValue && result.Value)
{
using (Stream stream = this.saveFileDialog.OpenFile())
{
pdfDoc.SaveToStream(stream);
}
}
}
}
}
Imports System.Windows Imports System.Windows.Controls Imports System.Windows.Media Imports System.IO Imports System.Drawing Imports Spire.Pdf Imports Spire.Pdf.Graphics Namespace TextFormat_PDF Partial Public Class MainPage Inherits UserControl Private saveFileDialog As SaveFileDialog = Nothing Public Sub New() InitializeComponent() Me.saveFileDialog = New SaveFileDialog() Me.saveFileDialog.Filter = "PDF Documents(*.pdf)|*.pdf" End Sub Private Sub button1_Click(ByVal sender As Object, ByVal e As RoutedEventArgs) 'create a blank pdf document Dim pdfDoc As New PdfDocument() 'add one page Dim page As PdfPageBase = pdfDoc.Pages.Add() 'draw text and set the text format Dim y As Single = 10 Dim pageWidth As Single = page.Canvas.ClientSize.Width Dim size As New SizeF() Dim text As String = "This is a sample demonstrates how to set text format using Spire.pdf " Dim font As New PdfFont(PdfFontFamily.TimesRoman, 18) Dim brush As PdfBrush = PdfBrushes.Red Dim format1 As New PdfStringFormat(PdfTextAlignment.Left) page.Canvas.DrawString(text, font, brush, 0, y, format1) y = y + size.Height + 30 Dim brush1 As PdfBrush = New PdfSolidBrush(Colors.Black) Dim font1 As New PdfFont(PdfFontFamily.Helvetica, 12) format1.CharacterSpacing = 1f text = "This is a left aligned string " size = font1.MeasureString(text, format1) page.Canvas.DrawString(text, font1, brush1, 0, y, format1) y = y + size.Height page.Canvas.DrawString(text, font1, brush1, 0, y, format1) size = font1.MeasureString(text, format1) y = y + size.Height + 6 text = "This is a center aligned string" format1.Alignment = PdfTextAlignment.Center Dim brush2 As PdfBrush = PdfBrushes.Blue Dim font2 As New PdfFont(PdfFontFamily.Courier, 12) size = font2.MeasureString(text, format1) page.Canvas.DrawString(text, font2, brush2, pageWidth / 2, y, format1) y = y + size.Height page.Canvas.DrawString(text, font2, brush2, pageWidth / 2, y, format1) y = y + size.Height + 6 text = "This is a right aligned string" format1.Alignment = PdfTextAlignment.Right Dim brush3 As PdfBrush = PdfBrushes.Green Dim font3 As New PdfFont(PdfFontFamily.TimesRoman, 12) size = font3.MeasureString(text, format1) page.Canvas.DrawString(text, font3, brush3, pageWidth, y, format1) y = y + size.Height page.Canvas.DrawString(text, font3, brush3, pageWidth, y, format1) 'save the pdf document Dim result? As Boolean = Me.saveFileDialog.ShowDialog() If result.HasValue AndAlso result.Value Then Using stream As Stream = Me.saveFileDialog.OpenFile() pdfDoc.SaveToStream(stream) End Using End If End Sub End Class End Namespace
Published in
Formating
page

