全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C# 添加、修改和删除PDF书签的实例代码

有时候我们在阅读PDF文档时会遇到这样一种情况:PDF文档页数比较多,但是又没有书签,所以我们不能根据书签快速了解文档所讲解的内容,也不能点击书签快速跳转到相应的位置,而只能一页一页的翻阅,非常苦恼。相信开发人员在开发和PDF有关的应用程序时,也会有这样的功能需求,因此在这篇文章中我就介绍一下如何使用编程的方式(C#)和Spire.PDF组件给PDF文档添加书签(包括添加书签到现有文档和添加子书签),以及修改和删除现有PDF文档中的指定书签。

Spire.PDF组件概述 

Spire.PDF是一个专业的PDF组件,用于在.NET应用程序中创建,编辑,处理和阅读PDF文档。支持丰富的PDF文档处理操作,如PDF文档合并/拆分、转换(如HTML转PDF,PDF转图片等)、打印(包括静默打印)、压缩、添加/修改/删除书签、添加注释、安全设置(包括数字签名)、创建与填充域、图片插入与提取、文本提取与高亮等。它不依赖Adobe Acrobat,因此运行环境无需安装Adobe Reader或其他类似组件。 该组件分为商业版和免费版(不是试用版)两种,一般个人使用或者操作的PDF文档不超过10页时,可以使用免费版。

关于它的安装,有很多种渠道,包括官网以及开发者最喜欢和常用的NuGet方式。在Visual Studio的 NuGet Package Manager Console中输入以下PowerShell命令回车,组件的dll就会自动地引用到项目中:

PM> Install-Package Spire.PDF

添加、修改和删除PDF书签的实现

一、添加书签

1.1 添加书签

在Spire.PDF中,每个PDF文档都有一个书签列表(PdfBookmarkCollection)。我们可以通过PdfDocument对象的Bookmarks属性来获取该列表,然后通过Add () 方法将书签添加到列表中。

//新建PDF文档

PdfDocument pdf = new PdfDocument();

//添加页面

PdfPageBase page = pdf.Pages.Add();

//添加书签
PdfBookmark bookmark = pdf.Bookmarks.Add("第一页");

//设置书签所指向的页面和位置,(0,0)表示页面的开始位置

bookmark.Destination = new PdfDestination(page);
bookmark.Destination.Location = new PointF(0, 0);

//设置书签的文本格式和颜色

bookmark.DisplayStyle = PdfTextStyle.Bold;
bookmark.Color = Color.Black;

//保存文档

pdf.SaveToFile("Bookmark2.pdf");

1.2 添加子书签

添加子书签和添加普通书签的方式基本一样,不同的是普通书签是直接添加到文档的书签列表里,而子书签则是添加到父书签的列表里。

//新建PDF文档

PdfDocument pdf = new PdfDocument();

//添加页面

PdfPageBase page = pdf.Pages.Add(); 

//添加书签

PdfBookmark bookmark = pdf.Bookmarks.Add("第一章 热传导");

//设置书签指向的页面和位置

bookmark.Destination = new PdfDestination(page);
bookmark.Destination.Location = new PointF(0, 0);
 
//设置书签的文本格式和颜色

bookmark.DisplayStyle = PdfTextStyle.Bold;
bookmark.Color = Color.SeaGreen;

//添加子书签

PdfBookmark childBookmark = bookmark.Insert(0, "1.1 热传导基本知识");

//设置子书签指向的页面和位置

childBookmark.Destination = new PdfDestination(page);
childBookmark.Destination.Location = new PointF(400, 300);

//设置子书签的文本格式和颜色

childBookmark.DisplayStyle = PdfTextStyle.Regular;
childBookmark.Color = Color.Black;

//保存文档

pdf.SaveToFile("ChildBookmark.pdf");

1.3 添加书签到现有文档

除了在新建的PDF文档里添加书签,我们还可以给现有的PDF文档添加书签。加载PDF文档的方法除LoadFromFile以外,还有LoadFromStream (从流加载),LoadFromHTML(从HTML加载)等,可根据自己的需求选择相应的加载方式。

//加载文档

PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("示例.pdf"); 

for (int i = 0; i < pdf.Pages.Count; i++)
{
  //添加书签

  PdfBookmark bookmark = pdf.Bookmarks.Add(string.Format("第{0}章", i+1));

  //设置书签指向的页面和位置

  bookmark.Destination = new PdfDestination(pdf.Pages[i]);
  bookmark.Destination.Location = new PointF(0, 0);

  //设置书签的文本格式和颜色

  bookmark.DisplayStyle = PdfTextStyle.Bold;
  bookmark.Color = Color.Black;
}

//保存文档

pdf.SaveToFile("Bookmark2.pdf");

2. 修改书签

Spire.PDF支持多种书签修改方式,例如修改现有书签的内容,插入新书签到现有书签列表,插入子书签到现有书签等。这里我选取修改书签内容和插入新书签到现有书签列表进行介绍。

2.1 修改现有书签内容

//加载文档

PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("Bookmark2.pdf");

//获取书签列表

PdfBookmarkCollection bookmarks = pdf.Bookmarks;

//获取第一个书签

PdfBookmark bookmark = bookmarks[0];

//修改书签指向的页面

bookmark.Destination = new PdfDestination(document.Pages[1]); 

//修改书签的文本格式和颜色

bookmark.DisplayStyle = PdfTextStyle.Bold;
bookmark.Color = Color.Green;

//修改书签的title

bookmark.Title = "修改";

//保存文档

pdf.SaveToFile("ModifyBookmark.pdf");

2.2 插入新书签到现有书签列表

//加载文档

 

PdfDocument pdf = new PdfDocument();

pdf.LoadFromFile("Bookmark2.pdf");

 

//插入新书签到指定位置(此处插入的是第三个书签的位置)

 

PdfBookmark bookmark = pdf.Bookmarks.Insert(2, "新增第三章");

 

//设置书签所指向的页面和位置

 

bookmark.Destination = new PdfDestination(document.Pages[1]);

bookmark.Destination.Location = new PointF(0, 300);

 

//保存文档

 

pdf.SaveToFile("InsertBookmark.pdf"); 


3. 删除书签

删除书签时,可以使用书签的序号,也可以使用书签的名称。这里我使用的是序号的方式。

//加载文档

PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("Bookmark2.pdf");

//获取书签列表

PdfBookmarkCollection bookmarks = document.Bookmarks;

//删除第一个书签

bookmarks.RemoveAt(0);

//保存文档

pdf.SaveToFile("DeleteBookmark.pdf");

以上博主只总结了部分操作PDF书签的功能,如果需要详细了解其他的功能,请查阅:http://e-iceblue.cn/Introduce/Spire-PDF-NET.html.希望对大家的学习有所帮助,也希望大家多多支持。


# C#  # pdf添加书签  # pdf修改书签  # 删除PDF书签  # C#打印PDF文档的10种方法(小结)  # C#实现合并及拆分PDF文件的方法  # C#合并多种格式文件为PDF的方法  # C# 在PDF文档中创建表格的实现方法  # C#添加、获取、删除PDF附件实例代码  # 文档  # 加载  # 的是  # 可以使用  # 第一个  # 试用版  # 应用程序  # 自己的  # 是一个  # 我就  # 就会  # 都有  # 运行环境  # 会有  # 还可以  # 在这  # 则是  # 两种  # 其他的  # 我们可以 


相关文章: 如何在建站宝盒中设置产品搜索功能?  深圳网站制作培训,深圳哪些招聘网站比较好?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  微信h5制作网站有哪些,免费微信H5页面制作工具?  如何快速生成橙子建站落地页链接?  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  教学网站制作软件,学习*后期制作的网站有哪些?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  ,柠檬视频怎样兑换vip?  网站制作报价单模板图片,小松挖机官方网站报价?  网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?  如何高效完成自助建站业务培训?  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  C#如何使用XPathNavigator高效查询XML  Bpmn 2.0的XML文件怎么画流程图  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  设计网站制作公司有哪些,制作网页教程?  潍坊网站制作公司有哪些,潍坊哪家招聘网站好?  如何将凡科建站内容保存为本地文件?  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  Python如何创建带属性的XML节点  如何快速打造个性化非模板自助建站?  如何在七牛云存储上搭建网站并设置自定义域名?  建站之星展会模板:智能建站与自助搭建高效解决方案  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  如何彻底卸载建站之星软件?  宝塔建站教程:一键部署配置流程与SEO优化实战指南  如何通过VPS建站实现广告与增值服务盈利?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  建站之星伪静态规则如何设置?  建站之星安装提示数据库无法连接如何解决?  Swift开发中switch语句值绑定模式  如何在景安服务器上快速搭建个人网站?  实例解析angularjs的filter过滤器  如何用景安虚拟主机手机版绑定域名建站?  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  如何在IIS7上新建站点并设置安全权限?  ,怎么在广州志愿者网站注册?  建站之星安装模板失败:服务器环境不兼容?  XML的“混合内容”是什么 怎么用DTD或XSD定义  网站制作公司排行榜,抖音怎样做个人官方网站  如何用AWS免费套餐快速搭建高效网站?  盘锦网站制作公司,盘锦大洼有多少5G网站?  建站主机选择指南:服务器配置与SEO优化实战技巧  北京网站制作网页,网站升级改版需要多久?  上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?  ,有什么在线背英语单词效率比较高的网站?  如何在万网自助建站中设置域名及备案?  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。