3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

draw.ioを操作するライブラリを書いてみた

Last updated at Posted at 2022-09-07

背景

  • 画面イメージをdraw.ioを作成し、仕様書に手で貼り付けるなど、面倒な作業があったので自動化したかった。
  • 自動化する中で、draw.ioを操作するライブラリを作る必要があった
  • Golangの実践の機会を増やしたかった

作ったもの

自動化まではまだ達成できていないが、draw.ioで使われるデータをいじれるようなライブラリを作った。
このライブラリを使うことで、draw.ioに自動で図形を挿入したり,draw.ioのライブラリを楽に作れるようになる。(使用例は別で記事を作成する予定)Githubのリンクはこちら

main.go
	// drawioファイルをロードし、MxFile構造体にマッピング
	mxfile, err := libdrawio.NewMxFile("./mxfile_test_1.drawio")
	if err != nil {
		t.Fail()
	}
    
    // MxFile構造体のDiagramの値を取り出す

	// drawioファイルのdiagramタグの値をDecompressメソッドの引数に渡すことで、MxGraphModel構造体にマッピングできる
	mxGraphModel, err := libdrawio.Decompress(value)
	if err != nil {
		t.Fail()
	}

    // MxGraphModelに対して操作をする(図形を挿入など)

	// MxGraphModelをCompressメソッドで圧縮することで、draw.ioで使えるようにする
	compressed, err := mxGraphModel.Compress()
	if err != nil {
		t.Fail()
	}


	// drawioファイルに書き込み
	if err = mxfile.Write("./out.drawio"); err != nil {
		t.Fail()
	}

追記

同様のライブラリをPythonでも作成した。
Githubのリンクはこちら

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?