jpskill.com
🛠️ 開発・MCP コミュニティ

plantuml-converter

PlantUMLファイルをPNG/SVG/PDF画像に変換し、設定ファイルや環境変数でJavaやPlantUMLのパスを柔軟に指定できるSkill。

📜 元の英語説明(参考)

Convert PlantUML (.puml) files to images (PNG/SVG/PDF). Supports configurable PlantUML jar and Java paths via config file (plantuml-config.json in skill directory) or environment variables (PLANTUML_LIB). No external dependencies beyond Java and PlantUML.jar. Trigger: convert puml, render PlantUML, puml to png, export diagram.

🇯🇵 日本人クリエイター向け解説

一言でいうと

PlantUMLファイルをPNG/SVG/PDF画像に変換し、設定ファイルや環境変数でJavaやPlantUMLのパスを柔軟に指定できるSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-17
取得日時
2026-05-17
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

[Skill 名] plantuml-converter

PlantUML Converter

PlantUML (.puml) ファイルを画像形式 (PNG, SVG, PDF) に変換します。

使用する場面

ユーザーが以下のリクエストをした場合に、このスキルを使用します。

  • 「puml を変換して」「PlantUML をレンダリングして」「画像を生成して」
  • 「puml を png に」「puml を svg に」
  • 「図をエクスポートして」「図をレンダリングして」
  • .puml ファイルを画像に変換することを含むあらゆるリクエスト

前提条件

  • Java: JRE 8+ (JDK 11+ を推奨)
  • PlantUML.jar: レンダリングエンジン (自動ダウンロード可能)

自動ダウンロード

plantuml.jar が見つからない場合、init-config スクリプトが自動ダウンロードを提案します。

  • ソース: GitHub Releases
  • 場所: <skill_dir>/lib/plantuml.jar
  • サイズ: 約8MB

Java のバージョンに基づくバージョン選択:

Java バージョン ダウンロードされる PlantUML
Java 11+ 最新 (1.2026.x)
Java 8 1.2023.12 (Java 8 互換の最終バージョン)
不明 最新

ダウンロードには以下を使用します。

  • Linux/Mac: curl または wget
  • Windows: PowerShell または curl

互換性

Java バージョン要件

PlantUML バージョン 推奨 Java
1.2026.x (最新) Java 11+
1.2024.x - 1.2025.x Java 11+
1.2020.x - 1.2023.x Java 8+
1.2019.x およびそれ以前 Java 8+

既知の互換性問題

問題 原因 解決策
UnsupportedClassVersionError Java のバージョンが PlantUML に対して古すぎる Java を 8+ にアップグレードしてください
NoClassDefFoundError jar が破損しているか、Java が間違っている plantuml.jar を再ダウンロードしてください
PDF 生成の失敗 Graphviz が不足している (一部の図の場合) Graphviz をインストールするか、PNG/SVG を使用してください
絵文字/特殊文字の失敗 Java にフォントがない 必要なフォントをインストールするか、-charset UTF-8 を使用してください

バージョンチェック

check-env スクリプトは以下を検証します。

  1. Java のインストールとバージョン (8+ である必要があります)
  2. PlantUML.jar の存在
  3. PlantUML のバージョン (オプション)
  4. Java と PlantUML の互換性

設定

オプション 1: 設定ファイル (推奨)

スキルディレクトリ内の plantuml-config.json を編集します (<skill_dir>/plantuml-config.json)。

{
  "plantumlJar": "C:/tools/plantuml/plantuml.jar",
  "javaPath": "C:/Program Files/Java/jdk-17/bin/java.exe"
}

オプション 2: 環境変数

  • PLANTUML_LIB: plantuml.jar へのフルパス
  • JAVA_HOME: Java のインストールディレクトリ

優先順位

CLI 引数 > 設定ファイル > 環境変数 > システムのデフォルト Java

使用方法

Windows

ステップ 1: 設定の初期化

%SKILL_DIR%\scripts\init-config.bat

ステップ 2: 環境の確認

%SKILL_DIR%\scripts\check-env.bat

ステップ 3: ファイルの変換

REM 単一ファイル
%SKILL_DIR%\scripts\convert.bat input.puml

REM 形式を指定
%SKILL_DIR%\scripts\convert.bat input.puml -f svg
%SKILL_DIR%\scripts\convert.bat input.puml -f png
%SKILL_DIR%\scripts\convert.bat input.puml -f pdf

REM 出力を指定
%SKILL_DIR%\scripts\convert.bat input.puml -o output.png

REM バッチ変換
%SKILL_DIR%\scripts\convert.bat ./diagrams/ -r

Linux/Mac

ステップ 1: 設定の初期化

bash <skill_dir>/scripts/init-config.sh

ステップ 2: 環境の確認

bash <skill_dir>/scripts/check-env.sh

ステップ 3: ファイルの変換

# 単一ファイル
bash <skill_dir>/scripts/convert.sh input.puml

# 形式を指定
bash <skill_dir>/scripts/convert.sh input.puml -f svg
bash <skill_dir>/scripts/convert.sh input.puml -f png
bash <skill_dir>/scripts/convert.sh input.puml -f pdf

# 出力を指定
bash <skill_dir>/scripts/convert.sh input.puml -o output.png

# バッチ変換
bash <skill_dir>/scripts/convert.sh ./diagrams/ -r

直接コマンド (スクリプトなし)

パスが分かっている場合は、直接呼び出します。

REM Windows
java -jar C:\path\to\plantuml.jar -tpng diagram.puml

REM Linux/Mac
java -jar /path/to/plantuml.jar -tpng diagram.puml

コマンド引数

引数 説明 デフォルト
input .puml ファイルまたはディレクトリ 必須
-f FORMAT 出力形式: png/svg/pdf png
-o OUTPUT 出力ファイルパス 入力と同じディレクトリ、同じ名前
-t THEME PlantUML テーマ なし
-D KEY=VALUE PlantUML 変数 なし
-r ディレクトリの再帰処理 false
--config PATH 設定ファイルパス <skill_dir>/plantuml-config.json
--plantuml PATH plantuml.jar パス 自動検出
--java PATH java パス 自動検出

デフォルトの出力動作: -o がない場合、出力ファイルは入力ファイルと同じディレクトリに、同じベース名で生成されます。

diagram.puml  →  diagram.png
/path/to/arch.puml  →  /path/to/arch.png

文字エンコーディング

すべての変換は、以下を処理するために自動的に -charset UTF-8 を使用します。

  • CJK 文字 (中国語、日本語、韓国語)
  • 絵文字と特殊記号
  • 図内の Unicode テキスト

それでも文字化けが見られる場合は、.puml ファイルが UTF-8 エンコーディングで保存されていることを確認してください。

PlantUML の例

シーケンス図

@startuml
title User Login Flow

actor User
participant "Frontend" as FE
participant "Backend" as BE
database "Database" as DB

User -> FE: Enter credentials
FE -> BE: POST /api/login
BE -> DB: Query user info
DB --> BE: Return user data
BE --> FE: Return JWT Token
FE --> User: Login success, redirect

@enduml

クラス図

@startuml
title Class Diagram Example

class User {
  - id: Long
  - username: String
  - password: String
  - email: String
  + login(): Boolean
  + register(): Boolean
  + changePassword(): void
}

class Order {
  - orderNo: String
  - amount: Double
  - status: Enum
  + create(): void
  + cancel(): void
}

class Product {
  - productId: Long
  - name: String
  - price: Double
  - stock: Integer
}

User "1" -- "*" Order : has >
Order "*" -- "*" Product : contains >

@enduml

アクティビティ図

@startuml
title Order Processing Flow

start
:User submits order;
if (Stock available?) then (yes)
  :Deduct stock;
  :Create order;
  if (Payment success?) then (yes)
    :Ship goods;
    :Complete order;
  else (no)
    :Cance
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

PlantUML Converter

Convert PlantUML (.puml) files to image formats (PNG, SVG, PDF).

When to Use

Use this skill when user requests:

  • "convert puml", "render PlantUML", "generate image"
  • "puml to png", "puml to svg"
  • "export diagram", "render diagram"
  • Any request involving converting .puml files to images

Prerequisites

  • Java: JRE 8+ (JDK 11+ recommended)
  • PlantUML.jar: Rendering engine (auto-download available)

Auto-Download

If plantuml.jar is not found, the init-config script will offer to download it automatically:

  • Source: GitHub Releases
  • Location: <skill_dir>/lib/plantuml.jar
  • Size: ~8MB

Version selection based on Java:

Java Version PlantUML Downloaded
Java 11+ Latest (1.2026.x)
Java 8 1.2023.12 (last Java 8 compatible)
Unknown Latest

The download uses:

  • Linux/Mac: curl or wget
  • Windows: PowerShell or curl

Compatibility

Java Version Requirements

PlantUML Version Recommended Java
1.2026.x (latest) Java 11+
1.2024.x - 1.2025.x Java 11+
1.2020.x - 1.2023.x Java 8+
1.2019.x and earlier Java 8+

Known Compatibility Issues

Issue Cause Solution
UnsupportedClassVersionError Java version too old for PlantUML Upgrade Java to 8+
NoClassDefFoundError Corrupt jar or wrong Java Re-download plantuml.jar
PDF generation fails Missing Graphviz (for some diagrams) Install Graphviz or use PNG/SVG
Emoji/special chars fail Font missing in Java Install required fonts or use -charset UTF-8

Version Check

The check-env script verifies:

  1. Java installation and version (must be 8+)
  2. PlantUML.jar existence
  3. PlantUML version (optional)
  4. Compatibility between Java and PlantUML

Configuration

Option 1: Config File (Recommended)

Edit plantuml-config.json in the skill directory (<skill_dir>/plantuml-config.json):

{
  "plantumlJar": "C:/tools/plantuml/plantuml.jar",
  "javaPath": "C:/Program Files/Java/jdk-17/bin/java.exe"
}

Option 2: Environment Variables

  • PLANTUML_LIB: Full path to plantuml.jar
  • JAVA_HOME: Java installation directory

Priority

CLI arguments > Config file > Environment variables > System default java

Usage

Windows

Step 1: Initialize Config

%SKILL_DIR%\scripts\init-config.bat

Step 2: Check Environment

%SKILL_DIR%\scripts\check-env.bat

Step 3: Convert Files

REM Single file
%SKILL_DIR%\scripts\convert.bat input.puml

REM Specify format
%SKILL_DIR%\scripts\convert.bat input.puml -f svg
%SKILL_DIR%\scripts\convert.bat input.puml -f png
%SKILL_DIR%\scripts\convert.bat input.puml -f pdf

REM Specify output
%SKILL_DIR%\scripts\convert.bat input.puml -o output.png

REM Batch convert
%SKILL_DIR%\scripts\convert.bat ./diagrams/ -r

Linux/Mac

Step 1: Initialize Config

bash <skill_dir>/scripts/init-config.sh

Step 2: Check Environment

bash <skill_dir>/scripts/check-env.sh

Step 3: Convert Files

# Single file
bash <skill_dir>/scripts/convert.sh input.puml

# Specify format
bash <skill_dir>/scripts/convert.sh input.puml -f svg
bash <skill_dir>/scripts/convert.sh input.puml -f png
bash <skill_dir>/scripts/convert.sh input.puml -f pdf

# Specify output
bash <skill_dir>/scripts/convert.sh input.puml -o output.png

# Batch convert
bash <skill_dir>/scripts/convert.sh ./diagrams/ -r

Direct Command (No Script)

When paths are known, call directly:

REM Windows
java -jar C:\path\to\plantuml.jar -tpng diagram.puml

REM Linux/Mac
java -jar /path/to/plantuml.jar -tpng diagram.puml

Command Arguments

Argument Description Default
input .puml file or directory Required
-f FORMAT Output format: png/svg/pdf png
-o OUTPUT Output file path Same directory, same name as input
-t THEME PlantUML theme None
-D KEY=VALUE PlantUML variable None
-r Recursive directory processing false
--config PATH Config file path <skill_dir>/plantuml-config.json
--plantuml PATH plantuml.jar path Auto-detect
--java PATH java path Auto-detect

Default output behavior: Without -o, the output file is generated in the same directory as the input file with the same base name.

diagram.puml  →  diagram.png
/path/to/arch.puml  →  /path/to/arch.png

Character Encoding

All conversions use -charset UTF-8 automatically to handle:

  • CJK characters (Chinese, Japanese, Korean)
  • Emoji and special symbols
  • Unicode text in diagrams

If you still see garbled text, ensure your .puml file is saved with UTF-8 encoding.

PlantUML Examples

Sequence Diagram

@startuml
title User Login Flow

actor User
participant "Frontend" as FE
participant "Backend" as BE
database "Database" as DB

User -> FE: Enter credentials
FE -> BE: POST /api/login
BE -> DB: Query user info
DB --> BE: Return user data
BE --> FE: Return JWT Token
FE --> User: Login success, redirect

@enduml

Class Diagram

@startuml
title Class Diagram Example

class User {
  - id: Long
  - username: String
  - password: String
  - email: String
  + login(): Boolean
  + register(): Boolean
  + changePassword(): void
}

class Order {
  - orderNo: String
  - amount: Double
  - status: Enum
  + create(): void
  + cancel(): void
}

class Product {
  - productId: Long
  - name: String
  - price: Double
  - stock: Integer
}

User "1" -- "*" Order : has >
Order "*" -- "*" Product : contains >

@enduml

Activity Diagram

@startuml
title Order Processing Flow

start
:User submits order;
if (Stock available?) then (yes)
  :Deduct stock;
  :Create order;
  if (Payment success?) then (yes)
    :Ship goods;
    :Complete order;
  else (no)
    :Cancel order;
    :Restore stock;
    :Notify payment failure;
  endif
else (no)
  :Notify out of stock;
endif
stop

@enduml

Use Case Diagram

@startuml
title E-Commerce System Use Cases

left to right direction
actor User
actor Admin

rectangle "E-Commerce System" {
  usecase "Browse Products" as UC1
  usecase "Search Products" as UC2
  usecase "Add to Cart" as UC3
  usecase "Place Order" as UC4
  usecase "Payment" as UC5
  usecase "View Orders" as UC6
  usecase "Manage Products" as UC7
  usecase "Manage Orders" as UC8
  usecase "Manage Users" as UC9
}

User --> UC1
User --> UC2
User --> UC3
User --> UC4
User --> UC5
User --> UC6
Admin --> UC7
Admin --> UC8
Admin --> UC9

@enduml

Component Diagram

@startuml
title System Architecture

package "Frontend" {
  [Web App] as Web
  [Mobile App] as Mobile
}

package "Backend Services" {
  [API Gateway] as Gateway
  [User Service] as UserService
  [Order Service] as OrderService
  [Product Service] as ProductService
  [Payment Service] as PaymentService
}

database "Database" {
  [MySQL] as DB
  [Redis] as Cache
}

Web --> Gateway
Mobile --> Gateway
Gateway --> UserService
Gateway --> OrderService
Gateway --> ProductService
Gateway --> PaymentService
UserService --> DB
OrderService --> DB
ProductService --> DB
PaymentService --> DB
UserService --> Cache

@enduml

State Diagram

@startuml
title Order State Transitions

[*] --> Pending: Create order
Pending --> Paid: Payment success
Pending --> Cancelled: Timeout/user cancel
Paid --> Shipping: Merchant ships
Shipping --> Delivered: User confirms receipt
Delivered --> Completed: Auto complete
Delivered --> Refunding: Request refund
Refunding --> Refunded: Refund success
Refunding --> Delivered: Cancel refund
Cancelled --> [*]
Completed --> [*]
Refunded --> [*]

@enduml

Conversion Examples

REM Windows - Basic conversion
convert.bat architecture.puml

REM Windows - SVG format
convert.bat architecture.puml -f svg

REM Windows - Custom theme
convert.bat diagram.puml -t blueprint

REM Windows - Batch convert
convert.bat ./docs/ -r -f svg
# Linux/Mac - Basic conversion
bash convert.sh architecture.puml

# Linux/Mac - SVG format
bash convert.sh architecture.puml -f svg

# Linux/Mac - Custom theme
bash convert.sh diagram.puml -t blueprint

# Linux/Mac - Batch convert
bash convert.sh ./docs/ -r -f svg

Troubleshooting

Error Solution
java: command not found Install Java or configure javaPath
plantuml.jar not found Configure plantumlJar or set PLANTUML_LIB
Syntax error Check .puml file syntax
Permission denied Check file permissions

Script List

Script Windows Linux/Mac Description
Init config init-config.bat init-config.sh Auto-generate config file
Check env check-env.bat check-env.sh Check Java and PlantUML
Convert convert.bat convert.sh Main conversion function