Java 添加頁面跳轉按鈕到PDF文檔

概述

當咱們在查閱含有大量頁面的PDF時,可經過在頁面上添加跳轉按鈕來實現頁面轉換,以達到節約時間,提升效率的目的。本文將經過Java程序來演示如何給PDF文檔添加頁面跳轉按鈕。一般來講跳轉可分爲兩種狀況:一是跳轉至特殊頁面(首頁、最後一頁、上一頁、下一頁);二是跳轉至指定頁面(例如:第四頁)。html

測試環境配置:

本文代碼示例使用到的工具是Free Spire.PDF for Java,可經過官網下載獲取。解壓後將lib文件夾下的Spire.Pdf.jar手動導入IDEA便可。java

另外,可也經過Maven倉庫來導入產品及相關依賴。建立一個Maven程序,在pom.xml文件中配置Maven倉庫路徑,並指定Spire.PDF for Java的Maven依賴。maven

<repositories>
<repository>
<id>com.e-iceblue</id>
<url>http://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.pdf.free</artifactId>
<version>2.6.3</version>
</dependency>
</dependencies>

配置完成後,只需點擊「Import Changes」便可導入JAR包。工具

參考代碼

一、跳轉至特殊頁面(首頁、最後一頁、上一頁、下一頁)
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.actions.PdfActionDestination;
import com.spire.pdf.actions.PdfNamedAction;
import com.spire.pdf.fields.PdfButtonField;
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:UsersTest1DesktopSample.pdf");
 //獲取最後一頁
 PdfPageBase lastPage = doc.getPages().get(doc.getPages().getCount() - 1);
 //容許在PDF中建立窗體
 doc.setAllowCreateForm(true);
 //定義float變量來肯定按鈕的位置及大小
 float x = 90;
 float y = 450;
 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, "button");
 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.red));//設置提示語字體顏色
 btn_1.setBorderColor(new PdfRGBColor(Color.blue));//設置按鈕邊框顏色
 //建立PdfNamedAction實例,在傳入的參數中選擇上一頁、下一頁、首頁或最後一頁 PdfNamedAction namedAction = new PdfNamedAction(PdfActionDestination.FirstPage);
btn_1.getActions().setMouseDown(namedAction);//應用動做
doc.getForm().getFields().add(btn_1);//添加按鈕至文檔
 //保存文檔 doc.saveToFile("output/NavigationButton.pdf", FileFormat.PDF);
    doc.close();
    }
}

注:此處的PdfNamedAction類支持四種按鈕跳轉動做。分別可實現頁面跳轉至上一頁、首頁、下一頁和最後一頁。
image測試

添加效果:字體

image

二、跳轉至指定頁面(如下代碼演示跳轉至文檔第四頁)
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.actions.PdfGoToAction;
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 AddNavigationButton2 {
    public static void main(String[] args) throws Exception {
 //建立PdfDocument對象,加載PDF文檔
 PdfDocument doc = new PdfDocument();
 doc.loadFromFile("C:UsersTest1DesktopSample.pdf");
 //獲取最後一頁
 PdfPageBase lastPage = doc.getPages().get(doc.getPages().getCount() - 1);
 //容許在PDF中建立窗體
 doc.setAllowCreateForm(true);
 //定義float變量來肯定按鈕的位置及大小
 float x = 90;
 float y = 450;
 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, "button");
Rectangle2D.Float rect = new Rectangle2D.Float(x, y + height + 5, width, height);
 btn_1.setBounds(rect);//設置按鈕大小及位置
 btn_1.setText("跳轉至第四頁");//設置按鈕提示語
 btn_1.setFont(font);//設置字體
 btn_1.setBackColor(new PdfRGBColor(Color.GREEN));//設置背景顏色
 btn_1.setForeColor(new PdfRGBColor(Color.red));//設置提示語字體顏色
 btn_1.setBorderColor(new PdfRGBColor(Color.blue));//設置按鈕邊框顏色
 //建立PdfNamedAction實例,並指定跳轉頁碼 PdfGoToAction goToAction = new PdfGoToAction(new PdfDestination(doc.getPages().get(3)));
btn_1.getActions().setMouseDown(goToAction);//應用動做
doc.getForm().getFields().add(btn_1);//添加按鈕至文檔
 //保存文檔 
doc.saveToFile("output/result.pdf", FileFormat.PDF);
   doc.close();
    }
}

添加效果:url

image

(本文完)spa

相關文章
相關標籤/搜索