図形の情報が抽出できたので、抽出結果の確認も兼ねて、もうここで可視化してしまいます。
(Bundler を使って) Plumo
をインストールして、 次のように viewer.rb
を書いて、
require "plumo" require "./libo_draw" # pixels per cell PPC = 20 path = ARGV[0] doc = LiboDraw::Document.new(path) plumo = Plumo.new(640, 480) plumo.start plumo.color "#fff" doc.pages[0].rectangles.each { |rect| plumo.stroke_rect( rect.x * PPC, rect.y * PPC, rect.w * PPC, rect.h * PPC ) } doc.pages[0].lines.each { |line| plumo.line( line.x1 * PPC, line.y1 * PPC, line.x2 * PPC, line.y2 * PPC ) } sleep 60
それから図形オブジェクトから各座標を得るために
# libo_draw.rb module LiboDraw # ... class Rectangle # ... def x; @el["svg:x"].sub(/cm$/, "").to_f; end def y; @el["svg:y"].sub(/cm$/, "").to_f; end # ... end # ...
みたいな getter メソッドを追加。
bundle exec ruby viewer.rb data_01.fodg
で実行してブラウザで
http://localhost:9080/ を開く。
LibreOffice Draw で描いた矩形と直線がブラウザ上で再現できました。