欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java 在PDF中添加页面跳转按钮

程序员文章站 2023-11-08 18:04:16
在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程序。参考如下导入效果:

Java 在PDF中添加页面跳转按钮

 

方法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 在PDF中添加页面跳转按钮

Java 在PDF中添加页面跳转按钮

 

 

(本文完)