在PDF中可通过按钮来添加动作跳转到指定页面,包括跳转到文档首页,文档末页,跳转到上一页,下一页,或跳转到指定页面等。下面将通过java代码来演示如何添加具有以上几种功能的按钮。
使用工具:
-
<李>免费的尖顶。Java PDF(免费版)李>
<李> IntelliJ IDEA李>
Jar文件获取及导入:
方法1:通过官网下载jar文件包。下载后,解压文件,并将自由文件夹下的Spire.Pdf.jar文件导入java程序。参考如下导入效果:
方法2:可通过maven仓库安装导入。
Java代码示例
进口com.spire.pdf。*; 进口com.spire.pdf.actions。*; 进口com.spire.pdf.fields.PdfButtonField; 进口com.spire.pdf.general.PdfDestination; 进口com.spire.pdf.graphics.PdfRGBColor; 进口com.spire.pdf.graphics.PdfTrueTypeFont; 进口java.awt。*; 进口java.awt.geom.Rectangle2D; 公共类按钮{ 公共静态void main (String [] args){抛出异常//创建文档,添加页面 PdfDocument pdf=new PdfDocument (); pdf.loadFromFile (“test.pdf”);//分别获取第一页,第二页及最后一页 PdfPageBase page0=pdf.getPages () . get (0); PdfPageBase page1=pdf.getPages () . get (1); 所以page2 PdfPageBase=pdf.getPages () . get (pdf.getPages () .getCount () 1);//设置允许创建窗体 pdf.setAllowCreateForm(真正的);//定义浮动变量来确定按钮的位置及大小 浮动x=480; 浮动y=750; 浮动宽度=70; 浮子高度=23;//创建truetype字体 PdfTrueTypeFont字体=new PdfTrueTypeFont(新字体(“楷体”,字体。平原,9),真正的);//创建按钮0跳转到最后一页 PdfButtonField btn_0=new PdfButtonField (page0 btn_0); Rectangle2D。矩形=new Rectangle2D浮动。浮动(x, y + 15,宽度、高度); btn_0.setBounds(矩形); btn_0.setFont(字体); btn_0.setText(“跳转至最后一页”); btn_0。setBackColor(新PdfRGBColor (245245245)); btn_0。setForeColor(新PdfRGBColor (Color.black)); btn_0。setBorderColor(新PdfRGBColor (Color.white)); PdfNamedAction namedAction=new PdfNamedAction (PdfActionDestination.LastPage); btn_0.getActions () .setMouseDown (namedAction); 阀门.getFields pdf.getForm () () (btn_0);//创建按钮1跳转到上一页 page1 PdfButtonField btn_1=new PdfButtonField (,“btn_1”); 新Rectangle2D矩形=8《?x, y,宽度、高度); btn_1.setBounds(矩形); btn_1.setFont(字体); btn_1.setText(“上一页”); btn_1。setBackColor(新PdfRGBColor (Color.white)); btn_1。setForeColor(新PdfRGBColor (Color.black)); btn_1。setBorderColor(新PdfRGBColor (245245245)); namedAction=new PdfNamedAction (PdfActionDestination.PrevPage); btn_1.getActions () .setMouseDown (namedAction); 阀门.getFields pdf.getForm () () (btn_1);//创建按钮2跳转下一页 page1 PdfButtonField btn_2=new PdfButtonField (,“btn_2”); 新Rectangle2D矩形=8《?x, y +身高+ 5、宽度、高度); btn_2.setBounds(矩形); btn_2.setFont(字体); btn_2.setText(“下一页”); btn_2。setBackColor(新PdfRGBColor (245245245)); btn_2。setForeColor(新PdfRGBColor (Color.black)); btn_2。setBorderColor(新PdfRGBColor (Color.white)); namedAction=new PdfNamedAction (PdfActionDestination.NextPage); btn_2.getActions () .setMouseDown (namedAction); 阀门.getFields pdf.getForm () () (btn_2);//创建按钮3跳转到首页 所以page2 PdfButtonField btn_3=new PdfButtonField (,“btn_3”); 新Rectangle2D矩形=8《?x, 60,宽度、高度); btn_3.setBounds(矩形); btn_3.setFont(字体); btn_3.setText(“返回首页”); btn_3。setBackColor(新PdfRGBColor (245245245)); btn_3。setForeColor(新PdfRGBColor (Color.black)); btn_3。setBorderColor(新PdfRGBColor (Color.white)); namedAction=new PdfNamedAction (PdfActionDestination.FirstPage); btn_3.getActions () .setMouseDown (namedAction); 阀门.getFields pdf.getForm () () (btn_3);//创建按钮4跳转到指定页 所以page2 PdfButtonField btn_4=new PdfButtonField (,“btn_4”); 新Rectangle2D矩形=8《?x, 90,宽度、高度); btn_4.setBounds(矩形); btn_4.setText(“跳转至第二页”); btn_4.setFont(字体); btn_4。setBackColor(新PdfRGBColor (Color.white)); btn_4。setForeColor(新PdfRGBColor (Color.black)); btn_4。setBorderColor(新PdfRGBColor (245245245)); PdfGoToAction goToAction=new PdfGoToAction(新PdfDestination (pdf.getPages () . get (1))); btn_4.getActions () .setMouseDown (goToAction); 阀门.getFields pdf.getForm () () (btn_4);//保存文档 pdf.saveToFile (“NavigationButton。pdf”, FileFormat.PDF); pdf.close (); } }Java在PDF中添加页面跳转按钮功能(代码演示)