Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
6
Help us understand the problem. What is going on with this article?
@u4da3

draw.io をコマンドラインで実行して、画像ファイルをエクスポートする

More than 1 year has passed since last update.

draw.io をコマンドラインで使いたい

ダイアグラムを作成するのに便利な draw.io ですが、画像ファイルのエクスポートをコマンドラインで実行できたら、ドキュメントのビルドなんかに使えて便利だろうなと思い調べてみました。

drawio-desktop のインストール

オンライン番が有名な draw.io ですが、コマンドラインで実行するにはローカル環境にインストールする必要があります。まずは、drawio-desktop のリリースページ からダウンロードしてインストールしてください。

補足
少し前までは、下記URLにデスクトップ版のインストーラがあったのですが、いつの間にかリンクが消えてますね。
https://about.draw.io/integrations/#integrations_offline
Githubでは引き続き公開されているので、Githubのリリースページからダウンロードしましょう。
https://github.com/jgraph/drawio-desktop/releases

エイリアスの登録

次に、コマンドラインで使いやすいようにエイリアスを登録します。
実行ファイルのパスは、異なることがあるので、自分の環境でインストール先を確認してください。

macOS

alias draw.io=/Applications/draw.io.app/Contents/MacOS/draw.io

.bash_profile とかに保存しておくと、毎回入力する必要がなくて便利です。

Windows

doskey draw.io="C:\Program Files\draw.io\draw.io.exe" $*

doskey とか言うコマンド、初めて知りました。

コマンドラインでの実行

コマンドラインで実行する準備が整ったので、早速試してみましょう。

draw.io --help

下記のような、ヘルプページが表示されるはずです。

Usage: draw.io [options] [input file/folder]

Options:
  -V, --version                      output the version number
  -c, --create                       creates a new empty file if no file is passed
  -k, --check                        does not overwrite existing files
  -x, --export                       export the input file/folder based on the given options
  -r, --recursive                    for a folder input, recursively convert all files in sub-folders also
  -o, --output <output file/folder>  specify the output file/folder. If omitted, the input file name is used for output with the specified format as extension
  -f, --format <format>              if output file name extension is specified, this option is ignored (file type is determined from output extension, possible export formats are pdf, png, jpg, svg, vsdx) (default: "pdf")
  -q, --quality <quality>            output image quality for JPEG (default: 90)
  -t, --transparent                  set transparent background for PNG
  -e, --embed-diagram                includes a copy of the diagram (for PNG format only)
  -b, --border <border>              sets the border width around the diagram (default: 0)
  -s, --scale <scale>                scales the diagram size
  --width <width>                    fits the generated image/pdf into the specified width, preserves aspect ratio.
  --height <height>                  fits the generated image/pdf into the specified height, preserves aspect ratio.
  --crop                             crops PDF to diagram size
  -a, --all-pages                    export all pages (for PDF format only)
  -p, --page-index <pageIndex>       selects a specific page, if not specified and the format is an image, the first page is selected
  -g, --page-range <from>..<to>      selects a page range (for PDF format only)
  -h, --help                         output usage information

画像ファイルをエクスポート

画像ファイルをエクスポートするには、次のように実行します。

draw.io -xf svg -o diagram.svg diagram.drawio

フォルダごとまとめてエクスポートすることも可能なようです。

draw.io -xrf png -o output/ input/

ドキュメント生成ツールと組み合わせれば、色々と応用がききそうです。

6
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
u4da3

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
6
Help us understand the problem. What is going on with this article?