Home Backend Development C#.Net Tutorial Introduction to how to add, modify and delete PDF bookmarks in C#

Introduction to how to add, modify and delete PDF bookmarks in C#

Jul 30, 2017 am 09:58 AM
.net

This article mainly introduces the example code of adding, modifying and deleting PDF bookmarks in C#. The editor thinks it is quite good, so I will share it with you now and give it as a reference. Let’s follow the editor and take a look.

Sometimes when we read a PDF document, we will encounter such a situation: the PDF document has many pages, but there are no bookmarks, so we cannot quickly understand the document based on the bookmarks. The content explained cannot be clicked on the bookmark to quickly jump to the corresponding location, but can only be read page by page, which is very distressing. I believe that developers will also have such functional requirements when developing PDF-related applications, so in this article I will introduce how to use programming (C#) and the Spire.PDF component to add bookmarks to PDF documents ( Including adding bookmarks to existing documents and adding sub-bookmarks), as well as modifying and deleting specified bookmarks in existing PDF documents.

Spire.PDF Component Overview

Spire.PDF is a professional PDF component for creating, editing in .NET applications , process and read PDF documents. Supports rich PDF document processing operations, such as PDF document merging/splitting, conversion (such as HTML to PDF, PDF to images, etc.), printing (including silent printing), compression, adding/modifying/deleting bookmarks, adding comments, and security settings (Including digital signatures), creating and filling fields, image insertion and extraction, text extraction and highlighting, etc. It does not depend on Adobe Acrobat, so the running environment does not require the installation of Adobe Reader or other similar components. This component is divided into commercial version and free version (not trial version). Generally, when personal use or operating PDF documents do not exceed 10 pages, you can use the free version.

Regarding its installation, there are many channels, including the official website and NuGet, the most favorite and commonly used method by developers. Enter the following PowerShell command in the NuGet Package Manager Console of Visual Studio and press Enter, the component dll will be automatically referenced into the project:


1

PM> Install-Package Spire.PDF

Copy after login

Implementation of adding, modifying and deleting PDF bookmarks

##1. Adding bookmarks

1.1 Adding bookmarks

In Spire.PDF, each PDF document has a bookmark list (PdfBookmarkCollection). We can get the list through the Bookmarks property of the PdfDocument object, and then add bookmarks to the list through the Add () method.


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

//新建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");

Copy after login

1.2 Add sub-bookmarks

How to add sub-bookmarks and add ordinary bookmarks Basically the same, the difference is that ordinary bookmarks are added directly to the document's bookmark list, while child bookmarks are added to the parent bookmark list.


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

//新建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");

Copy after login

1.3 Add bookmarks to existing documents

In addition to new PDF documents To add bookmarks, we can also add bookmarks to existing PDF documents. In addition to LoadFromFile, methods for loading PDF documents include LoadFromStream (loading from stream), LoadFromHTML (loading from HTML), etc. You can choose the corresponding loading method according to your own needs.


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

//加载文档

 

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");

Copy after login

2. Modify bookmarks

Spire.PDF supports a variety of bookmark modification methods , such as modifying the content of existing bookmarks, inserting new bookmarks into the existing bookmark list, inserting sub-bookmarks into existing bookmarks, etc. Here I choose to modify the bookmark content and insert a new bookmark into the existing bookmark list for introduction.

2.1 Modify the content of existing bookmarks


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

//加载文档

 

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");

Copy after login

##2.2 Insert new bookmarks Go to existing bookmark list

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

//加载文档

 

  

 

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");

Copy after login


3. Delete bookmark

When deleting a bookmark, you can use the bookmark's serial number or the bookmark's name. Here I use the serial number method.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

//加载文档

 

PdfDocument pdf = new PdfDocument();

pdf.LoadFromFile("Bookmark2.pdf");

 

//获取书签列表

 

PdfBookmarkCollection bookmarks = document.Bookmarks;

 

//删除第一个书签

 

bookmarks.RemoveAt(0);

 

//保存文档

 

pdf.SaveToFile("DeleteBookmark.pdf");

Copy after login

The above is the detailed content of Introduction to how to add, modify and delete PDF bookmarks in C#. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What are the employment prospects of C#? What are the employment prospects of C#? Oct 19, 2023 am 11:02 AM

Whether you are a beginner or an experienced professional, mastering C# will pave the way for your career.

Share several .NET open source AI and LLM related project frameworks Share several .NET open source AI and LLM related project frameworks May 06, 2024 pm 04:43 PM

The development of artificial intelligence (AI) technologies is in full swing today, and they have shown great potential and influence in various fields. Today Dayao will share with you 4 .NET open source AI model LLM related project frameworks, hoping to provide you with some reference. https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel is an open source software development kit (SDK) designed to integrate large language models (LLM) such as OpenAI, Azure

.NET performance optimization technology for developers .NET performance optimization technology for developers Sep 12, 2023 am 10:43 AM

If you are a .NET developer, you must be aware of the importance of optimizing functionality and performance in delivering high-quality software. By making expert use of the provided resources and reducing website load times, you not only create a pleasant experience for your users but also reduce infrastructure costs.

Performance differences between Java framework and .NET framework Performance differences between Java framework and .NET framework Jun 03, 2024 am 09:19 AM

In terms of high-concurrency request processing, .NETASP.NETCoreWebAPI performs better than JavaSpringMVC. The reasons include: AOT early compilation, which reduces startup time; more refined memory management, where developers are responsible for allocating and releasing object memory.

C# .NET Interview Questions & Answers: Level Up Your Expertise C# .NET Interview Questions & Answers: Level Up Your Expertise Apr 07, 2025 am 12:01 AM

C#.NET interview questions and answers include basic knowledge, core concepts, and advanced usage. 1) Basic knowledge: C# is an object-oriented language developed by Microsoft and is mainly used in the .NET framework. 2) Core concepts: Delegation and events allow dynamic binding methods, and LINQ provides powerful query functions. 3) Advanced usage: Asynchronous programming improves responsiveness, and expression trees are used for dynamic code construction.

Advanced C# .NET Tutorial: Ace Your Next Senior Developer Interview Advanced C# .NET Tutorial: Ace Your Next Senior Developer Interview Apr 08, 2025 am 12:06 AM

Interview with C# senior developer requires mastering core knowledge such as asynchronous programming, LINQ, and internal working principles of .NET frameworks. 1. Asynchronous programming simplifies operations through async and await to improve application responsiveness. 2.LINQ operates data in SQL style and pay attention to performance. 3. The CLR of the NET framework manages memory, and garbage collection needs to be used with caution.

C# .NET: Exploring Core Concepts and Programming Fundamentals C# .NET: Exploring Core Concepts and Programming Fundamentals Apr 10, 2025 am 09:32 AM

C# is a modern, object-oriented programming language developed by Microsoft and as part of the .NET framework. 1.C# supports object-oriented programming (OOP), including encapsulation, inheritance and polymorphism. 2. Asynchronous programming in C# is implemented through async and await keywords to improve application responsiveness. 3. Use LINQ to process data collections concisely. 4. Common errors include null reference exceptions and index out-of-range exceptions. Debugging skills include using a debugger and exception handling. 5. Performance optimization includes using StringBuilder and avoiding unnecessary packing and unboxing.

From Web to Desktop: The Versatility of C# .NET From Web to Desktop: The Versatility of C# .NET Apr 15, 2025 am 12:07 AM

C#.NETisversatileforbothwebanddesktopdevelopment.1)Forweb,useASP.NETfordynamicapplications.2)Fordesktop,employWindowsFormsorWPFforrichinterfaces.3)UseXamarinforcross-platformdevelopment,enablingcodesharingacrossWindows,macOS,Linux,andmobiledevices.

See all articles