0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

JavaでPDFのページにページ番号を付ける方法

Posted at

PDFファイルにページ番号を付加することで、コテツの位置を特定することができます。また、ページ番号を付けることで、印刷されたページの配置を容易にすることができます。この記事では、無料のFree Spire.PDF for Javaを使用して、PDF文書にページ番号を追加する方法を紹介します。

【依存関係の追加】

この方法は、無料のFree Spire.PDF for Javaが必要ですので、先にjarファイルをインポートしてください。

1. Maven

Maven を使用している場合、プロジェクトの pom.xml ファイルに以下のコードを追加することで、簡単にアプリケーションに JAR ファイルをインポートすることができます。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf.free</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>

2. 公式サイトよりJarファイルをダウンロード

まず、Free Spire.PDF for Javaの公式サイトよりzipファイルをダウンロードします。zipファイルを解凍し、libフォルダの下にあるSpire.Pdf.jarファイルを依存関係としてプロジェクトにインポートしてください。

PDFファイルへのページ番号の挿入

SpirePDF for Javaでは、ページ番号を扱う動的フィールドとして、PdfPageNumberFieldPdfPageCountFieldPdfCompositeFieldの3つがあります。
PdfPageNumberField は、ページ番号を表示するために使用します。PdfPageCountField は、ドキュメントのページ数を表示するためのものです。PdfCompositeField は、PdfPageNumberFieldとPdfPageCountFieldを組み合わせたような複合ファイルを表示するために使用されます。

ページ番号には多くのスタイルがあります。あなただけのページ番号をデザインできます。以下は、「 / 」のページ番号を付ける例です。

  • PdfDocument のオブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドを使用してPDFファイルを読み込みます。
  • ページ番号を表示するための PdfPageNumberField のオブジェクトを作成します。
  • ページ数を表示するための PdfPageCountField のオブジェクトを作成します。
  • カスタムページ番号を表示するために、PdfCompositeField のオブジェクトを作成します。
  • PdfCompositeField.setStringFormat() メソッドを使用して、複合フィールドの文字書式を設定します。
  • ドキュメント内のページをループして、ページ番号を追加します。
  • 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 addPageNumberToPDF {
    public static void main(String[] args) {

        //PdfDocumentのインスタンスを作成する
        PdfDocument pdf = new PdfDocument();

        //PDFドキュメントを読み込む
        pdf.loadFromFile("C:偶然は本当にあるのか?.pdf");

        //PdfTrueTypeFontインスタンスを作成する
        PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Yu Gothic UI", 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");
    }
}

PDFファイルへのページ番号の挿入

他のスタイルのページ番号の追加も同様の操作で、合成フィールドのテキストを希望のスタイルにフォーマットするだけです。 さらに、Free Spire.PDF for Javaは、あなたのニーズのほとんどを満たすために、他の多くのPDFドキュメント操作を実行することもできます。 Spire.PDF for Java のチュートリアルページで詳細を確認することができます。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?