Javaコードから直接Visio図を作成すると、ドキュメント作成ワークフローが効率化され、手動での描画作業が不要になります。Conholdate.Total for Java は、プログラムからVisioファイルを生成できる強力なSDKを提供します。このガイドでは、JavaでVisioダイアグラムを作成し、マスターテンプレートからシェイプを追加し、位置を設定し、テキストのスタイリングを適用します。最後には、Microsoft Visioでさらに編集可能な、すぐに開けるVSDX ファイルが手に入ります。

Visio ダイアグラム作成要件

企業はデータ ソースから技術的なスキーマ、フローチャート、ネットワーク図を自動的に作成する必要があることが多いです。レポート ダッシュボード、構成ツール、CI パイプラインを構築する Java 開発者は、手動介入なしで Visio ファイルを生成する要件に頻繁に直面します。ソリューションは、マスター ベースのシェイプ作成、正確な位置指定、既存の Visio ステンシルに一致するテキスト スタイルをサポートする必要があります。Visio での手動描画は時間がかかり、エラーが発生しやすく、特にビルドごとに図を再生成する必要がある場合に問題です。

アプローチ: Conholdate.Total を使用した Visio ダイアグラム生成

Conholdate.Total for Java は、VSDX 形式に対応した専用のダイアグラム API を提供します。マスターステンシルを読み込み、マスターからシェイプを追加し、XForm プロパティを使用してシェイプの位置を変更し、テキストを添付し、事前定義されたテキストスタイルを適用することが、シンプルな Java 呼び出しだけで可能です。ダイアグラム クラスのドキュメントは 公式ドキュメント で利用でき、完全な API リファレンスは API リファレンス で確認できます。このライブラリを使用すると、サーバーまたはデスクトップ環境で Visio 作成パイプライン全体を自動化できます。

ソリューションの構築: Javaで Visio ダイアグラムを作成

以下の手順では、Maven の設定から最終的な VSDX ファイルの保存まで、完全なプロセスをご案内します。

Maven 依存関係の追加とクラスのインポート

まず、Conholdate Maven リポジトリを構成し、SDK の依存関係を pom.xml に追加します。

<repositories>
  <repository>
    <id>conholdate-repo</id>
    <name>Conholdate Maven Repository</name>
    <url>https://repository.conholdate.com/repo/</url>
  </repository>
</repositories>

<dependency>
  <groupId>com.conholdate</groupId>
  <artifactId>conholdate-total</artifactId>
  <version>24.9</version>
  <type>pom</type>
</dependency>

このチュートリアルで使用される diagram クラスは com.aspose.diagram パッケージにあり、Conholdate.Total for Java バンドルの一部として提供されます。

import com.aspose.diagram.Diagram;
import com.aspose.diagram.Shape;
import com.aspose.diagram.TypeValue;
import com.aspose.diagram.Txt;
import com.aspose.diagram.SaveFileFormat;

ダイアグラムを初期化し、マスターシェイプをロードする

新しい Diagram インスタンスを作成し、スタンシル ファイルをロードして、形状のベースにしたいマスターを選択します。ここでは、“Basic Shapes.vss” スタンシルに含まれる組み込みの “Rectangle” マスターを使用します。

// Create a new instance of a diagram
Diagram diagram = new Diagram();

// Define the name of the master (template) to be used for creating shapes
String masterName = "Rectangle";
diagram.addMaster("Basic Shapes.vss", masterName);

マスターからシェイプを追加し、位置を設定する

マスターを使用して図にシェイプを追加し、addShape が返す ID でシェイプを検索して位置を調整できるようにします。

// Define the dimensions and position for the new shape
double width = 2, height = 2, pinX = 4.25, pinY = 4.5;

// Add a new rectangle shape to the diagram using the specified master
long rectangleId = diagram.addShape(pinX, pinY, width, height, masterName, 0);

// Retrieve the shape by its ID for modification
Shape rectangle = diagram.getPages().get(0).getShapes().getShape(rectangleId);

// Set the position of the shape by modifying its PinX and PinY properties
rectangle.getXForm().getPinX().setValue(5);
rectangle.getXForm().getPinY().setValue(5);

// Set the type of the shape to indicate it is a standard shape
rectangle.setType(TypeValue.SHAPE);

テキストを追加してテキストスタイルを適用する

テキストランをシェイプに添付し、図の事前定義されたスタイルシートのいずれかを適用して、ラベルがドキュメント全体と一致するようにします。

// Add text to the shape
rectangle.getText().getValue().add(new Txt("Aspose Diagram"));

// Apply a predefined text style to the shape's text
rectangle.setTextStyle(diagram.getStyleSheets().get(3));

ダイアグラムを VSDX に保存

最後に、Microsoft Visioで開くことができるVSDXファイルにダイアグラムを書き込みます。

diagram.save("Visio_out.vsdx", SaveFileFormat.VSDX);

JavaでVisioダイアグラムを作成 - 完全に動作するサンプル - 完全なコード例

以下のコードは、開始から完了までの全体的なワークフローを示しています。

import com.aspose.diagram.Diagram;
import com.aspose.diagram.Shape;
import com.aspose.diagram.TypeValue;
import com.aspose.diagram.Txt;
import com.aspose.diagram.SaveFileFormat;

public class CreateVisioDiagram {
    public static void main(String[] args) {
        try {
            // Create a new instance of a diagram
            Diagram diagram = new Diagram();

// Define the name of the master (template) to be used for creating shapes
            String masterName = "Rectangle";
            diagram.addMaster("Basic Shapes.vss", masterName);

// Define the dimensions and position for the new shape
            double width = 2, height = 2, pinX = 4.25, pinY = 4.5;

// Add a new rectangle shape to the diagram using the specified master
            long rectangleId = diagram.addShape(pinX, pinY, width, height, masterName, 0);

// Retrieve the shape by its ID for modification
            Shape rectangle = diagram.getPages().get(0).getShapes().getShape(rectangleId);

// Set the position of the shape by modifying its PinX and PinY properties
            rectangle.getXForm().getPinX().setValue(5);
            rectangle.getXForm().getPinY().setValue(5);

// Set the type of the shape to indicate it is a standard shape
            rectangle.setType(TypeValue.SHAPE);

// Add text to the shape
            rectangle.getText().getValue().add(new Txt("Aspose Diagram"));

// Apply a predefined text style to the shape's text
            rectangle.setTextStyle(diagram.getStyleSheets().get(3));

// Save the modified diagram to a file
            diagram.save("Visio_out.vsdx", SaveFileFormat.VSDX);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

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

Visio ダイアグラム プロジェクトのデプロイ時の考慮事項

SDK は任意の Java 8 以上のランタイム上で動作し、バックエンドサービス、バッチジョブ、またはデスクトップユーティリティに適しています。大規模な図を生成する際は、ヒープ使用量を監視し、メモリオーバーヘッドを削減するために複数ページで単一の Diagram インスタンスを再利用することを検討してください。製品版では有効なライセンスが必要です。テスト用の一時ライセンスは 一時ライセンスページ から取得でき、完全ライセンスは 価格ページ で購入できます。コードを実行するプロセスが出力ディレクトリに書き込み可能であることを確認してください。

結論

JavaでVisio図をプログラム的に作成することは、Conholdate.Total for Java を使用すれば簡単になります。上記の手順に従うことで、マスターステンシルを読み込み、VSDX ファイルを生成し、シェイプを正確に配置し、一貫したテキストスタイルを適用できます。適切な製品ライセンスを取得し、生成された図を Microsoft Visio でテストしてレイアウトの忠実度を確認してください。SDK が導入されていれば、さまざまなエンタープライズシナリオで図の作成を自動化できます。

よくある質問

  • Javaでマスターテンプレートを使用してVisioダイアグラムを作成するにはどうすればよいですか?
    Conholdate.Total for Java が提供するダイアグラム クラスを使用し、addMaster でステンシルをロードし、addShape でそのマスターからシェイプを追加し、ファイルを VSDX として保存します。

  • SDKがVisio図のために生成するファイル形式は何ですか?
    SDKは最新のVSDX形式を出力し、Microsoft Visioと完全に互換性があります。

  • 生成された Visio ファイルを本番環境で実行するにはライセンスが必要ですか?
    はい。価格ページ から本番用ライセンスを取得し、開発中は一時ライセンス を使用できます。

  • このダイアグラム生成をWebサービスに統合できますか?
    もちろんです。SDKは純粋なJavaライブラリなので、Spring BootやJakarta EEなどのJavaベースのバックエンドから呼び出すことができます。

さらに読む