Java 給PDF文檔添加頁碼


日常工作中,為了方便閱讀、檢索與PDF文檔,我們常常需要對其進行頁碼添加 那么接下來就分享一個使用免費的Free Spire.PDF for JavaJava程序中快速為PDF文檔添加頁碼的方法。

 

首先放一張效果圖供大家參考:

 

 

基本步驟

  1. 下載Free Spire.PDF for Java包並解壓縮
  2. lib文件夾下Spire.Pdf.jar包作為依賴項導入Java應用程序中或者通過Maven倉庫安裝JAR包(配置pom.xml文件的代碼見下文
  3. Java應用程序中新建一個Java Class(此處我命名為AddPageNumbers), 然后輸入相應的Java代碼並運行

 

配置pom.xml文件

 

<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>

 

Java代碼

 

import com.spire.pdf.PdfDocument;
import com.spire.pdf.automaticfields.PdfCompositeField;
import com.spire.pdf.automaticfields.PdfPageCountField;
import com.spire.pdf.automaticfields.PdfPageNumberField;
import com.spire.pdf.graphics.*;

import java.awt.*;
import java.awt.geom.Dimension2D;
import java.awt.geom.Rectangle2D;

public class AddPageNumbers {

    public static void main(String[] args) {

        //加載PDF文檔
        PdfDocument pdf = new PdfDocument();
        pdf.loadFromFile("sample.pdf");

        //創建字體
        PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("宋體", Font.PLAIN, 10),true);

        //獲取頁面尺寸
        Dimension2D pageSize = pdf.getPages().get(0).getSize();

        //初始化y坐標
        float y = (float) pageSize.getHeight() - 40;

        //遍歷文檔中的頁
        for (int i = 0; i < pdf.getPages().getCount(); i++) {

            //初始化頁碼域
            PdfPageNumberField number = new PdfPageNumberField();

            //初始化總頁數域
            PdfPageCountField count = new PdfPageCountField();

            //創建復合域
            PdfCompositeField compositeField = new PdfCompositeField(font, PdfBrushes.getBlack(), "第{0}頁 共{1}頁", number, count);

            //設置復合域內文字對齊方式
            compositeField.setStringFormat(new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Top));

            //測量文字大小
            Dimension2D textSize = font.measureString(compositeField.getText());

            //設置復合域的在PDF頁面上的位置及大小
            compositeField.setBounds(new Rectangle2D.Float(((float) pageSize.getWidth() - (float) textSize.getWidth())/2, y, (float) textSize.getWidth(), (float) textSize.getHeight()));

            //將復合域添加到PDF頁面
            compositeField.draw(pdf.getPages().get(i).getCanvas());
        }

        //保存為另外一個文檔
        pdf.saveToFile("AddPageNumbers.pdf");
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM