概要
Amazonが無償提供しているAWSシンプルアイコンのeps / svgを使うと、AWSの構成図等をGraphviz等のソフトウェアで描くことができる(Pandoc+beamer+GraphvizでAWSの図を描く参照)。
ただそのさい多少のTIPSがあるのでまとめる。
ファイル名
ささいな点だが、AWSからダウンロードしたままのファイル名はCompute & Networking_Elastic Load Balancing.eps
のように空白を含んでいて扱いづらいので、私はelb.epsなどのように適宜リネームして使っている。
$ find ~/Downloads/AWS_Simple_Icons_svg_eps/ -name '*Load\ Balancing.eps' -exec cp {} elb-org.eps \;
EPSの形式
AWSアイコンのepsファイルは、epsに対応しているはずのGraphvizなどの一部のソフトウェアでは正しく扱えないことがある。
これはこのファイルが実際にはDOS EPS Binaryとよばれる形式であるため。dosepsbinというツールを使うと、DOS EPS Binary形式からGraphviz等が読み込めるepsを抽出することができる。
$ dosepsbin --eps-file elb.eps elb-org.eps
余白
AWSアイコンはデフォルトでは余白に囲まれており、そのままだとGraphviz等でレイアウトしたときに下図のorgのように納まりが悪いため、下図fitのようにフィットさせるべく、余白をトリムする必要がある。
私はepsをpngに変換したものとsvgを使っているので、この2つについてトリム方法を紹介する。
pngのトリム
有名なImageMagickが使える。epsからの変換を含めて書くと次の通り。
$ for n in *.eps; do gs -dNOPAUSE -dBATCH \
-q -sDEVICE=pngalpha -dEPSCrop -sOutputFile=- -r72 $n \
| convert -trim - ${n%eps}png; done
svgのトリム (解決)
色々調べたが、SVGを直接トリムしようとするとInkscapeを使った方法ぐらいしかない。
2014.9.6: 今回対象としているAWSシンプルアイコンは幸いにもepsでも提供されている。epsについては、Ghostscriptのbboxデバイスを使うことで、トリムされたバウンディングボックスを得ることができる。さらにGhostscriptの出力デバイスにはsvgデバイスがあるので、結局、これを組み合わせることで、コマンドラインだけでトリムしたSVGを得ることができた。
まずbboxをもとにトリムしたepsを作成するスクリプトを示す。
https://gist.github.com/ooharak/214cfc1b36f73befcdbb
これで得たepsに対し以下を実行することで、トリムしたSVGが得られる。
./epstrim.sh elb.eps | \
gs -dNOPAUSE -dBATCH -q -sDEVICE=svg -dEPSCrop -sOutputFile=out.svg -