Thursday, 12 April 2012 06:24

PDF Text Format for Silverlight

The sample demonstrates how to Set PDF Text Format for Silverlight via Spire.PDF.


Thursday, 12 April 2012 06:08

Word Table for Silverlight

The sample demonstrates how to Create Table in Word for Silverlight via Spire.Doc.


Thursday, 12 April 2012 05:57

Edit Excel in Silverlight

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


In a PDF document, contents are often formed by text. If readers think that contents are useful for them or can be takes as template, they may need to extract text from PDF and save as other format document.

Spire.PDF provides users with function to extract text from PDF document and save text as txt. This program guides demonstrates method about how to extract text by using C#/VB.NET via Spire.PDF easily and quickly.

Step 1: Load PDF Document

Declare a new PDF document and then use document.LoadFromFile() method to get document which we want to extract text. The parameter passed to this method is file name string.

            PdfDocument document = new PdfDocument();
            document.LoadFromFile(@"E:\work\C pointer.pdf");
            Dim document As New PdfDocument()
            document.LoadFromFile("E:\work\A Day to Remember.pdf")

Step 2: Extract Text from PDF

Declare a new StringBuilder content, which represents a mutable string of characters. Then, append extracted text from PDF in StringBuilder by using content.Append() method. In this example, text is extracted from the first page.

            StringBuilder content = new StringBuilder();
            Dim content As New StringBuilder()

Step 3: Save and Launch Extracted Text

Define a file name string. Then, use File.WriteAllText() method to create a new file and write specified string in it then close file. The parameters passed to it are file name string and content string. Finally, launch this saved file.

            String fileName = "TextFromPDF.txt";
            File.WriteAllText(fileName, content.ToString());
            Dim fileName As String = "TextFromPDF.txt"
            File.WriteAllText(fileName, content.ToString())

Note: If you want to extract text from all pages, please use the following sentences.

            foreach (PdfPageBase page in document.Pages)
            For Each page As PdfPageBase In document.Pages
            Next page

Effective Screeshot:

Spire.PDF is a PDF document creation component that enables your .NET applications to read, write and manipulate PDF documents without using Adobe Acrobat. Now, the new version added Silverlight platform which makes it more powerful.

After searching so much information about PDF merge, it is easy to find that whether you merge PDF files online or use C#/VB.NET to realize this task, you never escape worrying some important points such as the safety of your PDF file, so much time it costs or whether the merged file supports to print page number and so on. However, as long as you come here, these troubles will not appear. This section will specifically introduce you a secure solution to merge PDF files into one with C#, VB.NET via a .NET PDF component Spire.PDF for .NET.

Spire.PDF for .NET, built from scratch in C#, enables programmers and developers to create, read, write and manipulate PDF documents in .NET applications without using Adobe Acrobat or any external libraries. Using Spire.PDF for .NET, you not only can quickly merge PDF files but also enables you to print PDF page with page number. Now please preview the effective screenshot below:

Merge PDF Documents

Before following below procedure, please download Spire.PDF for .NET and install it on system.

Step1: You can use the String array to save the names of the three PDF files which will be merged into one PDF and demonstrate Spire.Pdf.PdfDocument array. Then, load three PDF files and select the first PdfDocument for the purpose of merging the second and third PDF file to it. In order to import all pages from the second PDF file to the first PDF file, you need to call the method public void AppendPage(PdfDocument doc). Also by calling another method public PdfPageBase InsertPage(PdfDocument doc, int pageIndex),every page of the third PDF file can be imported to the first PDF file.

private void button1_Click(object sender, EventArgs e)
            //pdf document list
            String[] files = new String[]
                @"..\ PDFmerge1.pdf",
                @"..\ PDFmerge2.pdf"
            //open pdf documents            
            PdfDocument[] docs = new PdfDocument[files.Length];
            for (int i = 0; i < files.Length; i++)
                docs[i] = new PdfDocument(files[i]);
            //append document

            //import PDF pages
            for (int i = 0; i < docs[2].Pages.Count; i = i + 2)
                docs[0].InsertPage(docs[2], i);
 Private Sub button1_Click(sender As Object, e As EventArgs)
	'pdf document list
	Dim files As [String]() = New [String]() {"..\PDFmerge0.pdf", "..\ PDFmerge1.pdf", "..\ PDFmerge2.pdf"}
	'open pdf documents            
	Dim docs As PdfDocument() = New PdfDocument(files.Length - 1) {}
	For i As Integer = 0 To files.Length - 1
		docs(i) = New PdfDocument(files(i))

	'append document

	'import PDF pages
	Dim i As Integer = 0
	While i < docs(2).Pages.Count
		docs(0).InsertPage(docs(2), i)
		i = i + 2
	End While

Step2: Draw page number in the first PDF file. In this step, you can set PDF page number margin by invoking the class Spire.Pdf.Graphics. PdfMargins. Then, Call the custom method DrawPageNumber(PdfPageCollection pages, PdfMargins margin, int startNumber, int pageCount) to add page number in the bottom of every page in the first PDF. Please see the detail code below:

           //set PDF 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;
            this.DrawPageNumber(docs[0].Pages, margin, 1, docs[0].Pages.Count);

          private void DrawPageNumber(PdfPageCollection pages, PdfMargins margin, int startNumber, int pageCount)
            foreach (PdfPageBase page in pages)
                PdfBrush brush = PdfBrushes.Black;
                PdfPen pen = new PdfPen(brush, 0.75f);
                PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 9f, System.Drawing.FontStyle.Italic), true);
                PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Right);
                format.MeasureTrailingSpaces = true;
                float space = font.Height * 0.75f;
                float x = margin.Left;
                float width = page.Canvas.ClientSize.Width - margin.Left - margin.Right;
                float y = page.Canvas.ClientSize.Height - margin.Bottom + space;
                page.Canvas.DrawLine(pen, x, y, x + width, y);
                y = y + 1;
                String numberLabel
                    = String.Format("{0} of {1}", startNumber++, pageCount);
                page.Canvas.DrawString(numberLabel, font, brush, x + width, y, format);
       'set PDF 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
	Me.DrawPageNumber(docs(0).Pages, margin, 1, docs(0).Pages.Count)

       Private Sub DrawPageNumber(pages As PdfPageCollection, margin As PdfMargins, startNumber As Integer, pageCount As Integer)
	For Each page As PdfPageBase In pages
		Dim brush As PdfBrush = PdfBrushes.Black
		Dim pen As New PdfPen(brush, 0.75F)
		Dim font As New PdfTrueTypeFont(New Font("Arial", 9F, System.Drawing.FontStyle.Italic), True)
		Dim format As New PdfStringFormat(PdfTextAlignment.Right)
		format.MeasureTrailingSpaces = True
		Dim space As Single = font.Height * 0.75F
		Dim x As Single = margin.Left
		Dim width As Single = page.Canvas.ClientSize.Width - margin.Left - margin.Right
		Dim y As Single = page.Canvas.ClientSize.Height - margin.Bottom + space
		page.Canvas.DrawLine(pen, x, y, x + width, y)
		y = y + 1
		Dim numberLabel As [String] = [String].Format("{0} of {1}", System.Math.Max(System.Threading.Interlocked.Increment(startNumber),startNumber - 1), pageCount)
		page.Canvas.DrawString(numberLabel, font, brush, x + width, y, format)
End Sub

The PDF merge code can be very long when you view it at first sight, actually, if you do not need to add page number in your merged PDF, steps two should be avoided. However, in many cases, page number brings great convenience for users to read PDF as well as print it. Spire.PDF for .NET can satisfy both your requirements of merging PDF files and adding page numbers in the merged PDF file.

Thursday, 05 April 2012 06:48

Set PDF Properties in Silverlight

The sample demonstrates how to set PDF properties for Silverlight via Spire.PDF.


Thursday, 05 April 2012 06:35

Create Excel Document in Silverlight

The sample demonstrates how to Create Excel file for Silverlight via Spire.XLS.


Thursday, 05 April 2012 06:24

Word Bookmark in Silverlight

The sample demonstrates how to add bookmark into Word for Silverlight via Spire.Doc.


Thursday, 05 April 2012 03:07

How to Set Word Table Style in C#, VB.NET

Table in Microsoft Word is used to present data information which can assist to explain specified paragraph contents. In order to have a better appearance, people can set Word table style. This guide shows how to use Spire.Doc to set table style in Word with C#/VB.NET.

Download Spire.Doc (or Spire.Office) with .NET Framework 2.0 (or above) together. Once make sure Spire.Doc (or Spire.Office) are correctly installed on system, follow the steps below to set Word table style

In this example, a Word document with table has been prepared. It is a student transcript template from

Step 1Create a C#/VB.NET project in Visual Studio. Add Spire.Doc.dll as reference.

Document document = new Document();
document.LoadFromFile(@"E:\work\Documents\Student Transcript.docx");
Dim document As New Document()
document.LoadFromFile("E:\work\Documents\Student Transcript.docx")

Step 2: Set Table Style

Get table which you want to set style

Because table1 type is different from document.Sections[0].Tables[1] type, so use (Table) to transformed forcibly.

Table table1 = (Table)document.Sections[0].Tables[1];
Dim table1 As Table = CType(document.Sections(0).Tables(1), Table)

Set table row height.

table1.Rows[0].Height = 25;
table1.Rows(0).Height = 25

Set Table Style

In order to have distinction. Keep the first cell in first row as before and set style for the second cell. Firstly, set alignment and background color for the second cell. Secondly, declare a paragraph style, including font size, color and apply this style in cell.

table1.Rows[0].Cells[1].CellFormat.VerticalAlignment = VerticalAlignment.Middle;
table1.Rows[0].Cells[1].CellFormat.BackColor = Color.LimeGreen;

ParagraphStyle style = new ParagraphStyle(document);
style.Name = "TableStyle";
style.CharacterFormat.FontSize = 14;
style.CharacterFormat.TextColor = Color.GhostWhite;
table1.Rows(0).Cells(1).CellFormat.VerticalAlignment = VerticalAlignment.Middle
table1.Rows(0).Cells(1).CellFormat.BackColor = Color.LimeGreen

Dim style As New ParagraphStyle(document)
style.Name = "TableStyle"
style.CharacterFormat.FontSize = 14
style.CharacterFormat.TextColor = Color.GhostWhite

Step 3: Save and Launch

document.SaveToFile("WordTable.docx", FileFormat.Docx);
document.SaveToFile("WordTable.docx", FileFormat.Docx)

Effective Screenshot:

Word Table Format

This guide shows how to set Word table style such as size and color via Spire.Doc. However, Spire.Doc can do a lot on operating Word document Click to learn more

Wednesday, 04 April 2012 03:22

Excel Sort-Sort Excel Data in C#, VB.NET

Sorting Excel data is very useful in Excel. It helps people automatically sort the Excel data information quickly which saves much time and avoid mistakes. This section will introduce a solution to sort Excel data by four ways: Ascending, Descending, Top and Bottom via a .NET Excel component in C#, VB.NET.

Spire.XLS for .NET is a professional Excel component which is applied in .NET applications. This .NET component enables you to sort Excel data both in horizontal and vertical directions. Only by two lines’ of key code, you can easily sort excel data according to your need. First you are required to decide which column that you need to sort by calling this method: Workbook.DataSorter.SortColumn Add(int key, OrderBy orderBy). Then, you can set the cell range that you need to sort through Workbook. DataSorter.Sort(CellRange range). Please view the effect of this task as below picture:

Sort Excel Data

Here you can download Spire.XLS for .NET and install it in your system. After adding Spire.Xls dll from your Bin folder, please follow below code to accomplish your task directly.

private void button1_Click(object sender, EventArgs e)
            Workbook workbook = new Workbook();
            workbook.LoadFromFile(@"..\sort excel.xlsx");
            Worksheet worksheet = workbook.Worksheets[0];

            //append the sort column index and order by attributes 
            workbook.DataSorter.SortColumns.Add(2, OrderBy.Ascending);
            //set the range to sort.

            //save and launch the file5
            private void ExcelDocViewer(string fileName)
                catch { }
Private Sub button1_Click(sender As Object, e As EventArgs)
	Dim workbook As New Workbook()
	workbook.LoadFromFile("..\sort excel.xlsx")
	Dim worksheet As Worksheet = workbook.Worksheets(0)

	'append the sort column index and order by attributes 
	workbook.DataSorter.SortColumns.Add(2, OrderBy.Ascending)

	'set the range to sort.

	'save and launch the file5
	workbook.SaveToFile("test.xlsx", ExcelVersion.Version2010)
End Sub
Private Sub ExcelDocViewer(fileName As String)
	End Try
End Sub