JAVA 添加、修改和刪除PDF書簽的示例代碼
當(dāng)閱讀篇幅較長(zhǎng)的PDF文檔時(shí),為方便我們?cè)俅伍喿x時(shí)快速定位到上一次的閱讀位置,可以插入一個(gè)書簽進(jìn)行標(biāo)記;此外,對(duì)于文檔中已有的書簽,我們也可以根據(jù)需要進(jìn)行修改或者刪除等操作。本篇文章將通過Java編程來(lái)展示如何添加、修改以及刪除PDF書簽。
工具使用:
•Free Spire.Pdf for Java 2.4.4 (免費(fèi)版)
•IntelliJ IDEA
Jar包導(dǎo)入:
方式一:首先,從官網(wǎng)獲取Free Spire.PDF for Java之后解壓,以下是三種在IDEA中快速打開Project Structure界面的方式;如下圖:

然后,按照以下步驟進(jìn)行操作:① 選擇“Modules”—“Dependencies”,添加外置jar包;② 進(jìn)入"Attach File or Directories"界面選擇jar文件路徑,然后點(diǎn)擊“OK”;③ 勾選jar路徑選項(xiàng),點(diǎn)擊”O(jiān)K”/”Apply”;④ 導(dǎo)入完成。如下圖:

方式二:使用Maven配置導(dǎo)包。可以參考導(dǎo)入方法。
測(cè)試文檔:

JAVA代碼示例參考:
1. 添加書簽
import com.spire.pdf.*;
import com.spire.pdf.actions.PdfGoToAction;
import com.spire.pdf.bookmarks.PdfBookmark;
import com.spire.pdf.bookmarks.PdfTextStyle;
import com.spire.pdf.general.PdfDestination;
import com.spire.pdf.graphics.PdfRGBColor;
import java.awt.*;
import java.awt.geom.Point2D;
public class bookmark {
public static void main(String[] args) throws Exception{
//創(chuàng)建PDF實(shí)例
PdfDocument doc = new PdfDocument();
//從系統(tǒng)中加載PDF文件
doc.loadFromFile("data/Sample.pdf");
PdfPageBase page = doc.getPages().get(2);
//添加書簽
PdfBookmark bookmark = doc.getBookmarks().add("第三頁(yè)");
//獲取位置,頁(yè)碼的開頭
PdfDestination bookmarkLocation = new PdfDestination(page, new Point2D.Float(0 , 0));
bookmark.setAction(new PdfGoToAction(bookmarkLocation));
//書簽樣式
bookmark.setColor(new PdfRGBColor(Color.BLUE));
bookmark.setDisplayStyle(PdfTextStyle.Bold);
PdfPageBase page1 = doc.getPages().get(3);
PdfBookmark bookmark1 = doc.getBookmarks().add("第四頁(yè)");
PdfDestination bookmarkLocation1 = new PdfDestination(page1, new Point2D.Float(0 , 0));
bookmark1.setAction(new PdfGoToAction(bookmarkLocation1));
bookmark1.setColor(new PdfRGBColor(Color.RED));
bookmark1.setDisplayStyle(PdfTextStyle.Bold);
//保存PDF文件
doc.saveToFile("output/bookmarks.pdf");
doc.close();
}
}
書簽添加效果:

2. 修改書簽
import com.spire.pdf.PdfDocument;
import com.spire.pdf.bookmarks.*;
import com.spire.pdf.graphics.PdfRGBColor;
import java.awt.*;
public class updateBookmark {
public static void main(String[] args) {
//創(chuàng)建PDF實(shí)例
PdfDocument doc = new PdfDocument();
//從系統(tǒng)中加載PDF文件
doc.loadFromFile("output/bookmarks.pdf");
//獲取第一個(gè)書簽
PdfBookmark bookmark = doc.getBookmarks().get(0);
//更改書簽
bookmark.setTitle("已更新的書簽");
// 設(shè)置書簽的顏色
bookmark.setColor(new PdfRGBColor(Color.black));
//設(shè)置書簽文本加粗
bookmark.setDisplayStyle(PdfTextStyle.Bold);
//保存文件
doc.saveToFile("output/updateBookmark.pdf");
doc.close();
}
}
書簽修改效果:

3. 刪除書簽
import com.spire.pdf.PdfDocument;
public class deleteBookmark {
public static void main(String[] args) {
//創(chuàng)建PDF實(shí)例
PdfDocument doc = new PdfDocument();
//從系統(tǒng)中加載PDF文件
doc.loadFromFile("output/bookmarks.pdf");
//removeAt()方法移除書簽
doc.getBookmarks().removeAt(0);
//保存文件
doc.saveToFile("output/deleteBookmark.pdf");
doc.close();
}
}
書簽刪除效果:

總結(jié)
以上所述是小編給大家介紹的JAVA 添加、修改和刪除PDF書簽的示例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
基于HttpClient在HTTP協(xié)議接口測(cè)試中的使用(詳解)
下面小編就為大家?guī)?lái)一篇基于HttpClient在HTTP協(xié)議接口測(cè)試中的使用(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-10-10
淺談Redis在微服務(wù)架構(gòu)中的幾種應(yīng)用場(chǎng)景
本文介紹在SpringCloud中使用Redis作為Pub/Sub異步通信、緩存或主數(shù)據(jù)庫(kù)和配置服務(wù)器的三種場(chǎng)景應(yīng)用。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2019-05-05
Java調(diào)用WebService服務(wù)的三種方式總結(jié)
雖然WebService這個(gè)框架已經(jīng)過時(shí),但是有些公司還在使用,在調(diào)用他們的服務(wù)的時(shí)候就不得不面對(duì)各種問題,本篇文章總結(jié)了最近我調(diào)用?WebService的心路歷程,3種方式可以分別嘗試,需要的朋友可以參考下2023-08-08
java使用CountDownLatch實(shí)現(xiàn)多線程協(xié)作
在多線程編程中,經(jīng)常需要實(shí)現(xiàn)一種機(jī)制來(lái)協(xié)調(diào)多個(gè)線程的執(zhí)行,以確保某些操作在所有線程完成后再進(jìn)行,CountDownLatch?就是?Java?并發(fā)包中提供的一種同步工具,下面我們就來(lái)看看如何使用CountDownLatch實(shí)現(xiàn)多線程協(xié)作吧2023-11-11
Java 超詳細(xì)講解IO操作字節(jié)流與字符流
本章具體介紹了字節(jié)流、字符流的基本使用方法,圖解穿插代碼實(shí)現(xiàn)。 JAVA從基礎(chǔ)開始講,后續(xù)會(huì)講到JAVA高級(jí),中間會(huì)穿插面試題和項(xiàng)目實(shí)戰(zhàn),希望能給大家?guī)?lái)幫助2022-03-03
java后臺(tái)調(diào)用接口及處理跨域問題的解決
這篇文章主要介紹了java后臺(tái)調(diào)用接口,處理跨域的問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
java數(shù)據(jù)結(jié)構(gòu)基礎(chǔ):循環(huán)鏈表和棧
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之循環(huán)鏈表、棧的實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Java數(shù)據(jù)結(jié)構(gòu)中循環(huán)鏈表、棧、的功能、定義及使用方法,需要的朋友可以參考下2021-08-08

