JAVA 添加、修改和删除PDF书签
当阅读篇幅较长的PDF文档时,为方便我们再次阅读时快速定位到上一次的阅读位置,可以插入一个书签进行标记;此外,对于文档中已有的书签,我们也可以根据需要进行修改或者删除等操作。本篇文章将通过Java编程来展示如何添加、修改以及删除PDF书签。
工具使用:
- Free Spire.Pdf for Java 2.4.4 (免费版)
- IntelliJ IDEA
Jar包导入:
方式一:首先,从官网获取Free Spire.PDF for Java之后解压,以下是三种在IDEA中快速打开Project Structure界面的方式;如下图:
然后,按照以下步骤进行操作:① 选择“Modules”—“Dependencies”,添加外置jar包;② 进入"Attach File or Directories"界面选择jar文件路径,然后点击“OK”;③ 勾选jar路径选项,点击”OK”/”Apply”;④ 导入完成。如下图:
方式二:使用Maven配置导包。可以参考导入方法。
测试文档:
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{ //创建PDF实例 PdfDocument doc = new PdfDocument(); //从系统中加载PDF文件 doc.loadFromFile("data/Sample.pdf"); PdfPageBase page = doc.getPages().get(2); //添加书签 PdfBookmark bookmark = doc.getBookmarks().add("第三页"); //获取位置,页码的开头 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("第四页"); 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) { //创建PDF实例 PdfDocument doc = new PdfDocument(); //从系统中加载PDF文件 doc.loadFromFile("output/bookmarks.pdf"); //获取第一个书签 PdfBookmark bookmark = doc.getBookmarks().get(0); //更改书签 bookmark.setTitle("已更新的书签"); // 设置书签的颜色 bookmark.setColor(new PdfRGBColor(Color.black)); //设置书签文本加粗 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) { //创建PDF实例 PdfDocument doc = new PdfDocument(); //从系统中加载PDF文件 doc.loadFromFile("output/bookmarks.pdf"); //removeAt()方法移除书签 doc.getBookmarks().removeAt(0); //保存文件 doc.saveToFile("output/deleteBookmark.pdf"); doc.close(); } }
书签删除效果:
(本文完)
转载请声明出处!
JAVA 添加、修改和删除PDF书签的更多相关文章
- C# 添加、修改和删除PDF书签
C# 添加.修改和删除PDF书签 有时候我们在阅读PDF文档时会遇到这样一种情况:PDF文档页数比较多,但是又没有书签,所以我们不能根据书签快速了解文档所讲解的内容,也不能点击书签快速跳转到相应的位置 ...
- java如何实现批量删除pdf指定的页数
依赖: <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox-app ...
- Entity Framework Code First添加修改及删除单独实体
对于一个单独实体的通常操作有3种:添加新的实体.修改实体以及删除实体. 1.添加新的实体 Entity Framework Code First添加新的实体通过调用DbSet.Add()方法来实现. ...
- Entity Framework Code First添加修改及删除外键关联实体
1.添加外键关联实体 1>.添加新的Province及City实体 using (var ctx = new PortalContext()) { var city1 = new City { ...
- DNS添加/修改/查询/删除A记录
#查询DNS可用类 Get-WmiObject -Namespace root\MicrosoftDNS -List #查询所有资源记录 $mydns = [WMIClass]"ROOT\M ...
- Java如何大批量从json数据源中按指定符号隔字符串,并修改、删除数据
原文出自:https://blog.csdn.net/seesun2012 package com.seesun2012.com; /** * Java大批量修改.删除数据,按指定标识符分隔字符串 * ...
- Java 添加、验证PDF 数字签名
在设置文档内容保护的方法中,除了对文档加密.添加水印外,应用数字签名也是一种有效防伪手段.数字签名的文件比较容易验证,并且具有较高的权威性和可信度.在PDF文档中,有可直接添加或验证数字签名的功能方法 ...
- Java添加、提取、替换和删除PDF图片
(一)简介 这篇文章将介绍在Java中添加.提取.删除和替换PDF文档中的图片. 工具使用: Free Spire.PDF for JAVA 2.4.4(免费版) Intellij IDEA Jar包 ...
- js/java 获取、添加、修改、删除cookie(最全)
一.cookie介绍 1.cookie的本来面目 HTTP协议本身是无状态的.什么是无状态呢,即服务器无法判断用户身份.Cookie实际上是一小段的文本信息(key-value格式).客户端向服务 ...
随机推荐
- Maven安装和手动安装jar到仓库
1. 安装Maven 1.下载mvn到本地,解压. 2.新建系统变量MAVEN_HOME,值指向安装目录如D:\apache-maven-3.3.9 3.path变量中增加:%MAVEN_HOME%\ ...
- zookeeper客户端
查看具体结点信息 bash zkServer.sh status 查看哪个结点被选作leader或者followerecho stat|nc 127.0.0.1 2181 测试是否启动了该Server ...
- HTML5 <template>标签元素简介
一.HTML5 template元素初面 <template>元素,基本上可以确定是2013年才出现的.干嘛用的呢,顾名思意,就是用来声明是“模板元素”. 目前,我们在HTML中嵌入模板H ...
- IntelliJ 中类似于Eclipse ctrl+q的是Ctrl+Shift+Backspace
IntelliJ 中类似于Eclipse ctrl+q的是Ctrl+Shift+Backspace 回到刚刚编辑的地方: ctrl+alt+Left 是回到刚刚浏览的地方,不一定是编辑的地方,可能已经 ...
- ZOJ 2859 二维线段树
思路:自己写的第二发二维线段树1A.哈哈,看来对二维的push操作比較了解了:可是还没遇到在两个线段树中同一时候进行push操作的,事实上这题我是想在x维和y维同一时候进行push操作的.可是想了好久 ...
- 【转载】How browsers work--Behind the scenes of modern web browsers (前端必读)
浏览器可以被认为是使用最广泛的软件,本文将介绍浏览器的工 作原理,我们将看到,从你在地址栏输入google.com到你看到google主页过程中都发生了什么. 将讨论的浏览器 今天,有五种主流浏览器- ...
- request.getAttribute()与request.setAttribute()
request.getAttribute()与request.setAttribute() request.getAttribute("nameOfObj")可得到JSP页面一表单 ...
- sql server 笔记1--case、WAITFOR、TRY CATCH
一.case 转自:http://blog.csdn.net/add8849/article/details/576424 深入使用:http://blog.csdn.net/akuoma/artic ...
- OpenCV基本图像容器Mat的几种创建方法
參考文章:http://www.cnblogs.com/tornadomeet/archive/2012/07/19/2599376.html 实验说明: (引用) 本文主要讲一些opencv 2.0 ...
- rip是典型的距离矢量动态路由协议。Ospf是链路状态型的协议
网络工程师十个常见面试问题-看准网 https://m.kanzhun.com/k-mianshiwenti/1465113.html 两者都属于IGP协议,rip是典型的距离矢量动态路由协议.Osp ...