ベクトルグラフィックをPDFファイルに追加することは、レポート、請求書、インタラクティブ文書を生成する際の一般的な要件です。Conholdate.Total for Javaは、サーバーサイドでのPDF操作を簡素化する強力なSDKです。このガイドでは、Graphオブジェクトを使用してPDFに矩形、楕円、線を挿入し、その外観を設定し、パフォーマンス上の考慮点を扱う方法を、明確なJavaコード例とともに学びます。

JavaでPDFにシェイプを追加する手順

  1. Mavenリポジトリと依存関係の追加 - Conholdate Mavenリポジトリと conholdate-total 依存関係を pom.xml に含めます。これにより、DocumentPageGraph などの SDK クラスが利用可能になります。
    <repositories>
        <repository>
            <id>conholdate-repo</id>
            <name>Conholdate Maven Repository</name>
            <url>https://repository.conholdate.com/repo/</url>
        </repository>
    </repositories>
    
  1. PDF ドキュメントとページの作成 - Document のインスタンスを作成し、そのページコレクションにページを追加します。クラスは API リファレンス に記載されています。
// Create Document instance
Document doc = new Document();
// Add page to pages collection of PDF file
com.aspose.pdf.Page page = doc.getPages().add();
  1. シェイプ オブジェクトの作成 - まず Graph オブジェクトを作成し、矩形、楕円、または線をインスタンス化してその shapes コレクションに追加します。各シェイプの GraphInfo を通じて位置、サイズ、視覚属性を設定します。
// Create Graph instance
com.aspose.pdf.drawing.Graph graph = new com.aspose.pdf.drawing.Graph(100, 600);

// Rectangle
com.aspose.pdf.drawing.Rectangle rect = new com.aspose.pdf.drawing.Rectangle(100, 100, 170, 120);
graph.getShapes().add(rect);

// Ellipse
com.aspose.pdf.drawing.Ellipse ellipse = new com.aspose.pdf.drawing.Ellipse(300, 150, 150, 100);
ellipse.getGraphInfo().setColor(com.aspose.pdf.Color.getGreen());
ellipse.getGraphInfo().setLineWidth(1.5f);
graph.getShapes().add(ellipse);

// Line
com.aspose.pdf.drawing.Line line = new com.aspose.pdf.drawing.Line((new float[]{100, 300, 400, 300}));
line.getGraphInfo().setColor(com.aspose.pdf.Color.getRed());
line.getGraphInfo().setLineWidth(3);
graph.getShapes().add(line);
  1. ページにシェイプを追加 - 個々のシェイプは Graph オブジェクトのシェイプコレクション内にあります。Graph 自体をページの段落コレクションに追加すると、含まれるすべてのシェイプがそのページに描画されます。
// Add graph object to paragraphs collection of page instance
page.getParagraphs().add(graph);
  1. 更新された PDF を保存 - グラフ(すべてのシェイプを含む)がページに追加されたら、ドキュメントを新しいファイルに保存します。
// Save PDF file
doc.save("Shapes.pdf");

JavaでPDFにシェイプを追加する - 完全なコード例

以下の例は、すべての手順を1つの実行可能なプログラムにまとめたものです。

import com.aspose.pdf.Document;
import com.aspose.pdf.Color;

public class AddShapesDemo {
    public static void main(String[] args) throws Exception {
        // Create Document instance
        Document doc = new Document();
        // Add page to pages collection of PDF file
        com.aspose.pdf.Page page = doc.getPages().add();

// Create Graph instance
        com.aspose.pdf.drawing.Graph graph = new com.aspose.pdf.drawing.Graph(100, 600);

// Create Rectangle instance
        com.aspose.pdf.drawing.Rectangle rect = new com.aspose.pdf.drawing.Rectangle(100, 100, 170, 120);
        // Add rectangle object to shapes collection of Graph object
        graph.getShapes().add(rect);

// Create ellipse
        com.aspose.pdf.drawing.Ellipse ellipse = new com.aspose.pdf.drawing.Ellipse(300, 150, 150, 100);
        ellipse.getGraphInfo().setColor(com.aspose.pdf.Color.getGreen());
        ellipse.getGraphInfo().setLineWidth(1.5f);
        // Add ellipse object to shapes collection of Graph object
        graph.getShapes().add(ellipse);

// Create line
        com.aspose.pdf.drawing.Line line = new com.aspose.pdf.drawing.Line((new float[]{100, 300, 400, 300}));
        line.getGraphInfo().setColor(com.aspose.pdf.Color.getRed());
        line.getGraphInfo().setLineWidth(3);
        // Add line object to shapes collection of Graph object
        graph.getShapes().add(line);

// Add graph object to paragraphs collection of page instance
        page.getParagraphs().add(graph);

// Save PDF file
        doc.save("Shapes.pdf");
    }
}

注意: このコード例は基本機能を示しています。プロジェクトで使用する前に、出力ファイルパス(Shapes.pdf)を実際の対象場所に合わせて更新し、すべての必須依存関係が正しくインストールされていることを確認し、開発環境で徹底的にテストしてください。問題が発生した場合は、公式ドキュメントをご参照いただくか、サポートチームにお問い合わせください。

Installation and Setup in Java

Conholdate.Total for Java の使用を開始するには、公式サイトから最新リリースをダウンロードし、前述の Maven 依存関係を追加します。SDK は任意の Java 8 以上のランタイムで動作し、追加のネイティブライブラリは必要ありません。

Key Features and Overview

Add Shapes to PDF in Java with Conholdate.Total

Conholdate.Total for Java は、PDF コンテンツの作成および編集のための統一された API を提供します。シェイプ描画機能は Graph オブジェクトとそのシェイプコレクションを通じてベクターグラフィックスで動作し、追加された要素はズームレベルに関係なく鮮明に保たれます。基本的なプリミティブ(矩形、楕円、線)を描画でき、複数のプリミティブを単一の Graph 内で組み合わせてからページに配置できます。

Conholdate.Total Features That Matter For This Task

  • クロスプラットフォーム互換性: Windows、Linux、macOS サーバーで動作します。
  • 高性能レンダリング: 形状はネイティブ PDF コンテンツを生成するのと同じエンジンでレンダリングされ、ラスタライズを回避します。
  • 外観の完全な制御: 各形状のストロークカラーと線幅は GraphInfo オブジェクトを介して設定できます。
  • グループ化されたグラフィック: 複数の形状を単一の Graph オブジェクトに追加し、ページ上で一緒に配置および管理できるようにします。

最適なレンダリングのためのシェイププロパティの構成

シェイプを追加する際は、目的のビジュアル結果を得るために以下のプロパティを検討してください:

  • 位置とサイズ: Shape コンストラクタは座標とサイズをポイント単位で受け取ります。例: new Rectangle(100, 100, 170, 120) または new Ellipse(300, 150, 150, 100)
  • グラフの配置: Graph オブジェクト自体は new Graph(width, height) で位置を指定し、page.getParagraphs().add(graph) を使用してページに追加します。
  • 色: com.aspose.pdf.Color クラスを使用します(例: Color.getGreen() または Color.getRed())。そして shape.getGraphInfo().setColor(...) でシェイプに設定します。
  • 線幅: shape.getGraphInfo().setLineWidth(...) で設定します。単位はポイントで、1 の値は 1/72 インチに相当します。
  • 線: Line シェイプは座標配列から作成します。例: new Line(new float[]{100, 300, 400, 300}) は線の開始点と終了点を表します。

シェイプの外観設定の例:

ellipse.getGraphInfo().setColor(com.aspose.pdf.Color.getGreen());
ellipse.getGraphInfo().setLineWidth(1.5f);

PDF にシェイプを追加する際のパフォーマンス考慮事項

多数のベクトルオブジェクトを追加すると、処理時間とメモリ使用量が増加する可能性があります。以下のガイドラインに従ってください:

  • Batch Drawing: 関連するシェイプを単一の Graph オブジェクトにまとめ、ページに追加する前にグループ化します。
  • Reuse Objects: 複数のページで同一のシェイプが必要な場合、重複させずにシェイプ設定ロジックを再利用します。
  • Avoid Over‑Scaling: コストのかかるラスタ変換を防ぐため、最終表示サイズでシェイプを定義します。
  • Dispose Resources: すべてのシェイプを追加したら、Document をすぐに保存し、解放します。

結論

Conholdate.Total for Java は、Java 開発者に PDF ドキュメントに図形を追加するシンプルな方法を提供し、リッチでインタラクティブなレポートや請求書の作成を可能にします。このガイドの手順、構成のヒント、パフォーマンスガイドラインに従うことで、PDF ワークフローにベクターグラフィックスを自信を持って統合できます。製品版の使用には適切なライセンスを取得することを忘れないでください。評価用の一時ライセンスが利用可能で、完全な価格情報は価格ページに掲載されています。

よくある質問

すべてのシェイプに対して Graph オブジェクトを作成する必要がありますか?
いいえ。単一の Graph オブジェクトは複数のシェイプを保持できます — 四角形、楕円、線はすべて、グラフがページに追加される前に同じグラフのシェイプコレクションに追加できます。

マルチページPDFの特定のページに図形を追加することは可能ですか?
はい。doc.getPages() から対象のページを取得し、その特定の Page インスタンスで page.getParagraphs().add(graph) を呼び出します。

シェイプを追加した後にエクスポートできるファイル形式は何ですか?
Conholdate.Total for Java の Document.save() メソッドは、PDF はもちろん、SDK がサポートする他の形式にも書き込むことができます。doc.save("Shapes.pdf") を使用して、結果を標準的な PDF ファイルとして保存します。