プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2016/11/03

PlantUML で出力フォーマットに応じて処理を分ける

event_note

PlantUML にはプリプロセッサの機能があり、C言語と同じように定数定義や ifdef などが使用できます。
これを使用し、以下のように出力フォーマットに応じて処理を分けてみます。

  • PNG で出力する場合には newpage により画像を分割して出力する
  • PNG 以外で出力する場合には画像を分割しない

定数の定義の仕方

PlantUML のコード上では、以下のように定義します。

!define _PROJECT_NAME_ ProjectName

また、コマンドライン引数でも定数は定義できます。

> plantuml.jar -DPNG="png" hoge.puml

-D が定数定義するオプションで、その後に続く文字が定義する文字列です。
つまり、上記は以下の定義と同じ意味です。

!define PNG "png"

これで、上記のようにコマンドライン引数で定数を定義しつつ、PlantUML 内のコードに以下のように記述すれば、PNG で出力するときのみ画像が分割されることになります。

!ifdef PNG
newpage
!endif

参考URL