複雑な Visio ダイアグラムを軽量な SVG グラフィックに変換することは、ウェブ上でダイアグラムを表示する最新の Java アプリケーションにとって頻繁なニーズです。Conholdate.Total for Java は、Java での Visio から SVG への変換を簡素化する堅牢な SDK を提供します。このガイドでは、完全なコード例を確認し、変換オプションの設定方法、Maven を使用したライブラリのセットアップ、そしてマルチページ Visio ファイルの効率的な処理方法を学びます。最後まで読めば、Visio から SVG への変換を自分のプロジェクトに統合できるようになります。

完全なコード例: JavaでのVisioからSVGへの変換

この例では、Conholdate.Total for Java を使用して Visio ファイルを SVG に変換する方法を示します。

import com.groupdocs.conversion.Converter;
import com.groupdocs.conversion.options.convert.SvgConvertOptions;
import java.io.File;

public class VisioToSvgConverter {
    public static void main(String[] args) {
        // Input Visio file (VSD, VSDX, VDX, VSS, VSSX, VST, VSTX)
        String inputVisioPath = "sample.vsdx";

// Directory where SVG files will be saved
        String outputDirectoryPath = "output_svg";

// Ensure output directory exists
        File outputDir = new File(outputDirectoryPath);
        if (!outputDir.exists()) {
            boolean created = outputDir.mkdirs();
            if (!created) {
                System.err.println("Failed to create output directory: " + outputDirectoryPath);
                return;
            }
        }

// Perform conversion
        try (Converter converter = new Converter(inputVisioPath)) {
            // Configure SVG conversion options
            SvgConvertOptions svgOptions = new SvgConvertOptions();
            svgOptions.setScale(1.0);               // 100% scale
            svgOptions.setEmbedImages(true);        // Embed images directly into SVG
            svgOptions.setPageSize(SvgConvertOptions.PageSize.A4); // Example page size
            svgOptions.setQuality(100);             // Maximum quality

// Get total number of pages (each page will become a separate SVG file)
            int pageCount = converter.getPageCount();

// Convert each page individually – useful for large Visio files
            for (int pageIndex = 0; pageIndex < pageCount; pageIndex++) {
                svgOptions.setPageNumber(pageIndex + 1); // Pages are 1‑based
                String outputSvgPath = outputDirectoryPath + File.separator + "page_" + (pageIndex + 1) + ".svg";

// Convert current page to SVG
                converter.convert(outputSvgPath, svgOptions);
                System.out.println("Converted page " + (pageIndex + 1) + " to " + outputSvgPath);
            }
        } catch (Exception ex) {
            System.err.println("Error during Visio to SVG conversion: " + ex.getMessage());
            ex.printStackTrace();
        }
    }
}

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

Java での Visio から SVG への変換の仕組み

変換プロセスは、いくつかの明確なステップに分解できます:

  1. Initialize the Converter - Converter クラスは、ソース Visio ファイルへのパスを指定してインスタンス化されます。
try (Converter converter = new Converter(inputVisioPath)) {

このクラスは Conholdate.Total SDK の一部であり、VSD、VSDX、VDX、VSS、VSSX、VST、VSTX ファイルの読み込みを処理します。詳細は API reference を参照してください。

  1. SVG オプションの構成 - SvgConvertOptions のインスタンスを使用すると、スケーリング、画像埋め込み、ページサイズ、品質を設定できます。
SvgConvertOptions svgOptions = new SvgConvertOptions();
svgOptions.setScale(1.0);
svgOptions.setEmbedImages(true);
svgOptions.setPageSize(SvgConvertOptions.PageSize.A4);
svgOptions.setQuality(100);

これらの設定は、生成された SVG ファイルの外観と解像度を制御します。

  1. ページ数の取得 - converter.getPageCount() は Visio ドキュメントのページ数を返し、各ページを個別に処理できるようにします。
int pageCount = converter.getPageCount();
  1. ページをループ処理 - 各ページについて、setPageNumber メソッドが現在のページを選択し、converter.convert が SVG 出力をターゲット パスに書き込みます。
for (int pageIndex = 0; pageIndex < pageCount; pageIndex++) {
    svgOptions.setPageNumber(pageIndex + 1);
    String outputSvgPath = outputDirectoryPath + File.separator + "page_" + (pageIndex + 1) + ".svg";
    converter.convert(outputSvgPath, svgOptions);
}

このアプローチは、各ページを個別に処理するため、大きな Visio ファイルに対してメモリ効率が高くなります。

  1. 例外の処理 - 変換中に発生したエラーは捕捉され、出力されます。これにより、サポートされていないシェイプなどの問題をデバッグしやすくなります。

これらの手順に従うことで、SDKは各 Visio ページを別々の高品質な SVG ファイルに変換し、Web 表示やさらに処理するために利用できるようにします。

Visio から SVG へのワークフロー - 前提条件とセットアップ

コードを実行する前に、Maven プロジェクトに Conholdate.Total SDK を設定してください。

  1. Conholdate Maven リポジトリを追加 pom.xml に:
<repositories>
    <repository>
        <id>conholdate-repo</id>
        <name>Conholdate Maven Repository</name>
        <url>https://repository.conholdate.com/repo/</url>
    </repository>
</repositories>
  1. SDK の依存関係を追加:
<dependency>
    <groupId>com.conholdate</groupId>
    <artifactId>conholdate-total</artifactId>
    <version>24.9</version>
    <type>pom</type>
</dependency>
  1. 最新の SDK バイナリをダウンロード してください。手動インストールをご希望の場合、ファイルはダウンロード ページから入手できます。

  2. Java version - SDKはJava 8以降が必要です。プロジェクトの source と target の互換性がそれに合わせて設定されていることを確認してください。

  3. License - 本番環境で使用する場合は、一時ライセンスページ に記載されているように有効なライセンスを適用してください。ライセンスがない場合、SDK は評価モードで実行されますが、機能が制限されます。

依存関係が解決されたら、IDE から直接、またはコマンドライン経由で VisioToSvgConverter クラスをコンパイルして実行できます。

結論

Java での Visio から SVG への変換は、Conholdate.Total for Java のパワーを活用することでシンプルになります。この SDK はサポートされているすべての Visio フォーマットを処理し、SVG 出力に対する細かい制御を提供し、複数ページのドキュメントにもスムーズにスケールします。ステップバイステップのガイドに従うことで、この機能を任意の Java ベースのワークフローに統合できます。Web サービス、デスクトップビューア、または自動レポート パイプラインの構築いずれでも活用できます。本番環境での導入には適切なライセンスを取得することを忘れないでください。価格オプションはpricing pageで確認でき、temporary license pageから一時ライセンスをリクエストできます。コーディングをお楽しみください!

あなたが抱える質問

  • JavaでConholdate.Totalを使用してVisioをSVGに変換するにはどうすればよいですか?
    完全なコード例に示されているように、Converter クラスと SvgConvertOptions を組み合わせて使用します。SDK はファイル処理を抽象化し、構成と出力パスに集中できるようにします。詳細な使用方法は Conholdate.Total for Java のドキュメントでカバーされています。

  • SVG 出力でサポートされている Visio ファイル形式は何ですか?
    このライブラリは VSD、VSDX、VDX、VSS、VSSX、VST、VSTX ファイルをサポートしています。これらすべては同じ API 呼び出しで処理でき、高品質な SVG ファイルを生成します。

  • 本番環境で変換を実行するにはライセンスが必要ですか?
    はい。本番環境では有効なライセンスが必要です。一時ライセンスページから一時ライセンスを取得でき、価格ページで全体の価格をご確認いただけます。

  • SVG出力をカスタマイズできますか?たとえば画像を埋め込んだりページサイズを設定したりすることは可能ですか?
    もちろんです。SvgConvertOptions クラスは setEmbedImages、setPageSize、setScale、setQuality といったプロパティを提供します。convert を呼び出す前にこれらを調整して、特定のレンダリング要件に合わせてください。

関連記事