概述

当我们在查阅含有大量页面的PDF时,可通过在页面上添加跳转按钮来实现页面转换,以达到节约时间,提高效率的目的。本文将通过Java程序来演示如何给PDF文档添加页面跳转按钮。通常来说跳转可分为两种情况:一是跳转至特殊页面(首页、最后一页、上一页、下一页);二是跳转至指定页面(例如:第四页)。

配置测试环境

本文代码示例使用到的工具是Free Spire.PDF for Java,可通过E-iceblue中文官网下载获取。解压后将lib文件夹下的Spire.Pdf.jar手动导入IDEA即可。

当然,也可以通过Maven仓库来导入产品及相关依赖。创建一个Maven程序,在pom.xml文件中配置Maven仓库路径,并指定Spire.PDF for Java的Maven依赖。

com.e-icebluehttp://repo.e-iceblue.cn/repository/maven-public/e-iceblue        spire.pdf.free        2.6.3

配置完成后,只需点击”Import Changes”即可导入JAR包。

参考代码

1、跳转至特殊页面(首页、最后一页、上一页、下一页)

import com.spire.pdf.FileFormat;import com.spire.pdf.PdfDocument;import com.spire.pdf.PdfPageBase;import com.spire.pdf.actions.PdfActionDestination;import com.spire.pdf.actions.PdfNamedAction;import com.spire.pdf.fields.PdfButtonField;import com.spire.pdf.graphics.PdfRGBColor;import com.spire.pdf.graphics.PdfTrueTypeFont;import java.awt.*;import java.awt.geom.Rectangle2D;public class AddNavigationButton {    public static void main(String[] args) throws Exception {        //创建PdfDocument对象,加载PDF文档        PdfDocument doc = new PdfDocument();        doc.loadFromFile("C:甥敳獲Test1DesktopSample.pdf");        //获取最后一页        PdfPageBase lastPage = doc.getPages().get(doc.getPages().getCount() - 1);        //允许在PDF中创建窗体        doc.setAllowCreateForm(true);        //定义float变量来确定按钮的位置及大小        float x = 90;        float y = 450;        float width = 150;        float height = 22;        //创建truetype字体        PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", Font.PLAIN, 13), true);       //创建一个按钮跳转至首页        PdfButtonField btn_1 = new PdfButtonField(lastPage, "button");        Rectangle2D.Float 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.ORANGE));//设置背景颜色        btn_1.setForeColor(new PdfRGBColor(Color.red));//设置提示语字体颜色        btn_1.setBorderColor(new PdfRGBColor(Color.blue));//设置按钮边框颜色        //创建PdfNamedAction实例,在传入的参数中选择上一页、下一页、首页或最后一页        PdfNamedAction namedAction = new PdfNamedAction(PdfActionDestination.FirstPage);        btn_1.getActions().setMouseDown(namedAction);//应用动作        doc.getForm().getFields().add(btn_1);//添加按钮至文档        //保存文档        doc.saveToFile("output/NavigationButton.pdf", FileFormat.PDF);        doc.close();    }}

注:此处的PdfNamedAction类支持四种按钮跳转动作。分别可实现页面跳转至上一页、首页、下一页和最后一页。

添加效果:

2、跳转至指定页面(以下代码演示跳转至文档第四页)

import com.spire.pdf.FileFormat;import com.spire.pdf.PdfDocument;import com.spire.pdf.PdfPageBase;import com.spire.pdf.actions.PdfGoToAction;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 AddNavigationButton2 {    public static void main(String[] args) throws Exception {        //创建PdfDocument对象,加载PDF文档        PdfDocument doc = new PdfDocument();        doc.loadFromFile("C:甥敳獲Test1DesktopSample.pdf");        //获取最后一页        PdfPageBase lastPage = doc.getPages().get(doc.getPages().getCount() - 1);        //允许在PDF中创建窗体        doc.setAllowCreateForm(true);        //定义float变量来确定按钮的位置及大小        float x = 90;        float y = 450;        float width = 150;        float height = 22;        //创建truetype字体        PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", Font.PLAIN, 13), true);        //创建一个按钮跳转到指定页        PdfButtonField btn_1 = new PdfButtonField(lastPage, "button");        Rectangle2D.Float rect = new Rectangle2D.Float(x, y + height + 5, width, height);        btn_1.setBounds(rect);//设置按钮大小及位置        btn_1.setText("跳转至第四页");//设置按钮提示语        btn_1.setFont(font);//设置字体        btn_1.setBackColor(new PdfRGBColor(Color.GREEN));//设置背景颜色        btn_1.setForeColor(new PdfRGBColor(Color.red));//设置提示语字体颜色        btn_1.setBorderColor(new PdfRGBColor(Color.blue));//设置按钮边框颜色        //创建PdfNamedAction实例,并指定跳转页码        PdfGoToAction goToAction = new PdfGoToAction(new PdfDestination(doc.getPages().get(3)));        btn_1.getActions().setMouseDown(goToAction);//应用动作        doc.getForm().getFields().add(btn_1);//添加按钮至文档        //保存文档        doc.saveToFile("output/result.pdf", FileFormat.PDF);        doc.close();    }}

添加效果:

(本文完)

datatables 添加时间按钮_Java 添加页面跳转按钮到PDF文档相关推荐

  1. 【PDFBox】PDFBox操作PDF文档之添加本地图片、添加网络图片、图片宽高自适应、图片水平垂直居中对齐

    这篇文章,主要介绍PDFBox操作PDF文档之添加本地图片.添加网络图片.图片宽高自适应.图片水平垂直居中对齐. 目录 一.PDFBox操作图片 1.1.添加本地图片 (1)案例代码 (2)运行效果 ...

  2. asp登录页面跳转到注册页面_Java 添加页面跳转按钮到PDF文档

    概述 当我们在查阅含有大量页面的PDF时,可通过在页面上添加跳转按钮来实现页面转换,以达到节约时间,提高效率的目的.本文将通过Java程序来演示如何给PDF文档添加页面跳转按钮.通常来说跳转可分为两种 ...

  3. java给多个不同文档(doc,docx,jpg,png,tif)合并成一个pdf文档 并添加设置页面权限,和水印

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 对pdf文档的合并转换 加水印等 多个文件转pdf 还有改变图片的尺寸大小 依赖包可以自己去找下 代码 package com. ...

  4. UE4学习-虚幻4帮助手册、通过蓝图实现动画效果、添加时间轴、添加声音、C++和蓝图事件关联

    文章目录 虚幻4帮助手册 把一个对象转换成蓝图类 C++和蓝图的关联 添加时间轴 修改defaultPawn 修改door的事件图标 给场景添加声音 虚幻4帮助手册 虚幻4帮助手册 虚幻4帮助手册 虚 ...

  5. Java在PDF文档中添加或删除页面

    前言 当你编辑一个PDF文档时,有时需要删除文档中多余的页面或向文档中添加新的页面.本文将向您演示如何使用Spire.PDF for Java在PDF文档中添加或删除页面. 程序环境 安装Spire. ...

  6. java pdf设置页码_Java 添加页码到PDF文档

    本文介绍通过Java程序来添加页码到PDF文档的方法. 使用工具:Free Spire.PDF for Java (免费版) Jar文件获取及导入: 方法1:可通过官网下载jar文件包.下载后,解压文 ...

  7. java页码_Java 添加页码到PDF文档

    本文介绍通过Java程序来添加页码到PDF文档的方法. 使用工具:Free Spire.PDF for Java (免费版) Jar文件获取及导入: 方法1:可通过官网 方法2:可通过 Java代码示 ...

  8. PDF怎么插入页?将页面添加到 PDF 文档的 3 种简单方法

    得益于现代技术,我们现在可以轻松地合并.创建.编辑 PDF 并执行更多操作.使用专业的PDF程序在PDF文档中插入一页问题不大.这篇文章将介绍如何使用 奇客PDF编辑 和其他四个桌面和在线程序向 PD ...

  9. elementui表格添加滚动条_如何给PDF文档添加超链接?

    有时我们在编辑PDF文档时,需要给目录做快速跳转或给文中的某些内容跳转到其他网页,这就需要用到超链接的功能.下面就一起看看给PDF文档添加超链接的是如何操作的. https://www.zhihu.c ...

最新文章

  1. geoserver2.15安装教程
  2. 使用p3p跨域设置Cookie
  3. 【Redis】杂项基础知识;Redis数据类型
  4. 【大数据】Hadoop入门预告版
  5. 计算机科学与技术导论报告
  6. 哪一类功率放大电路效率最高_高频放大电路原理详解及应用电路汇总
  7. 计算机与现代社会英语作文,急求英文翻译 随着现代社会的发展,人工智能已经逐步进入了我们的生活。人工智能带给了我们生活无穷的便...
  8. 蓝屏代码2345prot.sys
  9. AddressBook通讯录右边索引条
  10. php将ppt转jpg图片的具体步骤代码
  11. 阅读源码的经验总结,以进一步的提升自己,加油小甜妮儿
  12. 联创机房管理系统重连服务器失败,联创机房管理系统在CAD实验室应用探析.doc...
  13. python画小猪佩奇——给最爱的人一份甜甜的温暖
  14. 图论:图的四种最短路径算法
  15. Intellij搭建spark开发环境
  16. 在线语音合成 5-1
  17. Cognos Analytics教程之为什么我喜欢 Cognos Analytics:IBM Cognos Analytics 的 15 个特性
  18. python从字符串中抽取一部分_python如何截取字符串中特定部分
  19. 激光测距VL53L0软件开发中的那些坑
  20. 关于 四舍六入五成双/四舍六入五留双/四舍六入五单双 等口诀的实例研究

热门文章

  1. 设计模式——函数的写作使用外卖模式
  2. 目标检测——数据增强的学习笔记
  3. 关于语言选择、输入和产出的关系
  4. Ubuntu 20.04 安装 CUDA10.0和cudnn7.6
  5. The minimum required Cuda capability is 3.7.
  6. leetcode898.BitwiseORsofSubarrays
  7. Intellij IDEA基本配置
  8. 【JVM】浅谈对OOM的认识
  9. 敏捷开发一千零一问系列之八:团队习惯了分工怎么办?
  10. vue-cli设置跨域代理 + 开发/生成环境简单请求接口设置