java pdf 书签_Java PDF书签——添加、编辑、删除、读取书签
本文介紹通過(guò)Java程序來(lái)操作PDF書(shū)簽,根據(jù)對(duì)書(shū)簽的不同操作要求,分以下情況來(lái)介紹:
1. 添加書(shū)簽(包括添加一級(jí)書(shū)簽、多級(jí)子書(shū)簽)
3. 刪除書(shū)簽(包括刪除所有書(shū)簽、刪除子書(shū)簽等)
4. 讀取書(shū)簽
工具使用
程序使用輔助工具:Free Spire.PDF for Java(免費(fèi)版)
方法1
:可下載
jar包,解壓并將lib文件夾下的jar文件導(dǎo)入java程序(手動(dòng)導(dǎo)入)
方法2
: 通過(guò)創(chuàng)建Maven項(xiàng)目程序,在pom.xml中配置maven倉(cāng)庫(kù)路徑并指定Free Spire.PDF for Java 的依賴(lài),配置完成后,在IDEA中,點(diǎn)擊“Import Changes”導(dǎo)入JAR包:
com.e-iceblue
http://repo.e-iceblue.cn/repository/maven-public/
e-iceblue
spire.pdf.free
2.6.3
(Ecllipse
的導(dǎo)入方法,參考這篇
)
jar導(dǎo)入結(jié)果如下圖所示:
1.
添加書(shū)簽到PDF
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?AddBookmark?{
public?static?void?main(String[]?args)?{
//創(chuàng)建PdfDocument實(shí)例
PdfDocument?pdf?=?new?PdfDocument();
//加載PDF文檔
pdf.loadFromFile("test.pdf");
//獲取第一頁(yè)
PdfPageBase?page?=?pdf.getPages().get(0);
//添加書(shū)簽
PdfBookmark?bookmark?=?pdf.getBookmarks().add("第一部分?調(diào)查研究概述");
bookmark.setDisplayStyle(PdfTextStyle.Bold);//設(shè)置字體樣式
bookmark.setColor(new?PdfRGBColor(new?Color(139,?69,?19)));//設(shè)置字體顏色
PdfDestination?destination?=?new?PdfDestination(page,?new?Point2D.Float(0,?0));//設(shè)置書(shū)簽的目標(biāo)頁(yè)面和位置
bookmark.setAction(new?PdfGoToAction(destination));
//添加二級(jí)子書(shū)簽
PdfBookmark?childBookmark?=?bookmark.add("第一節(jié)?菌種特性研究");
childBookmark.setColor(new?PdfRGBColor(new?Color(255,?127,?80)));//設(shè)置字體顏色
childBookmark.setDisplayStyle(PdfTextStyle.Italic);//設(shè)置字體樣式
PdfDestination?childDestination?=?new?PdfDestination(page,?new?Point2D.Float(0,?100));//設(shè)置子書(shū)簽的目標(biāo)頁(yè)面和位置
childBookmark.setAction(new?PdfGoToAction(childDestination));
//添加三級(jí)子書(shū)簽
PdfBookmark?childBookmark1?=?childBookmark.add("1.?菌種特性概念");
childBookmark1.setColor(new?PdfRGBColor(new?Color(125,?152,?100)));//設(shè)置字體顏色
childBookmark1.setDisplayStyle(PdfTextStyle.Italic);//設(shè)置字體樣式
PdfDestination?childDestination1?=?new?PdfDestination(page,?new?Point2D.Float(50,?100));//設(shè)置子書(shū)簽的目標(biāo)頁(yè)面和位置
childBookmark1.setAction(new?PdfGoToAction(childDestination1));
//保存文檔
pdf.saveToFile("AddBookmarks.pdf");
pdf.dispose();
}
}
書(shū)簽添加效果:
2.
編輯PDF
中已有的書(shū)簽
import?com.spire.pdf.*;
import?com.spire.pdf.bookmarks.PdfBookmark;
import?com.spire.pdf.bookmarks.PdfTextStyle;
import?com.spire.pdf.graphics.PdfRGBColor;
import?java.awt.*;
public?class?ModifyBookmark?{
public?static?void?main(String[]?args)?{
//創(chuàng)建PdfDocument實(shí)例
PdfDocument?pdf?=?new?PdfDocument();
//加載PDF文檔
pdf.loadFromFile("AddBookmarks.pdf");
//獲取第一個(gè)書(shū)簽,修改書(shū)簽標(biāo)題、字體顏色、字體樣式
PdfBookmark?bookmark?=?pdf.getBookmarks().get(0);
bookmark.setTitle("新標(biāo)題");
bookmark.setColor(new?PdfRGBColor(new?Color(255,20,147)));
bookmark.setDisplayStyle(PdfTextStyle.Bold);
//修改子書(shū)簽的字體、顏色和字體樣式等
for?(int?i?=?0?;?i
//修改二級(jí)子書(shū)簽
PdfBookmark?childBookmark?=??bookmark.get(0);
childBookmark.setColor(new?PdfRGBColor(new?Color(148,0,211)));
childBookmark.setDisplayStyle(PdfTextStyle.Italic);
//修改三級(jí)子書(shū)簽
PdfBookmark?childBookmark1?=?childBookmark.get(0);
childBookmark1.setColor(new?PdfRGBColor(new?Color(255,215,0))?);
childBookmark1.setDisplayStyle(PdfTextStyle.Italic);
}
//保存文檔
pdf.saveToFile("ModifyBookmarks.pdf");
pdf.close();
}
}
書(shū)簽編輯結(jié)果:
3.
刪除PDF
中的書(shū)簽
import?com.spire.pdf.*;
public?class?DeleteBookmark?{
public?static?void?main(String[]?args)?{
//創(chuàng)建PdfDocument實(shí)例,加載PDF文檔
PdfDocument?pdf?=?new?PdfDocument();
pdf.loadFromFile("AddBookmarks.pdf");
//刪除第一個(gè)書(shū)簽(包括刪除其包含的子書(shū)簽)
pdf.getBookmarks().removeAt(0);
/*//僅刪除子書(shū)簽
PdfBookmark?childBookmark?=?pdf.getBookmarks().get(0);
childBookmark.removeAt(0);*/
//保存文檔
pdf.saveToFile("RemoveBookmark.pdf");
pdf.dispose();
}
}
4.
讀取PDF
中的書(shū)簽
import?com.spire.pdf.*;
import?com.spire.pdf.bookmarks.PdfBookmark;
import?com.spire.pdf.bookmarks.PdfBookmarkCollection;
import?java.io.FileWriter;
import?java.io.IOException;
public?class?GetBookmark?{
public?static?void?main(String[]?args)?{
//加載包含書(shū)簽的PDF文檔
PdfDocument?pdf?=?new?PdfDocument();
pdf.loadFromFile("AddBookmarks.pdf");
//獲取書(shū)簽集合
PdfBookmarkCollection?bookmarkCollection?=?pdf.getBookmarks();
//實(shí)例化StringBuilder類(lèi)
StringBuilder?stringbuilder?=?new?StringBuilder();
//定義方法獲取書(shū)簽
GetBookmarkTitle(bookmarkCollection,?stringbuilder);
//聲明txt文件,并將獲得的多級(jí)書(shū)簽寫(xiě)入到文件.txt
FileWriter?writer;
try?{
writer?=?new?FileWriter("讀取的書(shū)簽.txt");
writer.write(stringbuilder.toString());
writer.flush();
}?catch?(IOException?e)?{
e.printStackTrace();
}
pdf.dispose();
}
//定義方法獲取書(shū)簽標(biāo)題
static?void?GetBookmarkTitle(PdfBookmarkCollection?bookmarkCollection,?StringBuilder?stringbuilder)
{
if?(bookmarkCollection.getCount()>?0)
{
for(int?i?=?0?;?i
{
PdfBookmark?parentBookmark?=?bookmarkCollection.get(i);
stringbuilder.append(parentBookmark.getTitle());
//遞歸文檔多級(jí)書(shū)簽
GetBookmarkTitle(parentBookmark,?stringbuilder);
}
}
}
}
書(shū)簽讀取結(jié)果:
(完)
與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的java pdf 书签_Java PDF书签——添加、编辑、删除、读取书签的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql随机显示记录_MySQL随机读
- 下一篇: jsp中jquery传值给Java_js