Important alert: (current site time 7/15/2013 4:12:09 AM EDT)
 

article

Insert PDF Bookmarks While Converting Excel Spreadsheet to PDF File

Email
Submitted on: 7/4/2013 9:12:14 PM
By: aspose_seo 
Level: Intermediate
User Rating: Unrated
Compatibility: C#, VB.NET
Views: 505
 
     This technical tip shows how to insert PDF Bookmarks while converting a spreadsheet to PDF file.  Aspose.Cells allows you to add bookmarks for your requirement at runtime.

 
 
Terms of Agreement:   
By using this article, you agree to the following terms...   
  1. You may use this article in your own programs (and may compile it into a program and distribute it in compiled format for languages that allow it) freely and with no charge.
  2. You MAY NOT redistribute this article (for example to a web site) without written permission from the original author. Failure to do so is a violation of copyright laws.   
  3. You may link to this article from another website, but ONLY if it is not wrapped in a frame. 
  4. You will abide by any additional copyright restrictions which the author may have placed in the article or article's description.
				

This technical tip shows how to insert PDF Bookmarks while converting a spreadsheet to PDF file.   Aspose.Cells allows you to add bookmarks for your requirement at runtime. PDF bookmarks can drasically improve the navigability of longer PDF documents. When adding bookmark links to other parts of a PDF document, you can have precise control over the exact view you want, you're not limited to just linking to a page or so. You set up the precise view by positioning the page as you would like it to be viewed, and then you create the bookmark s. In this document, we have provided the simplest lines of code using Aspose.Cells API to perform the task for you. Please see the following sample code to find how you can add PDF bookmarks. We will geneate a simple workbook, specify PDF bookmarks with their destination locations and finally generate the pdf file.

Please take a look over the following code snippet for this approach.

[C#]

//Instantiate a new workbook
Workbook workbook = new Workbook();
//Get the cells in the first(default) worksheet
Cells cells = workbook.Worksheets[0].Cells;
//Get the A1 cell
Aspose.Cells.Cell p = cells["A1"];
//Enter a value
p.PutValue("Preface");
//Get the A10 cell
Aspose.Cells.Cell A = cells["A10"];
//Enter a value.
A.PutValue("page1");
//Get the H15 cell
Aspose.Cells.Cell D = cells["H15"];
//Enter a value
D.PutValue("page1(H15)");
//Add a new worksheet to the workbook
workbook.Worksheets.Add();
//Get the cells in the second sheet
cells = workbook.Worksheets[1].Cells;
//Get the B10 cell in the second sheet
Aspose.Cells.Cell B = cells["B10"];
//Enter a value
B.PutValue("page2");
//Add a new worksheet to the workbook
workbook.Worksheets.Add();
//Get the cells in the third sheet
cells = workbook.Worksheets[2].Cells;
//Get the C10 cell in the third sheet
Aspose.Cells.Cell C = cells["C10"];
//Enter a value
C.PutValue("page3");

//Create a main PDF Bookmark entry object
Aspose.Cells.Rendering.PdfBookmarkEntry pbeRoot = new Aspose.Cells.Rendering.PdfBookmarkEntry();
//Specify its text
pbeRoot.Text = "Sections";
//Set the destination cell/location
pbeRoot.Destination = p;

//Set its sub entry array list
pbeRoot.SubEntry = new ArrayList();

//Create a sub PDF Bookmark entry object
Aspose.Cells.Rendering.PdfBookmarkEntry subPbe1 = new Aspose.Cells.Rendering.PdfBookmarkEntry();
//Specify its text
subPbe1.Text = "Section 1";
//Set its destination cell
subPbe1.Destination = A;
//Define/Create a sub Bookmark entry object of "Section A"
Aspose.Cells.Rendering.PdfBookmarkEntry ssubPbe = new Aspose.Cells.Rendering.PdfBookmarkEntry();
//Specify its text
ssubPbe.Text = "Section 1.1";
//Set its destination
ssubPbe.Destination = D;
//Create/Set its sub entry array list object
subPbe1.SubEntry = new ArrayList();
//Add the object to "Section 1"
subPbe1.SubEntry.Add(ssubPbe);
//Add the object to the main PDF root object
pbeRoot.SubEntry.Add(subPbe1);

//Create a sub PDF Bookmark entry object
Aspose.Cells.Rendering.PdfBookmarkEntry subPbe2 = new Aspose.Cells.Rendering.PdfBookmarkEntry();
//Specify its text
subPbe2.Text = "Section 2";
//Set its destination
subPbe2.Destination = B;
//Add the object to the main PDF root object
pbeRoot.SubEntry.Add(subPbe2);

//Create a sub PDF Bookmark entry object
Aspose.Cells.Rendering.PdfBookmarkEntry subPbe3 = new Aspose.Cells.Rendering.PdfBookmarkEntry();
//Specify its text
subPbe3.Text = "Section 3";
//Set its destination
subPbe3.Destination = C;
//Add the object to the main PDF root object
pbeRoot.SubEntry.Add(subPbe3);

//Set the PDF Bookmark root object
workbook.SaveOptions.PdfBookmark = pbeRoot;

//Save the pdf file
workbook.Save("f:\\test\\PDFBookmarks_test.pdf");

[VB.NET]

'Instantiate a new workbook
Dim workbook As New Workbook()
'Get the cells in the first(default) worksheet
Dim cells As Cells = workbook.Worksheets(0).Cells
'Get the A1 cell
Dim p As Aspose.Cells.Cell = cells("A1")
'Enter a value
p.PutValue("Preface")
'Get the A10 cell
Dim A As Aspose.Cells.Cell = cells("A10")
'Enter a value.
A.PutValue("page1")
'Get the H15 cell
Dim D As Aspose.Cells.Cell = cells("H15")
'Enter a value
D.PutValue("page1(H15)")
'Add a new worksheet to the workbook
workbook.Worksheets.Add()
'Get the cells in the second sheet
cells = workbook.Worksheets(1).Cells
'Get the B10 cell in the second sheet
Dim B As Aspose.Cells.Cell = cells("B10")
'Enter a value
B.PutValue("page2")
'Add a new worksheet to the workbook
workbook.Worksheets.Add()
'Get the cells in the third sheet
cells = workbook.Worksheets(2).Cells
'Get the C10 cell in the third sheet
Dim C As Aspose.Cells.Cell = cells("C10")
'Enter a value
C.PutValue("page3")

'Create a main PDF Bookmark entry object
Dim pbeRoot As New Aspose.Cells.Rendering.PdfBookmarkEntry()
'Specify its text
pbeRoot.Text = "Sections"
'Set the destination cell/location
pbeRoot.Destination = p

'Set its sub entry array list
pbeRoot.SubEntry = New ArrayList()

'Create a sub PDF Bookmark entry object
Dim subPbe1 As New Aspose.Cells.Rendering.PdfBookmarkEntry()
'Specify its text
subPbe1.Text = "Section 1"
'Set its destination cell
subPbe1.Destination = A
'Define/Create a sub Bookmark entry object of "Section A"
Dim ssubPbe As New Aspose.Cells.Rendering.PdfBookmarkEntry()
'Specify its text
ssubPbe.Text = "Section 1.1"
'Set its destination
ssubPbe.Destination = D
'Create/Set its sub entry array list object
subPbe1.SubEntry = New ArrayList()
'Add the object to "Section 1"
subPbe1.SubEntry.Add(ssubPbe)
'Add the object to the main PDF root object
pbeRoot.SubEntry.Add(subPbe1)

'Create a sub PDF Bookmark entry object
Dim subPbe2 As New Aspose.Cells.Rendering.PdfBookmarkEntry()
'Specify its text
subPbe2.Text = "Section 2"
'Set its destination
subPbe2.Destination = B
'Add the object to the main PDF root object
pbeRoot.SubEntry.Add(subPbe2)

'Create a sub PDF Bookmark entry object
Dim subPbe3 As New Aspose.Cells.Rendering.PdfBookmarkEntry()
'Specify its text
subPbe3.Text = "Section 3"
'Set its destination
subPbe3.Destination = C
'Add the object to the main PDF root object
pbeRoot.SubEntry.Add(subPbe3)

'Set the PDF Bookmark root object
workbook.SaveOptions.PdfBookmark = pbeRoot

'Save the pdf file

workbook.Save("f:\test\PDFBookmarks_test.pdf")

More about Aspose Components


Other 16 submission(s) by this author

 


Report Bad Submission
Use this form to tell us if this entry should be deleted (i.e contains no code, is a virus, etc.).
This submission should be removed because:

Your Vote

What do you think of this article (in the Intermediate category)?
(The article with your highest vote will win this month's coding contest!)
Excellent  Good  Average  Below Average  Poor (See voting log ...)
 

Other User Comments


 There are no comments on this submission.
 

Add Your Feedback
Your feedback will be posted below and an email sent to the author. Please remember that the author was kind enough to share this with you, so any criticisms must be stated politely, or they will be deleted. (For feedback not related to this particular article, please click here instead.)
 

To post feedback, first please login.