在pdf文档内部添加页面跳转按钮,可以方便读者迅速实现跳转而不用依赖于pdf阅读器本身的页面跳转功能。本文演示了如何使用spire.pdf for java创建按钮跳转到一个特殊页面(例如,凯发线上登陆下载网址首页、最后一页、下一页)或者一个特定页面(例如,第四页)。
import com.spire.pdf.actions.pdfactiondestination;
import com.spire.pdf.actions.pdfgotoaction;
import com.spire.pdf.actions.pdfnamedaction;
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 addnavigationbutton {
public static void main(string[] args) throws exception {
//创建pdfdocument对象,加载pdf文档
pdfdocument doc = new pdfdocument();
doc.loadfromfile("c:\\users\\administrator\\desktop\\sample.pdf");
//获取最后一页
pdfpagebase lastpage = doc.getpages().get(doc.getpages().getcount() - 1);
//允许在pdf中创建窗体
doc.setallowcreateform(true);
//定义float变量来确定按钮的位置及大小
float x = 80;
float y = 200;
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, "btn_1");
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.blue));
btn_1.setbordercolor(new pdfrgbcolor(color.blue));
pdfnamedaction namedaction = new pdfnamedaction(pdfactiondestination.firstpage);
btn_1.getactions().setmousedown(namedaction);
doc.getform().getfields().add(btn_1);
//创建一个按钮跳转到指定页
pdfbuttonfield btn_2 = new pdfbuttonfield(lastpage, "btn_2");
rect = new rectangle2d.float( x, y height 5, width, height);
btn_2.setbounds(rect);
btn_2.settext("跳转至第四页");
btn_2.setfont(font);
btn_2.setbackcolor(new pdfrgbcolor(color.orange));
btn_2.setforecolor(new pdfrgbcolor(color.blue));
btn_2.setbordercolor(new pdfrgbcolor(color.blue));
pdfgotoaction gotoaction = new pdfgotoaction(new pdfdestination(doc.getpages().get(3)));
btn_2.getactions().setmousedown(gotoaction);
doc.getform().getfields().add(btn_2);
//保存文档
doc.savetofile("navigationbutton.pdf", fileformat.pdf);
doc.close();
}
}