Why Save PDF File via PDF Viewer?

Both PDF and PDF Viewer can save a PDF file. The main difference is that people cannot view that PDF file when save a PDF document by PDF. While using PDF Viewer, you can save any PDF file from your system as well as open and view it in Windows Forms. Furthermore, tasks such as print, zoom, page, export PDF to images all can be realized by PDF Viewer. Thus, save a PDF file via Spire. PDFViewer is rather helpful and useful in people's daily work.

How to Save PDF file via Spire.PDFViewer with C#, VB.NET

Spire. PDFViewer for .NET, as a powerful PDF Viewer component, allows you to finish the whole PDF saving task quickly with the below procedure.

Step 1: Create a new project

  • Create a new project in Windows Forms Application.
  • Set the target Framework to in Properties of this project to be .NET Framework 2 or above.

Step 2: Add reference and Set up the Form

  • Add Spire.PDFViewer Forms dll as reference from Spire.PDFViewer
  • Add a toolScript and pdfDocumentViewer in the default Form” Form1”.
  • Add three buttons and a ComboBox in Form1 from toolScript dropdown list by right clicking it.
  • Set the properties of three buttons and ComboBox as picture below

Step 3: Save PDF file by PDF Viewer

Add below namespaces at the top of the method.

[C#]
using System.IO;
using Spire.PdfViewer.Forms;
[VB.NET]
Imports System.IO
Imports Spire.PdfViewer.Forms

Load a PDF file from system and open it. This step allows you to choose a PDF Document directly from system in a dialog box.

[C#]
        private void Form1_Load(object sender, EventArgs e)
        {
        }
        private void BtnOpen_Click(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();
            dialog.Filter = "PDF document (*.pdf)|*.pdf";
            DialogResult result = dialog.ShowDialog();
            if (result == DialogResult.OK)
            {
                try
                {
                    string pdfFile = dialog.FileName;
                    this.pdfDocumentViewer1.LoadFromFile(pdfFile);
                }
                catch (Exception exe)
                {
                    MessageBox.Show(exe.Message, "Spire.PdfViewer Demo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

            }
        }
[VB.NET]
	Private Sub Form1_Load(sender As Object, e As EventArgs)
	End Sub
	Private Sub BtnOpen_Click(sender As Object, e As EventArgs)
		Dim dialog As New OpenFileDialog()
		dialog.Filter = "PDF document (*.pdf)|*.pdf"
		Dim result As DialogResult = dialog.ShowDialog()
		If result = DialogResult.OK Then
			Try
				Dim pdfFile As String = dialog.FileName
			Me.pdfDocumentViewer1.LoadFromFile(pdfFile)
			Catch exe As Exception
				MessageBox.Show(exe.Message, "Spire.PdfViewer Demo", MessageBoxButtons.OK, MessageBoxIcon.[Error])

			End Try
		End If
	End Sub

Save the PDF file. This step enables you not only to save the PDF file but also to view the PDF Document page by selecting the page number in ComboBox dropdown list. And the page number will automatically change to the page that you view when you scroll your mouse up and down.

[C#]
        private void BtnSave_Click(object sender, EventArgs e)
        {
            if (this.pdfDocumentViewer1.PageCount > 0)
            {
                SaveFileDialog dialog = new SaveFileDialog();
                dialog.Filter = "PDF document (*.pdf)|*.pdf";
                DialogResult result = dialog.ShowDialog();
                string fileName = dialog.FileName;
                if (result == DialogResult.OK)
                {
                    pdfDocumentViewer1.SaveToFile(fileName);
                    MessageBox.Show("You have saved this PdfDocuemnt as:\n" + fileName, "Spire.PdfViewer Demo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }
        private void BtnSaveStream_Click(object sender, EventArgs e)
        {
            if (this.pdfDocumentViewer1.PageCount > 0)
            {
                SaveFileDialog dialog = new SaveFileDialog();
                dialog.Filter = "PDF document (*.pdf)|*.pdf";
                DialogResult result = dialog.ShowDialog();
                string fileName = dialog.FileName;
                if (result == DialogResult.OK)
                {
                    MemoryStream stream = new MemoryStream();
                    pdfDocumentViewer1.SaveToFile(stream);
                    byte[] fileBytes = stream.ToArray();
                    FileStream fileStream = new FileStream(fileName, FileMode.Create, FileAccess.ReadWrite);
                    fileStream.Write(fileBytes, 0, fileBytes.Length);
                    fileStream.Flush();
                    fileStream.Close();
                    stream.Close();
                    MessageBox.Show("You have first saved this PDF docuemnt as memory stream,\nthen write the memory stream in a file :\n" + fileName, "Spire.PdfViewer Demo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }
        private void pdfDocumentViewer1_PdfLoaded(object sender, EventArgs args)
        {
            this.comBoxPages.Items.Clear();
            int totalPage = this.pdfDocumentViewer1.PageCount;
            for (int i = 1; i <= totalPage; i++)
            {
                this.comBoxPages.Items.Add(i.ToString());
            }
            this.comBoxPages.SelectedIndex = 0;
        }
        private void pdfDocumentViewer1_PageNumberChanged(object sender, EventArgs args)
        {
            if (this.comBoxPages.Items.Count <= 0)
                return;
            if (this.pdfDocumentViewer1.CurrentPageNumber != this.comBoxPages.SelectedIndex + 1)
            {
                this.comBoxPages.SelectedIndex = this.pdfDocumentViewer1.CurrentPageNumber - 1;
            }
        }
        private void comBoxPages_SelectedIndexChanged(object sender, EventArgs e)
        {
            int soucePage = this.pdfDocumentViewer1.CurrentPageNumber;
            int targetPage = this.comBoxPages.SelectedIndex + 1;
            if (soucePage != targetPage)
            {
                this.pdfDocumentViewer1.GoToPage(targetPage);
            }
        }
[VB.NET]
	Private Sub BtnSave_Click(sender As Object, e As EventArgs)
		If Me.pdfDocumentViewer1.PageCount > 0 Then
			Dim dialog As New SaveFileDialog()
			dialog.Filter = "PDF document (*.pdf)|*.pdf"
			Dim result As DialogResult = dialog.ShowDialog()
			Dim fileName As String = dialog.FileName
			If result = DialogResult.OK Then
				pdfDocumentViewer1.SaveToFile(fileName)
				MessageBox.Show("You have saved this PdfDocuemnt as:" & vbLf & fileName, "Spire.PdfViewer Demo", MessageBoxButtons.OK, MessageBoxIcon.Information)
			End If
		End If
	End Sub

	Private Sub BtnSaveStream_Click(sender As Object, e As EventArgs)
		If Me.pdfDocumentViewer1.PageCount > 0 Then
			Dim dialog As New SaveFileDialog()
			dialog.Filter = "PDF document (*.pdf)|*.pdf"
			Dim result As DialogResult = dialog.ShowDialog()
			Dim fileName As String = dialog.FileName
			If result = DialogResult.OK Then

				Dim stream As New MemoryStream()
				pdfDocumentViewer1.SaveToFile(stream)
				Dim fileBytes As Byte() = stream.ToArray()
				Dim fileStream As New FileStream(fileName, FileMode.Create, FileAccess.ReadWrite)
				fileStream.Write(fileBytes, 0, fileBytes.Length)
				fileStream.Flush()
				fileStream.Close()
				stream.Close()

				MessageBox.Show("You have first saved this PDF docuemnt as memory stream," & vbLf & "then write the memory stream in a file :" & vbLf & fileName, "Spire.PdfViewer Demo", MessageBoxButtons.OK, MessageBoxIcon.Information)
			End If
		End If
	End Sub

	Private Sub pdfDocumentViewer1_PdfLoaded(sender As Object, args As EventArgs)
		Me.comBoxPages.Items.Clear()
		Dim totalPage As Integer = Me.pdfDocumentViewer1.PageCount
		For i As Integer = 1 To totalPage
			Me.comBoxPages.Items.Add(i.ToString())
		Next

		Me.comBoxPages.SelectedIndex = 0
	End Sub
	Private Sub pdfDocumentViewer1_PageNumberChanged(sender As Object, args As EventArgs)
		If Me.comBoxPages.Items.Count <= 0 Then
			Return
		End If
		If Me.pdfDocumentViewer1.CurrentPageNumber <> Me.comBoxPages.SelectedIndex + 1 Then
			Me.comBoxPages.SelectedIndex = Me.pdfDocumentViewer1.CurrentPageNumber - 1
		End If
	End Sub
	Private Sub comBoxPages_SelectedIndexChanged(sender As Object, e As EventArgs)
	        Dim soucePage As Integer = Me.pdfDocumentViewer1.CurrentPageNumber
	        Dim targetPage As Integer = Me.comBoxPages.SelectedIndex + 1
	        If soucePage <> targetPage Then
			Me.pdfDocumentViewer1.GoToPage(targetPage)
	        End If
	End Sub

Check the Events of your buttons, comBoBox and pdfDocumentViewer.

Step 4: Debug the project

After debugging, you can preview the effect.

Besides, if you need to perform other tasks such as export PDF pages to images of different popular formats, read encrypted PDF files, display PDF pages in various ways and so on, you still can realize them by using Spire.PDFViewer.

Thursday, 31 May 2012 09:07

PDFViewer Quick Start for WPF

The sample demonstrates how to get started with Spire.PDFViewer for WPF.

 

Thursday, 31 May 2012 08:48

PDF Quick Start for WPF

The sample demonstrates how to get started with Spire.PDF for WPF.

 

Friday, 25 May 2012 07:26

Spire.XLS for WPF Quick Start

This article is designed to give you a detailed description about how to write a "HelloWorld" demo of Spire.XLS for WPF by Visual Studio. You can follow the below procedure step by step to finish this task. But first of all, please make sure that Spire.XLS for WPF and Visual Studio 2010 are correctly installed on system.

Step 1. Create a new project.

1. Create a new project by choosing WPF Application in Visual Studio and name the project "HelloWorld". If you want to create a C# project, select Visual C#, WPF Application, if you want to build a Visual Basic project, please choose Visual Basic, WPF Application. The detail process is:

Click File → NewProjectWPF ApplicationNameOK

2. Set the Target framework property of the HelloWorld project in Solution Explorer to be .NET Framework 4.The process is:

Click Solution Explorer-> HelloWorld (The project that you already built) -> Properties (right click HelloWorld)->Target framework->.NET Framework 4

3. Add a button in MainWindow. The default button name is "button1". You can set button1 Content property to be "Run" in its properties by right clicking it. Thus, it shows "Run" in the MainWindow. You can perform as below:

Click ViewToolboxButtonProperties (right click button1)Contentset the Content to be "Run"

Step 2. Add reference and project namespaces.

1. Add Spire.XLS. Wpf.dll as reference in Project. The Default location of Spire.Doc for WPF is “C:\Program Files\e-iceblue\Spire.XLS for WPF”. Details are:

Click ProjectAdd ReferenceBrowseChoose the folder contains Spire.XLS for WPFBinWPF 4.0Spire.XLS.Wpf.dll

2. Double click the "Run" button, you can see the following method has been added automatically:

[C#]
namespace HelloWorld
{
    /// 
    /// Interaction logic for MainWindow.xaml
    /// 
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
        }
    }
}
[VB.NET]
Namespace HelloWorld
	''' 
	''' 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

3. Add the below namespaces at the top of the method.

[C#]
using Spire.Xls;
[VB.NET]
Imports Spire.Xls

Step 3. Write "Hello, World!" in the method.

Add the following code to the method button1_click

[C#]
           //create a new excel workbook
            Workbook workbook = new Workbook();

            //edit the first worksheet of the workbook
            Worksheet sheet = workbook.Worksheets[0];
            sheet.Range["A1"].Text = "Hello, World!";

            //save the workbook
            workbook.SaveToFile(@"..\..\sample.xls", ExcelVersion.Version97to2003);

            //launch the workbook
            System.Diagnostics.Process.Start(@"..\..\sample.xls");
[VB.NET]
	  'create a new excel workbook
	   Dim workbook As New Workbook()

	  'edit the first worksheet of the workbook
	   Dim sheet As Worksheet = workbook.Worksheets(0)
	   sheet.Range("A1").Text = "Hello, World!"

	   'save the workbook
	    workbook.SaveToFile("..\..\sample.xls", ExcelVersion.Version97to2003)

	   'launch the workbook
	    System.Diagnostics.Process.Start("..\..\sample.xls")

Step 4. Debug the project

Right click the project HelloWorld in Solution Explorer  Debug  Start new instance  Click Run in MainWindow, an Excel Document will be created, edited and opened. The string "Hello, World!" is drawn in the first cell A1 of sheet 1.

Preview

This document aims at clearly introducing a simple “HelloWorld” demo about Spire.Doc for WPF by using Visual Studio. The below procedure will help you realize this task step by step. Before getting started, please make sure that Spire.Doc for WPF and Visual Studio are correctly installed on system.

Step 1. Create a new project.

1. Create a new project by choosing WPF Application in Visual Studio and name the project "HelloWorld". If you want to create a C# project, select Visual C#, WPF Application, if you want to build a Visual Basic project, please choose Visual Basic, WPF Application. The detail process is:

Click File → NewProjectWPF ApplicationNameOK

2. Set the Target framework property of the HelloWorld project in Solution Explorer to be .NET Framework 4.The process is:

Click Solution ExplorerHelloWorld (The project that you already built)Properties(right click HelloWorld)Target framework.NET Framework 4

3. Add a button in MainWindow. The default button name is "button1". You can set button1 Content property to be "Run" in its properties by right clicking it. Thus, it shows "Run" in the MainWindow. You can perform as below:

Click ViewToolboxButtonProperties (right click button1)Contentset the Content to be "Run"

Step 2. Add reference and project namespaces.

1. Add Spire.Doc. Wpf.dll as reference in Project. The Default location of Spire.Doc for WPF is “C:\Program Files\e-iceblue\Spire.Doc for WPF”. Details are:

Click ProjectAdd ReferenceBrowseChoose the folder contains Spire.Doc for WPFBinWPF 4.0Spire.Doc.Wpf.dll

2. Double click the "Run" button, you can see the following method has been added automatically:

[C#]
namespace HelloWorld
{
    /// 
    /// Interaction logic for MainWindow.xaml
    /// 
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

private void button1_Click(object sender, RoutedEventArgs e)
        {
        }
    }
}
[VB.NET]
Namespace HelloWorld
	''' 
	''' 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

3. Add the below namespaces at the top of the method.

[C#]
using Spire.Doc;
using Spire.Doc.Documents;
[VB.NET]
Imports Spire.Doc
Imports Spire.Doc.Documents

Step 3. Write "Hello, World!” in the method.

Add the following code to the method button1_click

[C#]
            //create a new document using spire.Doc
            Document document = new Document();

            //add one paragraph 
            Paragraph paragraph = document.AddSection().AddParagraph();
            paragraph.AppendText("Hello, World!");

            //save the document
            document.SaveToFile(@"..\..\sample.doc", FileFormat.Doc);

            //launch the document
            System.Diagnostics.Process.Start(@"..\..\sample.doc");
[VB.NET]
	  'create a new document using spire.Doc
	   Dim document As New Document()

	  'add one paragraph 
	   Dim paragraph As Paragraph = document.AddSection().AddParagraph()
	   paragraph.AppendText("Hello, World!")

	  'save the document
	   document.SaveToFile("..\..\sample.doc", FileFormat.Doc)

	   'launch the document
	   System.Diagnostics.Process.Start("..\..\sample.doc")

Step 4. Debug the project

Right click the project HelloWorld in Solution ExplorerDebug-> Start new instanceClick Run in MainWindow, a Word Document will be created, edited and opened. The string “Hello, World!” is drawn in the first line of page1.

Preview

Wednesday, 16 May 2012 09:14

Add Watermark in PDF in C#, VB.NET

There are two kinds of PDF watermarks: text watermark and image watermark. Text watermark is generally used in commercial field to show the background information of the PDF documents, while image watermark is really a good choice to beautify PDF files. This section will introduce solutions to add both of the two PDF watermarks via a .NET PDF component in C#, VB.NET.

Spire.PDF for .NET, with rich features to handle PDF files, enables you to add watermark in PDF with C#, VB.NET. Before introducing solutions of how to add two PDF watermarks, please see screenshot of image watermark as picture below:

Now, you can download Spire.PDF for .NET and view the solutions to add text watermark and image watermark.

Add Watermarks in PDF

In the solution, an image is necessary to be prepared. You are only required to load your image by the method Image FromFile(string filename) and then, set the PDF background image to be the image you just imported from system.

[C#]
Image img = Image.FromFile(@"..\flower.jpg");
            page.BackgroundImage = img;
[VB.NET]
Dim img As Image = Image.FromFile("..\flower.jpg")
           page.BackgroundImage = img

Compared with image watermark, text watermark is not so easy since it requires you to draw the text which you want to set as text watermark yourself. Besides, you need to set the text font, color, position and text format to fit the PDF page suitably. All the two tasks can be quickly realized by calling the method: DrawString(string s, PdfFontBase font, PdfBrush brush, float x, float y, PdfStringFormat format). Please see the key code below:

[C#]
  PdfTilingBrush brush
                = new PdfTilingBrush(new SizeF(page.Canvas.ClientSize.Width / 2, page.Canvas.ClientSize.Height / 3));
            brush.Graphics.SetTransparency(0.3f);
            brush.Graphics.Save();
            brush.Graphics.TranslateTransform(brush.Size.Width / 2, brush.Size.Height / 2);
            brush.Graphics.RotateTransform(-45);
            brush.Graphics.DrawString("Spire.Pdf Demo",
                new PdfFont(PdfFontFamily.Helvetica, 24), PdfBrushes.Violet, 0, 0,
                new PdfStringFormat(PdfTextAlignment.Center));
            brush.Graphics.Restore();
            brush.Graphics.SetTransparency(1);
            page.Canvas.DrawRectangle(brush, new RectangleF(new PointF(0, 0), page.Canvas.ClientSize));
[VB.NET]
Dim brush As New PdfTilingBrush(New SizeF(page.Canvas.ClientSize.Width / 2, page.Canvas.ClientSize.Height / 3))
brush.Graphics.SetTransparency(0.3F)
brush.Graphics.Save()
brush.Graphics.TranslateTransform(brush.Size.Width / 2, brush.Size.Height / 2)
brush.Graphics.RotateTransform(-45)
brush.Graphics.DrawString("Spire.Pdf Demo", New PdfFont(PdfFontFamily.Helvetica, 24), PdfBrushes.Violet, 0, 0, New PdfStringFormat(PdfTextAlignment.Center))
brush.Graphics.Restore()
brush.Graphics.SetTransparency(1)
page.Canvas.DrawRectangle(brush, New RectangleF(New PointF(0, 0), page.Canvas.ClientSize))

Spire.PDF is a professional third party library to manipulating PDF files with rich capabilities. As a stand-alone PDF component, it enables you to read, write, edit PDF files on .NET, Silverlight and WPF.

Wednesday, 16 May 2012 08:28

Create Pivot Table in Excel in C#, VB.NET

Pivot table is one kind of interactive table, which can be used to calculate data, such as get sum or count data. Also, users can change pivot table layout for analyzing data with different ways or reassign row/column label. Every time users change layout, data will be recalculated in pivot table. Also, pivot table can be updated if the source data is changed.

This program guide focuses on introducing how to create Pivot Table in Excel by using C#/VB.NET via Spire.XLS.

In this guide, there is an Excel file which includes a worksheet with data information. What we will do is to add a new worksheet and create pivot table in this worksheet. Data source of pivot table is from the original worksheet.

Step 1: Load Excel File

Declare a new Excel workbook and then load file by using workbook.LoadFromFile() method. Then, initialize worksheet and name the current worksheet. Because we need to create pivot table in another worksheet, so create a new worksheet and name it.

[C#]
Workbook workbook = new Workbook();
workbook.LoadFromFile(@"E:\work\Documents\PartSalesInfo.xlsx");
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "Data Source";
Worksheet sheet2 = workbook.CreateEmptySheet();
sheet2.Name = "Pivot Table";
[VB.NET]
Dim workbook As New Workbook()
workbook.LoadFromFile("E:\work\Documents\PartSalesInfo.xlsx")
Dim sheet As Worksheet = workbook.Worksheets(0)
sheet.Name = "Data Source"
Dim sheet2 As Worksheet = workbook.CreateEmptySheet()
sheet2.Name = "Pivot Table"

Step 2: Create Pivot Table

At first, add pivot table. Select data source range which is from the original worksheet. Create a PivotCache to save the data information. Next, create a pivot table in the new worksheet. Assign value for pivot table by using sheet2.PivotTables.Add() method. Three parameters passed to this method, name string, table location and pivot cache.

[C#]
CellRange dataRange = sheet.Range["A1:G17"];
PivotCache cache = workbook.PivotCaches.Add(dataRange);
PivotTable pt = sheet2.PivotTables.Add("Pivot Table", sheet.Range["A1"], cache);
[VB.NET]
Dim dataRange As CellRange = sheet.Range("A1:G17")
Dim cache As PivotCache = workbook.PivotCaches.Add(dataRange)
Dim pt As PivotTable = sheet2.PivotTables.Add("Pivot Table", sheet.Range("A1"), cache)

Secondly, define row labels. We can set some data information as row label to assign data information. Get PivotField of the first row label we will set and then set its AxisType as row. After that, set header name. Next, set the second row label as setting the first one but without header name.

[C#]
var r1 = pt.PivotFields["Vendor No"];
r1.Axis = AxisTypes.Row;
pt.Options.RowHeaderCaption = "Vendor No";

var r2 = pt.PivotFields["Description"];
r2.Axis = AxisTypes.Row;
[VB.NET]
Dim r1 = pt.PivotFields("Vendor No")
r1.Axis = AxisTypes.Row
pt.Options.RowHeaderCaption = "Vendor No"

Dim r2 = pt.PivotFields("Description")
r2.Axis = AxisTypes.Row

Thirdly, add new data fields and set format. Besides the original data information, we can add more fields to calculate data by using pt.DataFileds.Add() method. There are three parameters passed to this method, Pivot Field, name string and subtotal type. The fields we will add include SUM of OnHand, SUM of OnOrder and Average of ListPrice. Finally, set built-in style for table.

[C#]
pt.DataFields.Add(pt.PivotFields["OnHand"], "SUM of OnHand", SubtotalTypes.Sum);
pt.DataFields.Add(pt.PivotFields["OnOrder"], "SUM of OnOrder", SubtotalTypes.Sum);
pt.DataFields.Add(pt.PivotFields["ListPrice"], "Average of ListPrice", SubtotalTypes.Average);

pt.BuiltInStyle = PivotBuiltInStyles.PivotStyleMedium12;
[VB.NET]
pt.DataFields.Add(pt.PivotFields("OnHand"), "SUM of OnHand", SubtotalTypes.Sum)
pt.DataFields.Add(pt.PivotFields("OnOrder"), "SUM of OnOrder", SubtotalTypes.Sum)
pt.DataFields.Add(pt.PivotFields("ListPrice"), "Average of ListPrice", SubtotalTypes.Average)

pt.BuiltInStyle = PivotBuiltInStyles.PivotStyleMedium12

Step 3: Save and Launch

Save this Excel file which has been added pivot table by using workbook.SaveToFile() method. There are two parameters passed to this method, file name string and Excel version. In this example, Excel version is set as Version2010. Then, launch it for viewing.

[C#]
workbook.SaveToFile("PivotTable.xlsx", ExcelVersion.Version2010);
System.Diagnostics.Process.Start("PivotTable.xlsx");
[VB.NET]
workbook.SaveToFile("PivotTable.xlsx", ExcelVersion.Version2010)
System.Diagnostics.Process.Start("PivotTable.xlsx")

Effective Screeshot

Data Source:

Create Excel Pivot Table

Pivot Table:

Create Excel Pivot Table

Tuesday, 15 May 2012 02:07

Privacy Policy

This web site is maintained by E-iceblue Ltd. By accessing or using www.e-iceblue.com, you need to agree to terms of E-iceblue Online Privacy Policy, as outlined below. If you do not agree to these terms, please do not access or use this site.

Overview

E-iceblue has established this Onine Privacy Policy to help you understand how we intend to treat your Personal Information.

E-iceblue is committed to protecting your privacy. For accessing service from E-iceblue, we may ask for personal identification information (“Personal Information”), including your name (first and last), your e-mail address or some other contact information. The personal information can be provided by yourself or any other party. In general, you may visit our website without disclosing to us who you are and without revealing any Personal Information about yourself.

Also, you should be aware though, that if you choose to provide us with Personal Information, we may transfer such information, within E-iceblue or E-iceblue’s third party service providers, across borders and from your country or jurisdiction to other countries or jurisdictions around the world, subject to the limitations of this Privacy Policy.

E-iceblue Strives to comply with all applicable laws around the globe that are designed to protect your privacy. Although legal requirements may vary from country to country, E-iceblue intends to adhere to the principles set forth in this Online Privacy Policy.

Cookies and Other Tracking Technologies

When you visit www.e-iceblue.com, you may surf the site anonymously and access important information without revealing your identity. In order to analyze and improve our site, we use “cookies” to track your visit. A cookie is small amount of data that is transferred to your browser by a Web server and can only be read by the server that give it to you. “Cookies” cannot be executed as code or deliver viruses.

Most browsers are initially set to accept cookies. You can set your browser to notify you when you receive a cookie, therefore allowing you to decide whether or not to accept it. (For some Web pages that require an authorization, cookies are not optional. Users choosing not to accept cookies will not be able to access such pages.)

While E-iceblue uses cookies to track your visit to www.e-iceblue.com, and our Web servers automatically log the IP/Internet address of your computer. This information does not identify you personally and you remain anonymous unless you have otherwise provided e-iceblue with Personal Information.

Principles

The following principles we adopted to protect your privacy.

Choice

You may choose whether or not to provide Personal Information to E-iceblue. However, when you engage in certain activities on this site, such as ordering products, downloading software, or entering contests, E-iceblue may require that you provide certain information about yourself by filling out and submitting an online form. It is entirely optional for you to engage in these activities. If you elect to engage in these activities, E-iceblue may require that you provide certain personal information, such as your name, mailing address, e-mail address, and other personal identifying information.

Security

Wherever your Personal Information may be held by E-iceblue or a third party on E-iceblue’s behalf, reasonable and appropriate precautions, such as encryption, firewalls and like technologies, are and will be implemented to protect such Personal Information from loss, misuse or unauthorized access.

Access/Accuracy

To the extent that you do provide us with Personal Information, E-iceblue wishes to maintain it accurately and updated. Where we collect Personal Information from you, our goal is to provide a means of contacting E-iceblue should you need to access, update or correct that Information. If for any reason you desire to review such information, please contact us and we will make reasonable efforts to promptly provide you with such information. Further, if you notify us that such information is incorrect, or you wish to have such information removed, we will correct, amend, or delete your Personal Information as soon as practicable.

Third Party Services

In the interest of providing better service to its customers, E-iceblue is represented in the United States and in some foreign countries by authorized distributors and resellers who provide marketing, sales, and support services to E-iceblue customers. When you submit personal information to E-iceblue, you understand and agree that E-iceblue may allow E-iceblue’s authorized distributors and resellers access to your customer profile for the exclusive purpose of providing you with marketing, sales, and support services for E-iceblue products.

Your personal information will not be leased, sold, rented or otherwise made available to any other third party except to the extent necessary to comply with applicable laws, police investigations, or in legal proceedings where such information is relevant. Occasionally, E-iceblue allows access to database information to bonded mailing houses only for the purpose of allowing for the printing of mailing labels that are used for E-iceblue 's own direct mail and promotional purposes. In those instances, the third party is strictly bound by these terms.

Notwithstanding the foregoing, you hereby agree that E-iceblue may assign, sell, license, or otherwise transfer to a third party, your name, address, email address, member name and any other personal information in connection with an assignment, sale, joint venture, or other transfer or disposition of a material portion or essentially all of the assets or stock of E-iceblue or its affiliated entities.

Children's Privacy

www.e-iceblue.com is not designed nor structured to attract children. Accordingly, we do not intend to collect Personal Information from anyone we know to be under 13 years of age. If we are made aware that information is or has been submitted by or collected from a child under the age of thirteen, we will promptly delete this information.

Sensitive Information

We do not collect Sensitive Information such as medical, health, racial, ethnic, political, religious, philosophic, union membership or sexual orientation information. If we are made aware that we have received such information, we will promptly proceed to its deletion.

Notice

E-iceblue collects Personal Information on its Web site in order to record and support your participation in the activities you select. If you order a product, for example, the information is used to register your license and rights, if any, to ensure your eligibility to receive technical support, upgrade discounts, or other benefits that may be made available to registered users. If you enter a contest, information is collected to qualify the entry and contact you regarding the contest or prize awards. E-iceblue also uses information that you provide as part of our effort to keep you informed about the status of your subscription, product upgrades, special offers, and other E-iceblue products and services.

We will only collect Personal Information where it is relevant for the purposes for which we are collecting it. We will not process any Personal Information for any purposes that are incompatible with the purposes for which it has been collected or subsequently authorized by you.

Commitment

We, at E-iceblue, are committed to your right to privacy and we support current industry initiatives to preserve the integrity of individual privacy rights on the Internet. Protecting your privacy on-line is a rapidly evolving area, and E-iceblue's Web sites are continually evolving to meet these demands.

Your Consent

By using this Web site, you consent to the terms of our Online Privacy Policy and to E-iceblue's processing of Personal Information for the purposes outlined above. Should the Online Privacy Policy change, we will take reasonable steps to ensure that these changes are brought to your attention by posting all changes prominently on our Web site for a reasonable period of time.

Contact

If you have any comments or questions regarding our Online Privacy Policy, please contact us at comments@e-iceblue.com.

Tuesday, 15 May 2012 01:52

Renew Policy

Why Renew Subscription?

When you purchase a license from E-iceblue, you will get a full 1 year’s subscription software updates. We will send you an email to remind you if your subscription nears its subscription. However, without a subscription you can still use the product and get FREE support, but you are not allowed to get new features of hot fixes. If you have a problem that requires a hot fix but do not have a current subscription, you will have to renew before you can benefit from the fix.

When Should I Renew Subscription?

You can renew your subscription before its expiry date or after that. If your first time purchase is on September 12, the expiry date is on September 11 in the next year. We will send you an email to remind you around August 11.

What Does a Subscription Cost?

Renewing an existing subscription is cheaper than renewing an expired subscription. While your subscription is still running, adding a year to the subscription costs 60% of the current product price. To re-activate an expired subscription costs 75% of the current product price. Renewal adds twelve months to your subscription from the expiry date. However, if your expiry date is September 11, and you renew your license on October 10, then, the expiry data will be changed to October 9 in the next year.

How to Renew Subscription?

Log in to the purchase system with your account information. You can find the renewal discount coupon code in the purchase page. Use the coupon code to purchase the renewal. Leave a Note to offer us your registered license information including your email address, register name so that our technical support can send you renewal correctly.


If you bought the product from one of our resellers you can contact them when you need to renew your subscription. Our resellers can help you purchase a new subscription.

Contact Our Sales Team for other questions

Tuesday, 15 May 2012 01:34

License Upgrade

If you purchased the license of Spire.Doc Developer Subscription and a few days later you found you need Spire.Doc Developer OEM Subscription, you can ask to Upgrade Your License.

When Can I Upgrade License?

After you purchase our product and receive license, you can only upgrade your license during the first 3 months. After 3 months, you need purchase what you want. However, you can get 10% OFF discount as a return customer.

How Much I Should Pay?

When you upgrade license, you just need pay the price difference. For example, if you purchased Spire.Doc Pro Edition Developer Subscription ($799) on May 1, 2012 and you want to upgrade to Spire.Office Developer Subscription ($1899) on May 10, 2012, you just need pay $1100. And the register date will be May 10, 2012.

Can I Upgrade My Spire.PDF to Spire.Doc?

No, you can’t. You can convert Spire.PDF to Spire.Office. Or you can convert Spire.PDF Developer Subscription to Spire.PDF OEM Subscription, Spire.PDF Site Enterprise or Spire.PDF Site OEM.

How to Upgrade?

When you found you need upgrade your license, please send email to sales@e-iceblue.com. You need offer us the old license information (Product Name, License Registered Name, Purchasing Date, Purchasing email address and what product license you want to upgrade to). Then, we will generate upgrade coupon code for you.

If you need more help, please contact our sales team.