0
0

More than 1 year has passed since last update.

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

Posted at

背景

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
処理するドキュメントは次のとおりです。
01.png

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());
        }
    }
}

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

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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0