Javaを利用して既存のPDFドキュメントにページ番号を追加する方法

PDFドキュメントは世界中に広く使われていて、毎日無数のPDFドキュメントが人々に閲覧したり、処理したりしています。しかし一部のPDFドキュメントにはページ番号がないため、ユーザーが読むのは非常に不便です。この記事では、無料のPDF JavaコンポーネントであるFree Spire.PDF for Javaを使用して既存のPDFドキュメントにページ番号を追加する方法を紹介します。

 

jarパッケージをインポートします

 

まず、Free Spire.PDF for Javaコンポーネントパッケージをダウンロードして解凍し、次の2つの.jarファイルをlibフォルダーからJavaアプリケーションに引用します。

 

Spire.Pdf.jar

Spire.Common.jar

処理するドキュメントは次のとおりです。

f:id:uha_noki:20211231104827p:plain

Javaコード一覧

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

import java.awt.*;

public class AddPageNumber {
    public static void main(String[] args)
    {
        //PDFをロードする
       
PdfDocument pdf = new PdfDocument();
        pdf.loadFromFile("C:\\Users\\Administrator\\Desktop\\Input.pdf");

        //マージンを設定する
       
PdfUnitConvertor unitCvtr = new PdfUnitConvertor();
        PdfMargins margin = new PdfMargins();
        margin.setTop(unitCvtr.convertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point));
        margin.setBottom(unitCvtr.convertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point));
        margin.setLeft(unitCvtr.convertUnits(3.17f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point));
        margin.setRight(unitCvtr.convertUnits(3.17f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point));

        //AddPageNumberメソッドを呼び出して、ページ番号を追加する
       
AddPageNumber(pdf, margin);

        //ドキュメントを保存する
       
pdf.saveToFile("AddPageNumber.pdf");
    }

    /**
     *
     * @param
document
    
* PDFドキュメント
    
* @param margin
    
* PDFドキュメントページの余白
    
*/
   
public static void AddPageNumber(PdfDocument document, PdfMargins margin)
    {
        int pageCount = document.getPages().getCount();
        for(int i = 0; i < pageCount; i++)
        {
            PdfBrush brush = PdfBrushes.getBlack();
            PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS",Font.PLAIN,14),true);
            PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Left);
            int x = (int)document.getPages().get(i).getCanvas().getClientSize().getWidth() / 2;
            int y = (int)(document.getPages().get(i).getCanvas().getClientSize().getHeight() - margin.getBottom());
            Rectangle bounds = new Rectangle(x,y, 50, 20);
            PdfPageNumberField field = new PdfPageNumberField();
            field.setFont(font);;
            field.setBrush(brush);
            field.setStringFormat(format);
            field.setBounds(bounds);
            field.draw(document.getPages().get(i).getCanvas());
        }
    }
}

コードを実行し、生成されたドキュメントを開くと、結果は次のようになります:

f:id:uha_noki:20211231104856p:plain

以上は今回のPDFドキュメントにページ番号を追加する方法でした、最後まで読んでいただきありがとうございます。