首頁  >  文章  >  Java  >  Java如何實作新增頁碼到PDF文檔

Java如何實作新增頁碼到PDF文檔

PHPz
PHPz轉載
2023-04-30 10:58:061097瀏覽

程式碼編譯環境

IntelliJ IDEA 2019(jdk 1.8.0)

PDF Jar套件:Free Spire.PDF for Java 5.1.0

#引入jar套件

導入方法1:

#手動引入。將Free Spire.PDF for Java下載到本機,解壓縮,找到lib資料夾下的Spire.PDF.jar檔。在IDEA中開啟下列介面,將本機路徑中的jar檔引入Java程式:

Java如何實作新增頁碼到PDF文檔

#匯入方法2:如果您想要透過 Maven安裝,則可以在pom.xml文件中加入以下程式碼導入JAR 檔案。

<repositories>

        <repository>

            <id>com.e-iceblue</id>

            <url>https://repo.e-iceblue.cn/repository/maven-public/</url>

        </repository>

    </repositories>

<dependencies>

    <dependency>

        <groupId>e-iceblue</groupId>

        <artifactId>spire.pdf.free</artifactId>

        <version>5.1.0</version>

    </dependency>

</dependencies>

將新增頁碼到PDF文件

以下步驟展示如何將「第X 頁(共Y 頁)」這樣的頁碼加入現有的PDF 文件中:

  • 建立PdfDocument 類別的物件。

  • 使用 PdfDocument.loadFromFile() 方法載入 PDF 文件。

  • 建立 PdfPageNumberField 類別的物件。

  • 建立 PdfPageCountField 類別的物件。

  • 建立 PdfCompositeField 類別的物件。

  • 使用 PdfCompositeField.setStringFormat() 方法為複合欄位設定文字對齊方式。

  • 循環遍歷 PDF 文件中的每一頁,然後使用 PdfCompositeField.draw() 方法在頁面的特定位置繪製複合欄位。

  • 使用 PdfDocument.saveToFile() 方法儲存結果文件。

完整程式碼

Java

import com.spire.pdf.*;
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.*;

public class addPageNumber {
    public static void main(String[] args) {

        //创建 PdfDocument 类的对象
        PdfDocument pdf = new PdfDocument();
        //载入PDF文档
        pdf.loadFromFile("九寨沟简介 .pdf");

        //创建 PdfTrueTypeFont 类的对象
        PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("华文中宋", Font.PLAIN, 10));

        //创建 PdfPageNumberField 类的对象
        PdfPageNumberField pageNumberField = new PdfPageNumberField(font, PdfBrushes.getBlack());

        //创建 PdfPageCountField 类的对象
        PdfPageCountField pageCountField = new PdfPageCountField(font, PdfBrushes.getBlack());

        //创建一个 PdfCompositeField 类的对象,将页码字段和页数字段添加到复合字段
        PdfCompositeField compositeField = new PdfCompositeField(font, PdfBrushes.getBlack(), "第{0}页/共{1}页", pageNumberField, pageCountField);

        //设置复合字段的文字格式
        compositeField.setStringFormat(new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Top));

        //循环遍历文档中的页面
        for(int i = 0; i < pdf.getPages().getCount();i ++)
        {
            PdfPageBase page = pdf.getPages().get(i);
            float x = (float) page.getSize().getWidth()/2 - 20;
            float y = (float)page.getSize().getHeight() - pdf.getPageSettings().getMargins().getBottom();
            //将复合字段描绘于每个页面上
            compositeField.draw(page.getCanvas(), x, y);
        }

        //保存结果文档
        pdf.saveToFile("添加页码.pdf");
    }
}

效果圖

Java如何實作新增頁碼到PDF文檔

以上是Java如何實作新增頁碼到PDF文檔的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除