C# 读取PDF书签内容

PDF书签常见于一些PDF格式的教程或文献等资料中,通过它,读者可以快速的知道每个章节讲述的内容,以此增加文档的可读性和结构性。本文将介绍如何使用C#快速读取一个PDF文档中的所有书签内容。

所需控件:

Spire.PDF for .NET

Spire.PDF for .NET是一个专业的PDF组件,能够在.NET应用程序中独立地创建、编辑、转换、操作和打印PDF文件,无需安装Adobe Acrobat。

PDF文档如下图:


在使用以下代码前,需在Visual studio中创建C#应用程序(vb.net, asp.net也可),并引用Spire.Pdf.dll文件。

具体步骤:

步骤1:创建PdfDocument实例并加载PDF文档。

PdfDocument doc = new PdfDocument();
doc.LoadFromFile("JavaScript高级程序设计.pdf");

步骤2:获取文档的书签集合。

PdfBookmarkCollection bookmarks = doc.Bookmarks;

步骤3:调用GetBookmarkTitle方法,获取文档的父书签和子书签内容。

StringBuilder stringbuilder = new StringBuilder();

//获取父书签和子书签        
GetBookmarkTitle(bookmarks, stringbuilder);

GetBookmarkTitle方法如下:

static voidGetBookmarkTitle(PdfBookmarkCollectionbookmarks, StringBuilder stringbuilder)
{
    if (bookmarks.Count> 0)
    {
       foreach (PdfBookmark parentBookmark in bookmarks)
        {
            stringbuilder.AppendLine(parentBookmark.Title);
            GetBookmarkTitle(parentBookmark,stringbuilder);
        }
    }
}

步骤4:将获取的父书签和子书签内容写入到文本文档。

File.WriteAllText("书签.txt",stringbuilder.ToString());

获取结果:


完整代码:

using System.IO;
using System.Text;
using Spire.Pdf;
using Spire.Pdf.Bookmarks; 

namespace Get_PDF_Bookmarks
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建PdfDocument对象
            PdfDocument doc = new PdfDocument();
            doc.LoadFromFile("JavaScript高级程序设计.pdf");

            //获取文档的书签集合
            PdfBookmarkCollection bookmarks =doc.Bookmarks;     

            StringBuilderstringbuilder = new StringBuilder();

            //调用GetBookmarkTitle方法获取父书签和子书签内容         
            GetBookmarkTitle(bookmarks, stringbuilder);

            //将获取的父书签和子书签内容写入文本文档
            File.WriteAllText("书签.txt",stringbuilder.ToString());
        }

        static voidGetBookmarkTitle(PdfBookmarkCollectionbookmarks, StringBuilder stringbuilder)
        {
            if (bookmarks.Count > 0)
            {
               foreach (PdfBookmarkparentBookmark in bookmarks)
               {
                   stringbuilder.AppendLine(parentBookmark.Title);
                   GetBookmarkTitle(parentBookmark, stringbuilder);
               }
            }
        }
    }
}

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值