Java 在PDF中添加页面跳转按钮
在PDF 中可通过按钮来添加动作跳转到指定页面,包括跳转到文档首页、文档末页、跳转到上一页、下一页、或跳转到指定页面等。下面将通过java代码来演示如何添加具有以上几种功能的按钮。
使用工具:
- Free Spire.PDF for Java (免费版)
- IntelliJ IDEA
Jar文件获取及导入:
方法1:通过官网下载jar文件包。下载后,解压文件,并将lib文件夹下的Spire.Pdf.jar文件导入java程序。参考如下导入效果:

方法2: 可通过maven仓库安装导入。
Java 代码示例
import com.spire.pdf.*;
import com.spire.pdf.actions.*;
import com.spire.pdf.fields.PdfButtonField;
import com.spire.pdf.general.PdfDestination;
import com.spire.pdf.graphics.PdfRGBColor;
import com.spire.pdf.graphics.PdfTrueTypeFont;
import java.awt.*;
import java.awt.geom.Rectangle2D; public class Buttons {
public static void main(String[]args) throws Exception{
//创建文档,添加页面
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("test.pdf"); //分别获取第一页、第二页及最后一页
PdfPageBase page0 = pdf.getPages().get(0);
PdfPageBase page1 = pdf.getPages().get(1);
PdfPageBase page2 = pdf.getPages().get(pdf.getPages().getCount()-1); //设置允许创建窗体
pdf.setAllowCreateForm(true); //定义float变量来确定按钮的位置及大小
float x = 480;
float y = 750;
float width = 70;
float height = 23; //创建truetype字体
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("楷体", Font.PLAIN, 9), true); //创建按钮0跳转到最后一页
PdfButtonField btn_0 = new PdfButtonField(page0, "btn_0");
Rectangle2D.Float rect = new Rectangle2D.Float(x, y + 15, width, height);
btn_0.setBounds(rect);
btn_0.setFont(font);
btn_0.setText("跳转至最后一页");
btn_0.setBackColor(new PdfRGBColor(245,245,245));
btn_0.setForeColor(new PdfRGBColor(Color.black));
btn_0.setBorderColor(new PdfRGBColor(Color.white));
PdfNamedAction namedAction = new PdfNamedAction(PdfActionDestination.LastPage);
btn_0.getActions().setMouseDown(namedAction);
pdf.getForm().getFields().add(btn_0); //创建按钮1跳转到上一页
PdfButtonField btn_1 = new PdfButtonField(page1, "btn_1");
rect = new Rectangle2D.Float(x, y, width, height);
btn_1.setBounds(rect);
btn_1.setFont(font);
btn_1.setText("上一页");
btn_1.setBackColor(new PdfRGBColor(Color.white));
btn_1.setForeColor(new PdfRGBColor(Color.black));
btn_1.setBorderColor(new PdfRGBColor(245,245,245));
namedAction = new PdfNamedAction(PdfActionDestination.PrevPage);
btn_1.getActions().setMouseDown(namedAction);
pdf.getForm().getFields().add(btn_1); //创建按钮2跳转下一页
PdfButtonField btn_2 = new PdfButtonField(page1, "btn_2");
rect = new Rectangle2D.Float(x, y + height + 5, width, height);
btn_2.setBounds(rect);
btn_2.setFont(font);
btn_2.setText("下一页");
btn_2.setBackColor(new PdfRGBColor(245,245,245));
btn_2.setForeColor(new PdfRGBColor(Color.black));
btn_2.setBorderColor(new PdfRGBColor(Color.white));
namedAction = new PdfNamedAction(PdfActionDestination.NextPage);
btn_2.getActions().setMouseDown(namedAction);
pdf.getForm().getFields().add(btn_2); //创建按钮3跳转到首页
PdfButtonField btn_3 = new PdfButtonField(page2, "btn_3");
rect = new Rectangle2D.Float(x, 60, width, height);
btn_3.setBounds(rect);
btn_3.setFont(font);
btn_3.setText("返回首页");
btn_3.setBackColor(new PdfRGBColor(245,245,245));
btn_3.setForeColor(new PdfRGBColor(Color.black));
btn_3.setBorderColor(new PdfRGBColor(Color.white));
namedAction = new PdfNamedAction(PdfActionDestination.FirstPage);
btn_3.getActions().setMouseDown(namedAction);
pdf.getForm().getFields().add(btn_3); //创建按钮4跳转到指定页
PdfButtonField btn_4 = new PdfButtonField(page2, "btn_4");
rect = new Rectangle2D.Float( x,90 , width, height);
btn_4.setBounds(rect);
btn_4.setText("跳转至第二页");
btn_4.setFont(font);
btn_4.setBackColor(new PdfRGBColor(Color.white));
btn_4.setForeColor(new PdfRGBColor(Color.black));
btn_4.setBorderColor(new PdfRGBColor(245,245,245));
PdfGoToAction goToAction = new PdfGoToAction(new PdfDestination(pdf.getPages().get(1)));
btn_4.getActions().setMouseDown(goToAction);
pdf.getForm().getFields().add(btn_4); //保存文档
pdf.saveToFile("NavigationButton.pdf", FileFormat.PDF);
pdf.close();
}
}
按钮添加效果:


(本文完)
Java 在PDF中添加页面跳转按钮的更多相关文章
- Java 在PDF 中添加超链接
对特定元素添加超链接后,用户可以通过点击被链接的元素来激活这些链接,通常在被链接的元素下带有下划线或者以不同的颜色显示来进行区分.按照使用对象的不同,链接又可以分为:文本超链接,图像超链接,E-mai ...
- Java 在PDF中添加表格
本文将介绍通过Java编程在PDF文档中添加表格的方法.添加表格时,可设置表格边框.单元格对齐方式.单元格背景色.单元格合并.插入图片.设置行高.列宽.字体.字号等. 使用工具:Free Spire. ...
- Java 在PDF中添加工具提示|ToolTip
本文,将介绍如何通过Java后端程序代码在PDF中创建工具提示.添加工具提示后,当鼠标悬停在页面上的元素时,将显示工具提示内容. 导入jar包 本次程序中使用的是 Free Spire.PDF for ...
- web项目中实现页面跳转的两种方式
<a href="javascript:"></a>跳转在网页本身,URL不改变 <a href="#"></a> ...
- Struts2中的页面跳转
内容源自:Struts2中的页面跳转 一.全局页面的设置如果<package>包中的一些action都返回success,并且返回的页面都是同一个JSP页面,这样就可以配置全局的结果页面. ...
- [Xcode 实际操作]九、实用进阶-(23)多个Storyboard故事板中的页面跳转
目录:[Swift]Xcode实际操作 本文将演示多个Storyboard故事板中的页面跳转. 使用快捷键[Command]+[N]创建一个新的故事板文件. (在项目文件夹[DemoApp]上点击鼠标 ...
- php中的页面跳转和重定向
php中的页面跳转和重定向 ThinkPHP中跳转和重定向的区别 跳转: 浏览器认为: 当前URL请求成功, 重新请求新的URL. 浏览器会 记录当前的URL 和 新的URL 在请求历史记录中. 回退 ...
- C# 在PDF中添加墨迹注释Ink Annotation
PDF中的墨迹注释(Ink Annotation),表现为徒手涂鸦式的形状:该类型的注释,可任意指定形状顶点的位置及个数,通过指定的顶点,程序将连接各点绘制成平滑的曲线.下面,通过C#程序代码介绍如何 ...
- WPF实用指南一:在WPF窗体的边框中添加搜索框和按钮
原文:WPF实用指南一:在WPF窗体的边框中添加搜索框和按钮 在边框中加入一些元素,在应用程序的界面设计中,已经开始流行起来.特别是在浏览器(Crome,IE,Firefox,Opera)中都有应用. ...
随机推荐
- 转:sqlserver 存储毫秒23:59:59.999变成第二天00:00:00.000
因为,在SQL SERVER中DATETIME表示的时间为00:00:00到23:59:59.997,它的时间精度为1/300秒,在使用时会舍入到舍入到 .000..003 或 .007 秒三个增量. ...
- 多智能体系统(MAS)简介
1.背景 自然界中大量个体聚集时往往能够形成协调.有序,甚至令人感到震撼的运动场景,比如天空中集体翱翔的庞大的鸟群.海洋中成群游动的鱼群,陆地上合作捕猎的狼群.这些群体现象所表现出的分布.协调.自 ...
- word2vec之tensorflow(skip-gram)实现
关于word2vec的理解,推荐文章https://www.cnblogs.com/guoyaohua/p/9240336.html 代码参考https://github.com/eecrazy/wo ...
- calico的ipip与bgp的模式分析
1.前言 BGP工作模式: bgp工作模式和flannel的host-gw模式几乎一样: bird是bgd的客户端,与集群中其它节点的bird进行通信,以便于交换各自的路由信息: 随着节点数量N的增加 ...
- selenium基于java 一 软件安装
学习网站 http://www.testclass.net/selenium_java/ 一·安装java环境及eclipse,网上教程较多不讲 二·下载火狐浏览器(旧版) 下载地址:链接: http ...
- logcat粗略了解(一)
Logcat Logcat介绍:logcat是android的一个命令行工具,用于的到程序的log信息 Logcat命令格式: [adb] logcat [<option>]…[<f ...
- 死磕 java同步系列之redis分布式锁进化史
问题 (1)redis如何实现分布式锁? (2)redis分布式锁有哪些优点? (3)redis分布式锁有哪些缺点? (4)redis实现分布式锁有没有现成的轮子可以使用? 简介 Redis(全称:R ...
- Pots POJ 3414
/* *POJ 3414 *简单模板bfs *编程应该为了方便理解,尽量提供接口 */ #include<cstdio> #include<algorithm> #includ ...
- SUSE CaaS Platform 4 - Ceph RBD 作为 Pod 存储卷
RBD存储卷 目前 CaaSP4 支持多种 Volume 类型,这里选择 Ceph RBD(Rados Block Device),主要有如下好处: Ceph 经过多年开发,已经非常熟,社区也很活跃: ...
- CSS3自定义浏览器滚动条样式
一个完整滚动条右以下部分组成: ::-webkit-scrollbar 滚动条整体部分,常用属性:width,height,background,border: ::-webkit-scrollbar ...