Java 在PDF中添加页面跳转按钮
程序员文章站
2022-06-20 17:06:32
在PDF 中可通过按钮来添加动作跳转到指定页面,包括跳转到文档首页、文档末页、跳转到上一页、下一页、或跳转到指定页面等。下面将通过java代码来演示如何添加具有以上几种功能的按钮。 使用工具: Free Spire.PDF for Java (免费版) IntelliJ IDEA Jar文件获取及导 ......
在pdf 中可通过按钮来添加动作跳转到指定页面,包括跳转到文档首页、文档末页、跳转到上一页、下一页、或跳转到指定页面等。下面将通过java代码来演示如何添加具有以上几种功能的按钮。
使用工具:
- free spire.pdf for java (免费版)
- intellij idea
jar文件获取及导入:
方法1:通过官网下载jar文件包。下载后,解压文件,并将lib文件夹下的spire.pdf.jar文件导入java程序。参考如下导入效果:
方法2: 可通过。
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的 Excel 读写--easyexcel
下一篇: VO和DO的区别