Preference belongs to everyone, almost everybody has preferences. If you choose ten person and view the
layout of their desktop, the result may make you feel it is amazing
that all the desktops are different both in the backdrop and the
position of content. What makes this? It is view preference.
Recently, I read a book, a research shows that the view preference of people in American differs from people in China, the view preference of American is "F", but the Chinese is "Column". Thus, satisfying the view preference of different people is significant. For software applications, providing the function of setting the view preference by people themselves gains great popularity. Of course, as to PDF creation component Spire.PDF users, viewing the PDF page according to their own like is rather easy. Please follow the below procedure.
Preview
Recently, I read a book, a research shows that the view preference of people in American differs from people in China, the view preference of American is "F", but the Chinese is "Column". Thus, satisfying the view preference of different people is significant. For software applications, providing the function of setting the view preference by people themselves gains great popularity. Of course, as to PDF creation component Spire.PDF users, viewing the PDF page according to their own like is rather easy. Please follow the below procedure.
Procedure
Step1. Create a new project .
1.Create a new project in Console Application in Visual Studio.
2.Set the Target framework to be .NET Framework 2 or above.
Step2. Add reference.
1.Add System Drawing and Spire.PDF Dll as references in Project at the top of the Visual Studio.
2.Add following using at the top of the method.
C#
VB.NET
Step1. Create a new project .
1.Create a new project in Console Application in Visual Studio.
2.Set the Target framework to be .NET Framework 2 or above.
Step2. Add reference.
1.Add System Drawing and Spire.PDF Dll as references in Project at the top of the Visual Studio.
2.Add following using at the top of the method.
C#
using System.Drawing;using Spire.Pdf;using Spire.Pdf.Graphics;
VB.NET
Imports System.DrawingImports Spire.PdfImports Spire.Pdf.Graphics
Step3. Set PDF view preference.
1.Create a new PDF Document.
C# Code:
VB.NET Code:
1.Create a new PDF Document.
C# Code:
//Create a pdf document. PdfDocument doc = new PdfDocument(); // Create one page PdfPageBase page = doc.Pages.Add();
VB.NET Code:
'Create a pdf document. Dim doc As New PdfDocument() ' Create one page Dim page As PdfPageBase = doc.Pages.Add()
2. Draw the created page.
In a first sight, you may find that this step is a little complicated, because the code is really long, but the fact is not like that. You can divide this step to be three: page header, title and content. If you have icon and reference content, you can set them, but not all PDF pages have an icon and reference content. If you have an existing PDF Document and want to set view preference, this step should be avoided.
C# Code:
In a first sight, you may find that this step is a little complicated, because the code is really long, but the fact is not like that. You can divide this step to be three: page header, title and content. If you have icon and reference content, you can set them, but not all PDF pages have an icon and reference content. If you have an existing PDF Document and want to set view preference, this step should be avoided.
C# Code:
private static void DrawPage(PdfPageBase page) { 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 (@"C:\Program Files\e-iceblue\Spire.Pdf\Demos\Data\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 (@"C:\Program Files\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 Code:
Private Shared Sub DrawPage(ByVal page As PdfPageBase) 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 ("C:\Program Files\e-iceblue\Spire.Pdf\Demos\Data\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 ("C:\Program Files\e-iceblue\Spire.Pdf\Demos\Data\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) End Sub
3.Set PDF view preferences.
C# Code:
VB.NET Code:
C# Code:
//set view reference doc.ViewerPreferences.CenterWindow = true; doc.ViewerPreferences.DisplayTitle = false; doc.ViewerPreferences.FitWindow = false; doc.ViewerPreferences.HideMenubar = true; doc.ViewerPreferences.HideToolbar = true; doc.ViewerPreferences.PageLayout = PdfPageLayout.SinglePage;
VB.NET Code:
'set view reference doc.ViewerPreferences.CenterWindow = True doc.ViewerPreferences.DisplayTitle = False doc.ViewerPreferences.FitWindow = False doc.ViewerPreferences.HideMenubar = True doc.ViewerPreferences.HideToolbar = True doc.ViewerPreferences.PageLayout = PdfPageLayout.SinglePage
Step4. Save the PDF file and launch it.
C# Code:
VB.NET Code:
C# Code:
//Save pdf file. doc.SaveToFile("ViewerPreference.pdf"); doc.Close(); //Launching the Pdf file. System.Diagnostics.Process.Start("ViewerPreference.pdf");
VB.NET Code:
'Save pdf file. doc.SaveToFile("ViewerPreference.pdf") doc.Close() 'Launching the Pdf file. Process.Start("ViewerPreference.pdf")
No comments:
Post a Comment