Excel管理控件Aspose.Cells开发者指南(十四):将Excel转换为PDF时插入PDF书签

翻译|使用教程|编辑:李显亮|2019-11-18 09:51:12.950|阅读 59 次

概述:Aspose.Cells允许您即时添加书签。PDF书签可以大大改善长文档的可浏览性。将书签链接添加到PDF文档时,可以精确控制所需的确切视图,而不仅限于链接到页面。本文将为大家介绍如何将Excel转换为PDF是插入PDF书签以及带有目的地名称的PDF书签。

相关链接:

Aspose.Cells for .NET是Excel电子表格编程API,可加快电子表格管理和处理任务,支持构建具有生成,修改,转换,呈现和打印电子表格功能的跨平台应用程序。

在接下来的系列教程中,将为开发者带来Aspose.Cells for .NET的一系列使用教程,例如关于加载保存转换、字体、渲染、绘图、智能标记等等。本文将为大家介绍如何将Excel转换为PDF是插入PDF书签以及带有目的地名称的PDF书签。

下载最新版Aspose.Cells for .NET

*正版优惠进行时,满额送豪礼,想要购买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管理控件Aspose.Cells开发者指南:将Excel转换为PDF是插入PDF书签

//加载源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有任何需求和疑难,记得扫描下方二维码告诉我们哦~

q4HAjUm_extraLarge.png





标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果

登录 慧都网发表评论


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关厂商
相关产品
Aspose.Cells for .NET

专业的电子表格控件,无需MS Excel也可满足一切Excel表格功能。

在线
客服
在线
QQ
电话
咨询
400-700-1020
购物车 反馈 返回
顶部
在线客服系统
live chat