在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("宋体", 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();
    }
}
 



 
					



