LoginSignup
2
0

More than 3 years have passed since last update.

Javaが既存のPDFドキュメントにページ番号を追加する

Posted at

日常業務では、PDF文書の読み取り、検索、管理を容易にするために、PDF文書にページ番号を追加する必要があることがよくあります。 そこで、Free Spire.PDF for Javaを使用して、JavaプログラムでPDF文書にページ番号をすばやく追加する方法を紹介します。

まず、参照用に結果グラフを配置します:
page numbers.png

基本的な手順:
1. Free Spire.PDF for Javaパッケージをダウンロードして解凍します。
2. libフォルダーのSpire.Pdf.jarパッケージを依存関係としてJavaアプリケーションにインポートします。(Mavenリポジトリから直接JARパッケージをインストールすることもできます(pom.xmlファイルを構成するコードについては、以下を参照してください))。。
3. Javaアプリケーションで、新しいJava Class(ここではAddPageNumbersという名前)を作成し、対応するJavaコードを入力して実行します。

pom.xmlファイルを構成します:

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

Javaコード例:

import com.spire.pdf.PdfDocument;
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.*;
import java.awt.geom.Dimension2D;
import java.awt.geom.Rectangle2D;

public class AddPageNumbers {

    public static void main(String[] args) {

        //PDFドキュメントをロード
        PdfDocument doc = new PdfDocument();
        doc.loadFromFile("file1.pdf");

        //フォントを作成
        PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("宋体", Font.PLAIN, 10),true);

        //ページサイズを取得する
        Dimension2D pageSize = doc.getPages().get(0).getSize();

        //y座標を初期化する
        float y = (float) pageSize.getHeight() - 40;

        //ドキュメントのページを反復処理します
        for (int i = 0; i < doc.getPages().getCount(); i++) {

            //ページ番号フィールドの初期化
            PdfPageNumberField number = new PdfPageNumberField();

            //総ページ数フィールドを初期化する
            PdfPageCountField count = new PdfPageCountField();

            //複合ドメインを作成する
            PdfCompositeField compositeField = new PdfCompositeField(font, PdfBrushes.getBlack(), "ページ{0}合計{1}", number, count);

            //设複合フィールドにテキストの配置を設定する
            compositeField.setStringFormat(new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Top));

            //文字サイズの測定
            Dimension2D textSize = font.measureString(compositeField.getText());

            //PDFページの複合フィールドの位置とサイズを設定する
            compositeField.setBounds(new Rectangle2D.Float(((float) pageSize.getWidth() - (float) textSize.getWidth())/2, y, (float) textSize.getWidth(), (float) textSize.getHeight()));

            //複合フィールドをPDFページに追加する
            compositeField.draw(doc.getPages().get(i).getCanvas());
        }

        //ドキュメントを保存します
        doc.saveToFile("Numbers.pdf");
    }
}
2
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
2
0