1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ACR Designer を公開しました — 帳票エンジンを支えるGUIツール

1
Posted at

はじめに

ACR(Across Report Renderer)のデザイナツールである ACR Designer を公開しました。

👉 https://github.com/acrossreport/acr-designer

前回の記事では、Rust + Skia による帳票エンジンについて説明しましたが、
今回はそのエンジンを実際に使うための「デザイナ」についてです。

ACRは、
• ピクセル単位での精度
• プリンタ非依存の描画
• JSONベースのテンプレート

という特徴を持っています。 

しかし、この仕組みには1つ前提があります。

👉 テンプレートをどうやって作るのか

JSONだけでは帳票は作れない

ACRのテンプレートはJSONで定義されます。

これは
• Gitで管理しやすい
• API連携しやすい
• 差分が見える

といったメリットがあります。

ただし現実は違います。
• 座標を数値で入力する
• 文字位置を微調整する
• 罫線やレイアウトを確認する

👉 これを手書きJSONでやるのは現実的ではありません

ACR Designerとは何か

ACR Designerは、ACRエンジンのためのGUIツールです。

役割はシンプルです。

👉 見たまま設計して、そのまま出力する

主な特徴

• WYSIWYG(見たまま設計)
• ピクセル単位のレイアウト精度
• プリンタ非依存
• JSONテンプレート生成
• Windows / macOS ネイティブ対応

技術構成

ACR Designerは以下の構成で作られています。
• 言語:C#
• UI:Avalonia UI
• 描画思想:ACRエンジンと一致

Avaloniaを採用した理由はシンプルです。
• クロスプラットフォーム対応
• .NETで開発可能
• Skiaベース

👉 エンジン(Skia)と整合性が取れる

処理の流れ

ACRの構成は次のようになります。

Designer → JSON → Engine → PDF / PNG

この構造のポイントは1つです。

👉 DesignerとEngineが完全に分離されていること

なぜデザイナが重要なのか

帳票システムにおいて重要なのは
• エンジンの精度
• デザイナの操作性

この2つです。

エンジンが正しくても、
• 使いにくい
• 調整できない
• 見た目がズレる

👉 これでは現場では使えません

実際に作って分かったこと

今回の開発で分かったのは、

👉 デザイナの方が難しい

ということでした。

理由は明確です。
• マウス操作
• UI状態管理
• 座標変換
• フォント描画

「見た目」と「内部データ」を一致させる必要がある

マルチベンダー環境との関係

ACRは、
• Windows
• macOS
• Linux

で同じ結果を出すことを前提に設計されています。

そのため、

👉 デザイナも同じ思想で動く必要がある

GitHubで公開

今回、ACR DesignerはGitHubで公開しています。

👉 https://github.com/acrossreport/acr-designer
• Issue歓迎
• フィードバック歓迎
• 改善継続予定

今後

今後は以下を予定しています。
• ESC/POS(レシート)
• ZPL(ラベル)
• SBPL

👉 実機出力との連携

まとめ

ACRは
• Rustによるエンジン
• Avaloniaによるデザイナ

という構成で、

👉 帳票システムとして成立しました

おわりに

エンジンを作った時点では、まだ半分でした。

デザイナを作って初めて、

👉 「実際に使えるツール」になった

そう感じています。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?