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