Excel管理控件Aspose.Cells开发者指南(十四):将Excel转换为PDF时插入PDF书签
Aspose.Cells for .NET是Excel电子表格编程API,可加快电子表格管理和处理任务,支持构建具有生成,修改,转换,呈现和打印电子表格功能的跨平台应用程序。
在接下来的系列教程中,将为开发者带来Aspose.Cells for .NET的一系列使用教程,例如关于加载保存转换、字体、渲染、绘图、智能标记等等。本文将为大家介绍如何将Excel转换为PDF是插入PDF书签以及带有目的地名称的PDF书签。
*正版优惠进行时,满额送豪礼,想要购买Aspose正版授权的朋友可以哦~
第三章:渲染
▲第一节:添加PDF书签
Aspose.Cells允许您即时添加书签。PDF书签可以大大改善长文档的可浏览性。将书签链接添加到PDF文档时,可以精确控制所需的确切视图,而不仅限于链接到页面。同时可以通过定位目标页面来设置精确视图,然后创建书签。
请查看以下示例代码,以了解如何添加PDF书签。该代码生成一个简单的工作簿,指定带有目标位置的PDF书签,并生成PDF文件。
// 文档目录的路径。 string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); //创建目录(如果尚不存在)。 bool IsExists = System.IO.Directory.Exists(dataDir); if (!IsExists) System.IO.Directory.CreateDirectory(dataDir); //实例化一个新的工作簿 Workbook workbook = new Workbook(); //获取第一个(默认)工作表中的单元格 Cells cells = workbook.Worksheets[0].Cells; //获取A1单元格 Aspose.Cells.Cell p = cells["A1"]; //输入一个值 p.PutValue("Preface"); //获取A10单元格 Aspose.Cells.Cell A = cells["A10"]; //输入一个值。 A.PutValue("page1"); //获取H15单元格 Aspose.Cells.Cell D = cells["H15"]; //输入一个值 D.PutValue("page1(H15)"); //将新工作表添加到工作簿 workbook.Worksheets.Add(); //获取第二张表中的单元格 cells = workbook.Worksheets[1].Cells; //在第二张工作表中获取B10单元格 Aspose.Cells.Cell B = cells["B10"]; //输入一个值 B.PutValue("page2"); //将新工作表添加到工作簿 workbook.Worksheets.Add(); //获取第三张表格中的单元格 cells = workbook.Worksheets[2].Cells; //在第三张表格中获取C10单元格 Aspose.Cells.Cell C = cells["C10"]; //输入一个值 C.PutValue("page3"); //创建一个主要的PDF书签输入对象 Aspose.Cells.Rendering.PdfBookmarkEntry pbeRoot = new Aspose.Cells.Rendering.PdfBookmarkEntry(); // 指定其文字 pbeRoot.Text = "Sections"; //设置目标单元格/位置 pbeRoot.Destination = p; //设置其子条目数组列表 pbeRoot.SubEntry = new ArrayList(); //创建子PDF书签条目对象 Aspose.Cells.Rendering.PdfBookmarkEntry subPbe1 = new Aspose.Cells.Rendering.PdfBookmarkEntry(); //指定其文字 subPbe1.Text = "Section 1"; //设置其目标单元格 subPbe1.Destination = A; // 定义/创建“ A节”的子书签条目对象 Aspose.Cells.Rendering.PdfBookmarkEntry ssubPbe = new Aspose.Cells.Rendering.PdfBookmarkEntry(); //指定其文字 ssubPbe.Text = "Section 1.1"; //设置目的地 ssubPbe.Destination = D; //创建/设置其子条目数组列表对象 subPbe1.SubEntry = new ArrayList(); //将对象添加到“第1节” subPbe1.SubEntry.Add(ssubPbe); // 将对象添加到主PDF根对象 pbeRoot.SubEntry.Add(subPbe1); //创建子PDF书签条目对象 Aspose.Cells.Rendering.PdfBookmarkEntry subPbe2 = new Aspose.Cells.Rendering.PdfBookmarkEntry(); //指定其文字 subPbe2.Text = "Section 2"; //设置目的地 subPbe2.Destination = B; //将对象添加到主PDF根对象 pbeRoot.SubEntry.Add(subPbe2); // 创建子PDF书签条目对象 Aspose.Cells.Rendering.PdfBookmarkEntry subPbe3 = new Aspose.Cells.Rendering.PdfBookmarkEntry(); //指定其文字 subPbe3.Text = "Section 3"; //设置目的地 subPbe3.Destination = C; //将对象添加到主PDF根对象 pbeRoot.SubEntry.Add(subPbe3); //创建一个PdfSaveOptions实例 Aspose.Cells.PdfSaveOptions pdfSaveOptions = new Aspose.Cells.PdfSaveOptions(); //设置PDF书签根对象 pdfSaveOptions.Bookmark = pbeRoot; dataDir = dataDir+ "PDFBookmarks_test.out.pdf"; //保存pdf文件 workbook.Save(dataDir, pdfSaveOptions);
还想要更多吗?您可以点击阅读【2019 · Aspose最新资源整合】,查找需要的教程资源。如果您有任何疑问或需求,请随时加入Aspose技术交流群(642018183),我们很高兴为您提供查询和咨询。
▲第二节:添加带有终点名称的PDF书签
命名目的地是PDF中不依赖于PDF页面的特殊种类的书签或链接。这意味着,如果添加页面或从PDF中删除页面,书签可能会变得无效,但命名的目的地将保持不变。要创建命名目的地,请设置 PdfBookmarkEntry.DestinationName属性。
请参阅以下示例代码,其源Excel文件和其输出PDF文件。屏幕截图显示了输出PDF内的书签和命名的目的地。该屏幕快照还描述了如何查看命名目的地以及您需要Acrobat Reader Professional版本。
//加载源Excel文件 Workbook wb = new Workbook(sourceDir + "samplePdfBookmarkEntry_DestinationName.xlsx"); //访问第一个工作表 Worksheet ws = wb.Worksheets[0]; //访问单元格C5 Cell cell = ws.Cells["C5"]; //为此单元格创建书签和目标 PdfBookmarkEntry bookmarkEntry = new PdfBookmarkEntry(); bookmarkEntry.Text = "Text"; bookmarkEntry.Destination = cell; bookmarkEntry.DestinationName = "AsposeCells--" + cell.Name; //存取单元格G56 cell = ws.Cells["G56"]; //为此单元格创建子书签和目标 PdfBookmarkEntry subbookmarkEntry1 = new PdfBookmarkEntry(); subbookmarkEntry1.Text = "Text1"; subbookmarkEntry1.Destination = cell; subbookmarkEntry1.DestinationName = "AsposeCells--" + cell.Name; //访问单元格L4 cell = ws.Cells["L4"]; //为此单元格创建子书签和目标 PdfBookmarkEntry subbookmarkEntry2 = new PdfBookmarkEntry(); subbookmarkEntry2.Text = "Text2"; subbookmarkEntry2.Destination = cell; subbookmarkEntry2.DestinationName = "AsposeCells--" + cell.Name; //在列表中添加子书签 ArrayList list = new ArrayList(); list.Add(subbookmarkEntry1); list.Add(subbookmarkEntry2); //将子书签列表分配给书签子条目 bookmarkEntry.SubEntry = list; //创建PdfSaveOptions并为其分配书签 PdfSaveOptions opts = new PdfSaveOptions(); opts.Bookmark = bookmarkEntry; //使用给定的pdf保存选项以Pdf格式保存工作簿 wb.Save(outputDir + "outputPdfBookmarkEntry_DestinationName.pdf", opts);
如果您对Aspose有任何需求和疑难,记得扫描下方二维码告诉我们哦~