C# 读取PDF多级书签
在PDF中,书签作为一种导航的有效工具,能帮助我们快速地定位到文档中的指定段落。同时,书签也能让人对文档结构一目了然,在某种程度上也可作为目录使用。对于C#操作PDF中的书签,在上一篇文章中介绍了具体的如何添加书签、修改已有书签以及删除书签的操作,在本篇文章中,将介绍C#如何读取PDF中的多级书签。
工具
下载安装该类库后,注意在编辑代码时,在程序中添加引用Spire.Pdf.dll(如下图),dll文件可在安装路径下的Bin文件夹中获取。

示例代码(供参考)
源文档:

步骤1 :加载文档
PdfDocument doc = new PdfDocument();
doc.LoadFromFile("test.pdf");
步骤2 :获取文档中的书签(这里需要自定义方法来获取文档中的所有书签内容)
//获取文档的书签
PdfBookmarkCollection bookmarks = doc.Bookmarks;
//声明一个可变字符串
StringBuilder stringbuilder = new StringBuilder();
//获取父书签和子书签
GetBookmarkTitle(bookmarks, stringbuilder);
自定义方法:
//自定义方法获取书签
static void GetBookmarkTitle(PdfBookmarkCollection bookmarks, StringBuilder stringbuilder)
{
//遍历书签
if (bookmarks.Count > )
{
foreach (PdfBookmark parentBookmark in bookmarks)
{
stringbuilder.AppendLine(parentBookmark.Title);
//获取书签
GetBookmarkTitle(parentBookmark, stringbuilder);
}
}
}
步骤 3 :将书签写入到.txt文档
String fileName = "output.txt";
File.WriteAllText(fileName, stringbuilder.ToString());
完成代码后,调试程序,生成文档。下图是读取结果:

全部代码:
using Spire.Pdf;
using Spire.Pdf.Bookmarks;
using System;
using System.IO;
using System.Text; namespace ReadBookmark_PDF
{
class Program
{
static void Main(string[] args)
{
//实例化PdfDocument类的对象,并加载含有多级书签的PDF文件
PdfDocument doc = new PdfDocument();
doc.LoadFromFile("test.pdf"); //获取文档的书签
PdfBookmarkCollection bookmarks = doc.Bookmarks;
//声明一个可变字符串
StringBuilder stringbuilder = new StringBuilder();
//获取父书签和子书签
GetBookmarkTitle(bookmarks, stringbuilder); //声明txt文件,并将获得的多级书签写入到文件.txt
String fileName = "output.txt";
File.WriteAllText(fileName, stringbuilder.ToString()); } //自定义方法获取书签
static void GetBookmarkTitle(PdfBookmarkCollection bookmarks, StringBuilder stringbuilder)
{
//遍历书签
if (bookmarks.Count > )
{
foreach (PdfBookmark parentBookmark in bookmarks)
{
stringbuilder.AppendLine(parentBookmark.Title);
//获取书签
GetBookmarkTitle(parentBookmark, stringbuilder);
}
}
}
}
}
本文完
转载请注明出处。
C# 读取PDF多级书签的更多相关文章
- SQL 横转竖 、竖专横 (转载) 使用Dapper.Contrib 开发.net core程序,兼容多种数据库 C# 读取PDF多级书签 Json.net日期格式化设置 ASPNET 下载共享文件 ASPNET 文件批量下载 递归,循环,尾递归 利用IDisposable接口构建包含非托管资源对象 《.NET 进阶指南》读书笔记2------定义不可改变类型
SQL 横转竖 .竖专横 (转载) 普通行列转换 问题:假设有张学生成绩表(tb)如下: 姓名 课程 分数 张三 语文 74 张三 数学 83 张三 物理 93 李四 语文 74 李四 数学 84 ...
- 【Win10 开发】读取PDF文档
关于用来读取PDF文档的内容的API,其实在Win8.1的时候就有,不过没关系,既咱们讨论的是10的UAP,连同8.1的内容也包括进去,所以老周无数次强调:把以前的内容学好了,就可以在不学习任何新知识 ...
- .net 后台读取pdf的值
在网上找了内容 下载了这个插件 引用在了项目中 然后找到pdf中的位置 进行读取 string pdfPath = Server.MapPath("~/ViewPatPdf.pdf" ...
- [转].NET下读取PDF文本
本文转自:http://blog.csdn.net/wangqiuyun/article/details/8548779 在.NET下读取PDF文本用到的类库主要有两个:PDFBox和iTextSha ...
- [置顶] 读取pdf并且在web页面中显示
读取pdf并且在web页面中显示 if (System.IO.File.Exists(f)) { Response.ContentType = "applicationpdf"; ...
- 读取pdf文件 .选择了itextsharp 库
此库还是比较成熟.看博客园很多文章都介绍了此库 用法 如果项目用到读取pdf. 我这只是提供个思路.或者提供个方法.用itextsharp 能方便实现 StringBuilder text = ne ...
- Python读取PDF内容
1,引言 晚上翻看<Python网络数据采集>这本书,看到读取PDF内容的代码,想起来前几天集搜客刚刚发布了一个抓取网页pdf内容的抓取规则,这个规则能够把pdf内容当成html来做网页抓 ...
- 读取pdf内容分页和全部
//读取pdf 全部内容public static String topdffile(String pdffile){ StringBuffer result = new StringBuffer() ...
- 深入学习python解析并读取PDF文件内容的方法
这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...
随机推荐
- iPhone6 AirDrop找不到我的mac解决方法!注销mac和iPhone的icloud账号
注销mac和iPhone的icloud账号,icloud 会自动同步个人热点,个人热点开启状态,mac 和 iPhone 无法看到对方!
- Java实现大批量数据导入导出(100W以上) -(一)导入
最近业务方有一个需求,需要一次导入超过100万数据到系统数据库.可能大家首先会想,这么大的数据,干嘛通过程序去实现导入,为什么不直接通过SQL导入到数据库. 大数据量报表导出请参考:Java实现大批量 ...
- Nginx高并发优化方案
原网址: https://blog.csdn.net/HoeWang/article/details/81221463 一.一般来说nginx 配置文件中对优化比较有作用的为以下几项: 1. work ...
- 我眼中的 Nginx(四):是什么让你的 Nginx 服务退出这么慢?
张超:又拍云系统开发高级工程师,负责又拍云 CDN 平台相关组件的更新及维护.Github ID: tokers,活跃于 OpenResty 社区和 Nginx 邮件列表等开源社区,专注于服务端技术的 ...
- String求求你别秀了
小鲁班今年计算机专业大四了,在学校可学了不少软件开发的东西,也自学了一些JAVA的后台框架,踌躇满志,一心想着找个好单位实习.当投递了无数份简历后,终于收到了一个公司发来的面试通知,小鲁班欣喜若狂. ...
- com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的区别
com.mysql.jdbc.Driver 是 mysql-connector-java 5中的,com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6中的 ...
- vue3+typescript引入外部文件
vue3+typescript中引入外部文件有几种方法 (eg:引入echarts) 第一种方法: 1 indext.html中用script引入 <div id="app" ...
- win10 DVWA下载安装配置(新手学渗透)
电脑重装系统了,需要重新装一下渗透测试的学习环境DVWA,借此机会就跟大家讲一下DVWA的安装过程,因为不同的电脑配置.环境不同,在我的电脑上按照我这个安装教程是一次性就安装好了的.如果安装的时候遇到 ...
- Cesium 海拔 经纬度 展示
通过参考http://gishome.net.cn/cesium/cesium-coordinates/,整理修改后 <!DOCTYPE html><html lang=" ...
- 外呼系统APP外呼软件手机电销软件拨号销售软件功能设计
外呼系统APP外呼软件 1 系统概述 该软件系统设计功能主要为贷款.投资.资产管理等金融中介公司提供方便快捷的线上管理各类资源的一款应用软件工具. 可根据不同职位的账号登录APP来管理电话营销.客户签 ...