チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»pdfjavaheaderandfooter

Displaying items by tag: pdfjavaheaderandfooter

PDF 文書にヘッダーを追加することは、文書のタイトル、作成者、ページ番号などの重要な情報を表示する便利な方法です。ヘッダーは、文書の各ページの上部に表示されるテキストまたはグラフィックのセクションで、必要に応じてカスタマイズできます。この機能は、レポートや契約書など、一貫した書式が求められる専門的な文書を作成する際に特に役立ちます。この記事では、Spire.PDF for Java を使用して、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>8.11.0</version>
    </dependency>
</dependencies>

背景知識

Spire.PDF for Java によって既存の PDF ドキュメントが操作されると、座標系の原点はページの左上隅に配置され、x軸は右に、y軸は下に延びています。ページにヘッダーを追加するとは、テキスト、画像、自動フィールド、形状などのコンテンツを、ページの上部の空白領域の指定された場所に追加することを意味します。

Java:既存の PDF 文書にヘッダーを追加する方法

空白領域が追加したいコンテンツを収容するのに十分でない場合は、PDF ページの余白を増やすことができます。

Java で既存の PDF 文書にヘッダーを追加する

Spire.PDF for Java では、PdfCanvas.drawString() メソッド、PdfCanvas.drawImage() メソッド、PdfCanvas.drawLine() メソッドやその他の類似メソッドを使用して、PDF ページ上にテキストや画像、図形を描画することができます。ヘッダーにページ番号、セクション、日付などの動的な情報を追加するには、自動フィールドに頼る必要があります。Spire.PDF for Java は、PdfPageNumberField クラス、PdfSectionNumberField クラス、PdfCreationDateField クラスなどを提供し、これらのデータの動的な追加を実現します。

以下は、Spire.PDF for Java を使用して、テキスト、画像、日付、行からなるヘッダーを PDF 文書に追加する手順です。

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドを使って PDF ドキュメントを読み込みます。
  • テキストや図形を描画するために使用するフォント、ペン、ブラシオブジェクトを作成します。
  • PdfPageBase.getCanvas().drawString() メソッドを使用して、ページの上部の空白領域にテキストを描画します。
  • PdfPageBase.getCanvas().drawLine() メソッドを使用して、ページの上部の空白領域に線を描画します。
  • PdfImage.fromFile() メソッドを使用して画像を読み込みます。
  • PdfPageBase.getCanvas().drawImage() メソッドを使用して、ページの上部の空白領域に画像を描画します。
  • ドキュメントの作成時刻を反映する PdfCreationDateField オブジェクトを作成します。
  • PdfCreationDateField.draw() メソッドを使用して、ページの一番上の空白領域に作成時刻を描画します。
  • PdfDocument.saveToFile() メソッドを使用してドキュメントを保存します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.automaticfields.PdfCompositeField;
import com.spire.pdf.automaticfields.PdfCreationDateField;
import com.spire.pdf.graphics.*;

import java.awt.*;

public class AddHeaderToPdf {

    public static void main(String[] args) {

        //PdfDocumentオブジェクトを作成します
        PdfDocument doc = new PdfDocument();

        //PDFファイルをロードします
        doc.loadFromFile("サンプル.pdf");

        //ヘッダー用の画像をロードします
        PdfImage headerImage = PdfImage.fromFile("Logo.png");

        //画像の幅をピクセル単位で取得します
        float width = headerImage.getWidth();

        //ピクセルをポイントに変換します
        PdfUnitConvertor unitCvtr = new PdfUnitConvertor();
        float pointWidth = unitCvtr.convertUnits(width, PdfGraphicsUnit.Pixel, PdfGraphicsUnit.Point);

        //ヘッダーのテキストを指定します
        String headerText = "E-iceblue Tech\nwww.e-iceblue.com";

        //TrueTypeフォントを作成します
        PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Yu Gothic", Font.BOLD, 12),true);

        //ブラシを作成します
        PdfBrush brush = PdfBrushes.getPurple();

        //ペンを作成します
        PdfPen pen = new PdfPen(brush, 1.0f);

        //作成日時フィールドを作成します
        PdfCreationDateField creationDateField = new PdfCreationDateField(font, brush);
        creationDateField.setDateFormatString("yyyy-MM-dd");

        //静的な文字列と日付フィールドを組み合わせるための複合フィールドを作成します
        PdfCompositeField compositeField = new PdfCompositeField(font, brush, "作成日時: {0}", creationDateField);
        compositeField.setLocation(new Point(55, 48));

        //ドキュメント内のページをループします
        for (int i = 0; i < doc.getPages().getCount(); i++)
        {
            //特定のページを取得します
            PdfPageBase page = doc.getPages().get(i);

            //画像を上部の空白領域に描画します
            page.getCanvas().drawImage(headerImage, page.getActualSize().getWidth() - pointWidth - 55, 20);

            //テキストを上部の空白領域に描画します
            page.getCanvas().drawString(headerText, font, brush, 55, 10);

            //上部の空白領域に線を描画します
            page.getCanvas().drawLine(pen, new Point(55, 70), new Point((int)page.getActualSize().getWidth() - 55, 70));

            //複合フィールドを上部の空白領域に描画します
            compositeField.draw(page.getCanvas());
        }

        //ファイルに保存します
        doc.saveToFile("output/PDFにヘッダーを挿入.pdf");
        doc.dispose();
    }
}

Java:既存の PDF 文書にヘッダーを追加する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Tagged under

ヘッダーは、多くの場合、ドキュメントの追加情報を表示するために使用されます。時間、グラフィックス、会社のロゴ、ドキュメントのタイトル、ファイル名、作成者名などを挿入できます。この記事では、Spire.PDF for Java を使用して 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.cn/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf</artifactId>
        <version>5.2.3</version>
    </dependency>
</dependencies>

ヘッダーを追加する

Java コード一覧

  • Java
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import java.awt.*;
import java.awt.geom.*;

public class addDifferentHeaders {
    public static void main(String[] args) {
        String output = "output/addDifferentHeaders.pdf";

        //サンプルPDFドキュメントをロードする
        PdfDocument doc = new PdfDocument();
        doc.loadFromFile("Sample.pdf");
        String header1 = "Add header by Spire.PDF";
        String header2 = "Different header";

        //スタイルを定義する
        PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial",  Font.BOLD,12));
        PdfBrush brush= PdfBrushes.getBlue();
        Rectangle2D rect = new Rectangle2D.Float();
        Dimension2D dimension2D = new Dimension();
        dimension2D.setSize(doc.getPageSettings().getSize().getWidth(),50f);
        rect.setFrame(new Point2D.Float(0, 20), dimension2D);
        PdfStringFormat format=new PdfStringFormat();
        format.setAlignment(PdfTextAlignment.Center);
        //最初のページにヘッダーを追加する
        doc.getPages().get(0).getCanvas().drawString(header1,font,brush,rect,format);

        //2ページ目のヘッダーを追加する
        format.setAlignment( PdfTextAlignment.Left);
        doc.getPages().get(1).getCanvas().drawString(header2, font, brush, rect, format);

        //ドキュメントを保存する
        doc.saveToFile(output, FileFormat.PDF);
    }
}

スクリーンショット一覧

ヘッダーを追加した PDF ドキュメント

Java で PDF に複数のヘッダーを追加する方法

Java で PDF に複数のヘッダーを追加する方法

今回の Java を使用して PDF に複数のヘッダーを追加する方法は以上でした。最後まで読んでいただきありがとうございました。

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30日間有効な一時ライセンスを取得してください。

Tagged under