チュートリアル

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

チュートリアル»Java»Spire.PDF for Java»文書操作»Java:PDF ドキュメントを作成する方法
2023-06-09

Java:PDF ドキュメントを作成する方法

コードによる 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.5.6</version>
    </dependency>
</dependencies>

予備知識

Spire.PDF for Java のページ(PdfPageBase クラスで表される)は、クライアント領域と周囲のマージンで構成されています。コンテンツ領域は、ユーザーがさまざまなコンテンツを記述するための領域であり、ページ余白は通常空白のエッジになります。

下図に示すように、ページ上の座標系の原点はクライアント領域の左上隅にあり、x 軸は水平に右に伸び、y 軸は垂直に下に伸びています。クライアント領域に追加するすべての要素は、指定された座標に基づいている必要があります。

Java:PDF ドキュメントを作成する方法

さらに、次の表に重要なクラスと方法を示します。これは、以下のコードを理解しやすくするのに役立ちます。

クラスと 方法 説明
PdfDocument クラス PDF ドキュメント モデルを表します。
PdfPageBase クラス PDF ドキュメント内のページを表します。
PdfSolidBrush クラス オブジェクトを単色で塗りつぶすブラシを表します。
PdfTrueTypeFont クラス True Typeフォントを表します。
PdfStringFormat クラス アライメント、文字間隔、インデントなどのテキスト書式情報を表します。
PdfTextWidget クラス 複数のページにまたがる機能を持つテキスト領域を表します。
PdfTextLayout クラス テキストのレイアウト情報を表します。
PdfDocument.getPages().add() メソッド PDF ドキュメントにページを追加します。
PdfPageBase.getCanvas().drawString() メソッド 指定したフォントとブラシオブジェクトを使用して、ページ上の指定した位置に文字列を描画します。
PdfTextWidget.draw() メソッド テキストウィジェットをページの指定した位置に描画します。
PdfDocument.save() メソッド ドキュメントを PDF ファイルに保存します。

Java で PDF ドキュメントを作成する

Spire.PDF for Java では、PDF ドキュメントにさまざまな要素を追加できます。この記事では、プレーンテキストの PDF ドキュメントを作成する方法について説明します。詳細な手順は次のとおりです。

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.getPages().add() メソッドを使用してページを追加します。
  • ブラシとフォントのオブジェクトを作成します。
  • PdfPageBase.getCanvas().drawString() メソッドを使用して、ページの指定された座標で文字列を描画します。
  • テキストを保存する PdfTextWidget オブジェクトを作成します。
  • PdfTextWidget.draw() メソッドを使用して、ページの指定された位置にテキストのウィジェットを描画します
  • PdfDocument.save() メソッドを使用してドキュメントを PDF ファイルに保存します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.PdfPageSize;
import com.spire.pdf.graphics.*;

import java.awt.*;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.io.*;

public class CreatePdfDocument {

    public static void main(String[] args) throws IOException {

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

        //ページを追加する
        PdfPageBase page = doc.getPages().add(PdfPageSize.A4, new PdfMargins(35f));

        //タイトルのテキストの指定
        String titleText = "ライセンス契約";

        //Solid Brusheを作成する
        PdfSolidBrush titleBrush = new PdfSolidBrush(new PdfRGBColor(Color.BLUE));
        PdfSolidBrush paraBrush = new PdfSolidBrush(new PdfRGBColor(Color.BLACK));

        //True Typeフォントを作成する
        PdfTrueTypeFont titleFont = new PdfTrueTypeFont(new Font("Yu Mincho",Font.BOLD,18));
        PdfTrueTypeFont paraFont = new PdfTrueTypeFont(new Font("Yu Mincho",Font.PLAIN,12));

        //PdfStringFormatクラスによるテキストの配置を設定する
        PdfStringFormat format = new PdfStringFormat();
        format.setAlignment(PdfTextAlignment.Center);

        //ページにタイトルを描画する
        page.getCanvas().drawString(titleText, titleFont, titleBrush, new Point2D.Float((float)page.getClientSize().getWidth()/2, 20),format);

        //.txtファイルから段落テキストを取得する
        String paraText = readFileToString("content.txt");

        //段落内容を保存するPdfTextWidgetオブジェクトを作成する
        PdfTextWidget widget = new PdfTextWidget(paraText, paraFont, paraBrush);

        //段落の内容を配置する長方形を作成する
        Rectangle2D.Float rect = new Rectangle2D.Float(0, 50, (float)page.getClientSize().getWidth(),(float)page.getClientSize().getHeight());

        //PdfLayoutTypeをPaginateに設定して内容を自動的にページング
        PdfTextLayout layout = new PdfTextLayout();
        layout.setLayout(PdfLayoutType.Paginate);

        //ページに段落テキストを描画する
        widget.draw(page, rect, layout);

        //ファイルに保存する
        doc.saveToFile("output/CreatePdfDocument.pdf");
        doc.dispose();

    }

    //.txtファイルを文字列に変換する
    private static String readFileToString(String filepath) throws FileNotFoundException, IOException {

        StringBuilder sb = new StringBuilder();
        String s ="";
        BufferedReader br = new BufferedReader(new FileReader(filepath));
        while( (s = br.readLine()) != null) {
            sb.append(s + "\n");
        }
        br.close();
        String str = sb.toString();
        return str;
    }
}

Java:PDF ドキュメントを作成する方法

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

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

Read 330 times