ページ数の多い PDF ファイルを読むとき、ページ番号をつけると、読む位置がわかりやすくなります。さらに、ページ番号は、印刷時にページが正しい順序で出力されているかどうかを判断する際にも役立ちます。今回は、Spire.PDF for Java を使用して、既存の PDF ドキュメントにページ番号を追加する方法を紹介します。
Spire.PDF for Java をインストールします
まず、Spire. PDF for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。
<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</artifactId>
<version>9.3.11</version>
</dependency>
</dependencies>
既存の PDF ドキュメントにページ番号を追加する
ダイナミック フィールド PdfPageNumberField、PdfPageCountField、PdfCompositeField を使用すると、PDF ドキュメントにページ番号を追加することができます。
PdfPageNumberField はページ番号の表示に、PdfPageCountField は総ページ数の表示に、PdfCompositeField は PdfPageNumberField や PdfPageCountField などの2つ以上の動的フィールドを1つのフィールドに結合するために使用されるものです。
PDF ドキュメントに1、2、3のようなページ番号を追加したいだけなら、PdfPageNumberField を使用すればよいでしょう。ページ X/Y のようなページ番号をドキュメントに追加したい場合は、PdfPageNumberField、PdfPageCountField、PdfCompositeField を使用する必要があります。
既存の PDF ドキュメントに「X/Y」のページ番号を追加する方法を説明します。
- 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 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");
}
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。