Monday, 13 February 2012 06:14

Background Color and Rotate in C#, VB.NET

As a standalone professional PDF document creation component, Spire.PDF allows developers/programmers using C#/VB.NET to setup PDF page. By using Spire.PDF, we can easily use C#/VB.NET to set PDF page background color and rotate page as we like. Now, we will introduce you how to use C#/VB.NET to set PDF page background and rotate.

Note: Please make sure Spire.PDF and Visual Studio are correctly installed on system.

Step 1: Create a project in Visual Studio and add Spire.PDF dll as reference.

Step 2: C#/VB.NET Setup PDF Page Background Color

First, Create a PDF Page.

Spire.PDF presents an easy way to create PDF page for developers. Following the code below:

Spire.PDF enables users to create new blank PDF document for drawing images. Use the following code to create a new PDF document and a page.

[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;
[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

Second, draw/setup Page

Now, we can setup PDF page size, margin and background. Spire.PDF offers all color choices for users.

[C#]
            // Create one page
            PdfPageBase page = doc.Pages.Add(PdfPageSize.A4, margin);
            page.BackgroundColor = Color.Chocolate;

            //Draw page
            DrawPage(page);

            page = doc.Pages.Add(PdfPageSize.A4, margin);
            page.BackgroundColor = Color.Coral;
[VB.NET]
            ' Create one page
            Dim page As PdfPageBase = doc.Pages.Add(PdfPageSize.A4, margin)
            page.BackgroundColor = Color.Chocolate

            'Draw page
            DrawPage(page)

            page = doc.Pages.Add(PdfPageSize.A4, margin)
            page.BackgroundColor = Color.Coral

Third, Add Content in PDF Page

After we setup PDF page background color, we can use Spire.PDF to add some contents.

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

            //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;
            String text = "Summary of Science";
            page.Canvas.DrawString(text, font2, brush2, pageWidth / 2, y, format2);
            SizeF 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);
[VB.NET]
Private Shared Sub DrawPage(ByVal page As PdfPageBase)
            Dim pageWidth As Single = page.Canvas.ClientSize.Width
            Dim y As Single = 0

            '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
            Dim text As String = "Summary of Science"
            page.Canvas.DrawString(text, font2, brush2, pageWidth / 2, y, format2)
            Dim size As SizeF = 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)

Effective Screenshot:

Setup PDF Page

Step 3: Rotate PDF Page

Spire.PDF can easily help developers set up PDF page rotate. The following code is showing you how to set 180 degree rotate.

[C#]
            //create section
            PdfSection section = doc.Sections.Add();
            section.PageSettings.Size = PdfPageSize.A4;
            section.PageSettings.Margins = margin;

            //Rotate 180
            section = doc.Sections.Add();
            section.PageSettings.Size = PdfPageSize.A4;
            section.PageSettings.Margins = margin;
            section.PageSettings.Rotate = PdfPageRotateAngle.RotateAngle180;
            page = section.Pages.Add();
            DrawPage(page);
[VB.NET]
            'create section
            Dim section As PdfSection = doc.Sections.Add()
            section.PageSettings.Size = PdfPageSize.A4
            section.PageSettings.Margins = margin

            'Rotate 180
            section = doc.Sections.Add()
            section.PageSettings.Size = PdfPageSize.A4
            section.PageSettings.Margins = margin
            section.PageSettings.Rotate = PdfPageRotateAngle.RotateAngle180
            page = section.Pages.Add()
            DrawPage(page)

Effective Screenshot:

Setup PDF Page

Step 4: Save and Preview

Once we finish all setup operations, we can use the following code to save and preview.

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

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

            'Launching the Pdf file.
            Process.Start("PageSetup.pdf")
Friday, 10 February 2012 06:46

Word Footer in Silverlight

The sample demonstrates how to create Word Footer in Silverlight via Spire.Doc.

Friday, 10 February 2012 06:23

Excel Write Filters in Silverlight

The sample demonstrates how to use Excel Filter function in Silverlight via Spire.XLS.

Thursday, 09 February 2012 02:49

How to Convert RTF to HTML in C#, VB.NET

Spire.Doc allows users to use C#/VB.NET to convert RTF to HTML. And it's the same easy as conversion from Word to HTML. Now, follow the simple steps to use C#/VB.NET to convert RTF to HTML.

Note: Please make sure Spire.Doc and Visual Studio (Version 2008 or later) are correctly installed on your system.

Step 1: Create Project

Create a windows forms application project in your visual studio and add Spire.Doc dll as reference. Generate a button and double click to go to step 2.

Step 2: C#/VB.NET RTF to HTML Conversion

Spire.Doc offers an easy solution to convert RTF to HTML. Copy and paste the simple C# and VB.NET code into the project.

[C#]
            Document document = new Document();
            document.LoadFromFile(@"D:\Work\Stephen\2012.02.09\C# Create Excel.rtf");
            document.SaveToFile("sample.html", FileFormat.Html);
            WordDocViewer("sample.html");
[VB.NET]
Dim document As New Document()
document.LoadFromFile("D:\Work\Stephen\2012.02.09\C# Create Excel.rtf")
document.SaveToFile("sample.html", FileFormat.Html)
WordDocViewer("sample.html")

Step 3: Save and Preview

To fast preview the effect of RTF to HTML conversion, we can use the code below to save and start project.

[C#]
        private void WordDocViewer(string fileName)
        {
            try
            {
                System.Diagnostics.Process.Start(fileName);
            }
            catch { }
        }
[VB.NET]
Private Sub WordDocViewer(fileName As String)
	Try
		System.Diagnostics.Process.Start(fileName)
	Catch
	End Try
End Sub

Effective Screeshot:

Spire.Doc is a professional word component which enables developers/programmers to fast generate, read, write and modify Word document for .NET and Silverlight. It supports C#, VB.NET, ASP.NET, ASP.NET MVC and Silverlight.

Wednesday, 08 February 2012 03:08

Create Excel File in C#, VB.NET

This section is designed to provide developers a simple solution on how to create Excel file in C#, VB.NET via this .NET Excel component Spire.XLS for .NET.

Spire.XLS for .NET allows you to create Excel file on the formats of Excel (.xls) 97-2003 and Excel (.xlsx) 2007 and Excel(.xlsx)2010 without installing MS Excel or any third party library. Apart from creating Excel file, this Excel api also enables you to read, edit and manipulate Excel files with high efficiency in .NET applications.

Below is the sample code for you to find how you can create an Excel file:

[C#]
using System.Drawing;
using Spire.Xls;

namespace Create_Excel_File
{
    class Program
    {
        static void Main(string[] args)
        {
            //Initialize a new Workboook object
            Workbook workbook = new Workbook();
            //Get the first worksheet
            Worksheet sheet = workbook.Worksheets[0];
            //Write string values in a cell
            sheet.Range["A3"].Text = "This Excel Document is Created by Spire.XLS for .NET";
            //Save workbook to disk
            workbook.SaveToFile("Sample.xls",ExcelVersion.Version97to2003);
            try
            {
                System.Diagnostics.Process.Start(workbook.FileName);
            }
            catch { }
        }
    }
}
[VB.NET]
Imports System.Drawing
Imports Spire.Xls

Namespace Create_Excel_File
	Class Program
		Private Shared Sub Main(args As String())
			'Initialize a new Workboook object
			Dim workbook As New Workbook()
			'Get the first worksheet
			Dim sheet As Worksheet = workbook.Worksheets(0)
			'Write string values in a cell
			sheet.Range("A3").Text = "This Excel Document is Created by Spire.XLS for .NET"
			'Save workbook to disk
			workbook.SaveToFile("Sample.xls",ExcelVersion.Version97to2003)
			Try
			System.Diagnostics.Process.Start(workbook.FileName)
			Catch
			End Try
		End Sub
	End Class
End Namespace

The Created Excel File

After executing above code, The Excel file is created and some string values are also added in the first Worksheet”Sheet1”. Please see the screenshot below:

Create Excel File

Tuesday, 07 February 2012 06:44

Draw PDF Image in C#, VB.NET

PDF image is an important part of PDF document, especially in some material instructions, a small image can show useful information that even thousands of words cannot explain. While PDF images are also used to make the document more attractive. This section will show you a solution to draw PDF image via a .NET PDF component in C#, VB.NET.

Spire.PDF for .NET, a .NET PDF library for handling PDF file, enables you to draw image in PDF with C#, VB.NET. Using this PDF component, you can not only set your image size in the PDF file but also place the image at a specific position. In my solution, I set the transparency to avoid covering PDF text by PDF image. You can view the target PDF file as below picture:

Draw Image in PDF

Here you can download Spire.PDF for .NET, after installing it on system and adding Spire.Pdf dll, you can start your PDF task by following steps.

Detail Code:

There are mainly three simple steps in my solution. The first step requires you to load an image, which can be achieved by this method: System.Drawing.Image FromFile(string filename). The second step needs you to set image size to match the PDF appropriately through setting image width and height via System.Drawing.Size(int width, int height). The last step is designed to set the PDF image position and draw image in PDF. You can call DrawImage(PdfImage image, PointF point) method in which there are with two parameters passed. The second parameter is mainly responsible for setting image to a specific position. If necessary, you also can set transparency by SetTransparency(float alpha). Please see the whole code here.

[C#]
using System.Drawing;
using Spire.Pdf;
using Spire.Pdf.Graphics;

namespace PDFimage
{
    class Program
    {
        static void Main(string[] args)
        {
            //Create a pdf document.
            PdfDocument doc = new PdfDocument();
            doc.LoadFromFile(@"..\Sample.pdf");
            Image image = Image.FromFile(@"..\images.jpg");

            //adjust image size
            int width=image.Width;
            int height=image.Height;
            float schale=1.5f;
            Size size=new Size ((int)(width*schale),(int)(height*schale));
            Bitmap schaleImage = new Bitmap(image, size);

            //insert image into the first PDF page at specific position
            PdfImage pdfImage = PdfImage.FromImage(schaleImage);
            PdfPageBase page0 = doc.Pages[0];
            PointF position = new PointF((page0.Canvas.ClientSize.Width - schaleImage.Width) / 2, 210);
            page0.Canvas.SetTransparency(0.5f);
            page0.Canvas.DrawImage(pdfImage, position);
            page0.Canvas.SetTransparency(1.0f);

            doc.SaveToFile(@"pdfimage.pdf");
            System.Diagnostics.Process.Start(@"pdfimage.pdf");
        }
    }
}
[VB.NET]
Imports System.Drawing
Imports Spire.Pdf
Imports Spire.Pdf.Graphics

Namespace PDFimage
    
    Class Program
        
        Private Shared Sub Main(ByVal args() As String)
            'Create a pdf document.
            Dim doc As PdfDocument = New PdfDocument
            doc.LoadFromFile("..\Sample.pdf")
            Dim image As Image = Image.FromFile("..\images.jpg")
            'adjust image size
            Dim width As Integer = image.Width
            Dim height As Integer = image.Height
            Dim schale As Single = 1.5!
            Dim size As Size = New Size(CType((width * schale),Integer), CType((height * schale),Integer))
            Dim schaleImage As Bitmap = New Bitmap(image, size)
            'insert image into the first PDF page at specific position
            Dim pdfImage As PdfImage = PdfImage.FromImage(schaleImage)
            Dim page0 As PdfPageBase = doc.Pages(0)
            Dim position As PointF = New PointF(((page0.Canvas.ClientSize.Width - schaleImage.Width)  _
                            / 2), 210)
            page0.Canvas.SetTransparency(0.5!)
            page0.Canvas.DrawImage(pdfImage, position)
            page0.Canvas.SetTransparency(1!)
            doc.SaveToFile("pdfimage.pdf")
            System.Diagnostics.Process.Start("pdfimage.pdf")
        End Sub
    End Class
End Namespace

Spire.PDF for .NET allows developers to perform a wide range of tasks directly without Adobe Acrobat such as create, edit, read and manage PDF documents in C#,VB.NET.

Sunday, 29 January 2012 03:37

Set Excel Background Color in C#, VB.NET

Excel background color is very useful for developers to analyze data information. Setting background color of rows or columns in a similar category makes the data obviously shown. In this section, one line of code will help you easily set your excel background color in a fast way by a .NET Excel component.

Spire.XLS for .NET is an Excel document generating, reading, writing and manipulating component for .NET. It enables you to set excel background color by the class Spire.Xls.Worksheet. Range[].Style.Color. While before setting the background color, you need to use Workbook.LoadFromFile(string fileName, bool preserveMode) method to load your Excel file from system and save the excel file by Workbook.SaveToFile(string fileName) after.

Please Download Spire.XLS for .NET and preview the target excel as picture below:

Set Excel Background Color

[C#]
using System.Drawing;
using Spire.Xls;

namespace background_color
{
    class Program
    {
        static void Main(string[] args)
        {
            Workbook workbook = new Workbook();
            workbook.LoadFromFile(@"..\Backgroundcolor.xls", ExcelVersion.Version97to2003);
            Worksheet worksheet = workbook.Worksheets[0];

            //set the backgroundcolor of Range["A1:D1"]
            worksheet.Range["A1:D1"].Style.Color = Color.LightSeaGreen;

            //set the backgroundcolor of Range["A2:D6"]
            worksheet.Range["A2:D6"].Style.Color = Color.SpringGreen;

            //set the backgroundcolor of Range["A7:D11"]
            worksheet.Range["A7:D11"].Style.Color = Color.DeepSkyBlue;

            //set the backgroundcolor of Range["A12:D16"]
            worksheet.Range["A12:D16"].Style.Color = Color.Yellow;

            //save and launch the project
            workbook.SaveToFile("test.xls", ExcelVersion.Version97to2003);
            System.Diagnostics.Process.Start(workbook.FileName);
        }

    }
}
[VB.NET]
Imports System.Drawing
Imports Spire.Xls

Namespace background_color
    
    Class Program
        
        Private Shared Sub Main(ByVal args() As String)
            Dim workbook As Workbook = New Workbook
            workbook.LoadFromFile("..\Backgroundcolor.xls", ExcelVersion.Version97to2003)
            Dim worksheet As Worksheet = workbook.Worksheets(0)
            'set the backgroundcolor of Range["A1:D1"]
            worksheet.Range("A1:D1").Style.Color = Color.LightSeaGreen
            'set the backgroundcolor of Range["A2:D6"]
            worksheet.Range("A2:D6").Style.Color = Color.SpringGreen
            'set the backgroundcolor of Range["A7:D11"]
            worksheet.Range("A7:D11").Style.Color = Color.DeepSkyBlue
            'set the backgroundcolor of Range["A12:D16"]
            worksheet.Range("A12:D16").Style.Color = Color.Yellow
            'save and launch the project
            workbook.SaveToFile("test.xls", ExcelVersion.Version97to2003)
            System.Diagnostics.Process.Start(workbook.FileName)
        End Sub
    End Class
End Namespace

Spire.XLS allows user to operate Excel document directly such as save to stream, save as web response, copy, lock/unlock worksheet, set up workbook properties, etc. As a professional .NET/Silverlight Excel component, it owns the ability of inserting content into Excel document, formatting cells and converting Excel documents to popular office file formats. Spire.XLS for .NET supports Excel 97-2003, Excel 2007 and Excel 2010.

Friday, 13 January 2012 03:11

Merge PDF Documents in Silverlight

The sample demonstrates how to Merge PDF documents in Silverlight via Spire.XLS.

(No Screenshots)

Friday, 13 January 2012 02:59

Create Excel Group in Silverlight

The sample demonstrates how to create Excel group in Silverlight via Spire.XLS.

Friday, 13 January 2012 02:29

Word Header in Silverlight

The sample demonstrates how to add Word header in Silverlight via Spire.Doc.