kazurayam / vba-callgraph

Generating a Call Graph for Excel VBA workbooks
https://kazurayam.github.io/VBACallGraph/
Apache License 2.0
1 stars 0 forks source link

クラス図をA3用紙にプリントしてみよ、サイズの大きな画像を分割してA3用紙の複数ページで印刷する方法を探せ #23

Closed kazurayam closed 3 months ago

kazurayam commented 3 months ago

diagram-12338841033331432944.png.pdf

kazurayam commented 3 months ago

上記のPDFをA3のプリンタで紙にプリントしてみた。文字が小さい。全然読めないわけでもないがちょっと厳しい。

どう対処するか?2つ、案あり。

  1. 上記のPDFの図の長辺を半分に割って、2ページのPDFに直したい。そうすればA3の紙2枚にプリントできるだっろう。
  2. 関係の矢印にラベルをつけている、そのせいで図が膨らんでいるかも?image
Backboneライブラリ.ArraySortModule o-- Backboneライブラリ.KzUtil : KzCls

コロン : の後に KzCls と書いてる。これがラベルになる。KzClsという文字を図の中に描きたくはない。puファイルの中の行の一部としてKzClsという文字が可読であればそれで十分だ。インラインのコメントを書ければいいのだが、どうやらPlantUMLの構文規則においてinlineコメントは無いらしく、しょうがなくてラベルの構文を転用した。もう少し調べてみよう。

15 と #17 の

問題が解決できれば、図をもっとコンパクトにできるだろう。

kazurayam commented 3 months ago

Mupdf というツールを使ったらうまくいった。下記のページを参考にした。

以下、私がやったことをメモする。

  1. v0.1.10 のFindUsageAppTestを実行した。lib/build/tmp/testOutput/com.kazurayam.vba.FindUsageAppTest/test_writeDiagram_Options_KAZURAYAM.pu が出力された。
  2. IntelliJ にPlantUMLをplugin済みであった。IntelliJでpuファイルを開くとクラス図の画像が生成された。画像をマウスで右クリックするとメニューが表示されて、画像を外部に出力するさまざまの方法が示された。PDFファイルにしてデスクトップに保存した。
  3. Mupdfをインストールした。わたしのマシンはmacなのでHomebrewでインストールした。
    $ brew install mupdf
    ...
    $ mutool -h
    mutool version 1.23.11
    ...
  4. ターミナルでDesktopにcdし、mutoolコマンドを投入した。
    $ cd ~/Desktop
    $ mutool poster -x 2 -y 2 diagram-12338841033331432944.png.pdf
  5. すると Desktop/out.pdf が出力された。

out.pdf

見ての通り、out.pdfは4ページから成るPDFファイルだ。元の画像をタテ2分割✖︎横2分割した四枚の画像が1ページに1個づつはめ込まれている。out.pdfをコンビニのプリンタで印刷した。A3の紙四枚に印刷した。

うん、これなら文字が十分に大きくて楽に読めた。

紙四枚をセロテープで貼り合わせる手間が面倒だが、まあ、字が小さすぎて読めないよりもはるかに良い。

この方法で大丈夫だ。

kazurayam commented 3 months ago
  1. FindUsageAppを実行してpuファイルを生成する
  2. PlantUMLを実行してpuファイルからPDFファイルを生成する
  3. Mutoolを実行して1ページからなるPDFを4ページから成るPDFに変換する

以上のことをコマンド一発で実行したい。

VBAProcedureFindUsageプラグイン for Gradle を作る時、おまけでこのバッチ処理も組み込もう。

kazurayam commented 3 months ago

29 に引き継ぐ。

こちらの#23はクローズする。