Reports Web オールインワン開発セットを公開しました。購入前にお試しいただけます。
Ruby

Rubyで、
帳票作成・印刷を。

Rubyで業務データを組み立て、共通WASMエンジンへ。読みやすい小さな補助ライブラリから、プレビュー・印刷・PDF出力までつながります。

公開デモが別タブで開きます。ご自身の環境で動かす手順は利用ガイドで紹介しています。

YOUR CODE, YOUR BUSINESS

業務のルールは、
いつものコードに。

RubyのPrintDataは、帳票項目へ値を渡して共通PREPEJを作る小さなライブラリです。SinatraなどのWebフレームワークから独立しているため、既存のRubyアプリへ帳票の入口を加えられます。画面や帳票エンジンをRuby向けに作り直す必要はありません。

ブラウザのデザイナーで帳票定義 .prepdj を作り、補助クラスで印刷データ .prepej にまとめます。

まずは、名前で値を入れる

以下は txtTotal という項目のある帳票定義を使う例です。サンプルの補助ライブラリが必要です。

definition = JSON.parse(File.read('invoice.prepdj', encoding: 'UTF-8'))
document = PaoReportsWeb::PrintData.new(definition)
document.page_start
document.set_value('txtTotal', '12,345')
document.page_end
json = document.to_json(pretty: true)

Webフレームワークに依存しないRubyの例です。
参照するソース:samples/ruby/lib/pao_reports_web/print_data.rb

PREVIEW, PRINT, PDF

データができたら、画面と出力へ。

ブラウザで生成するときは、Rubyの業務アプリが印刷データを返し、ブラウザ内でWASMを動かします。サーバーで生成するときは、Rubyから内部の共通描画サービスへ渡します。Rubyが担当する業務処理と、共通WASMが担当する描画を明確に分けています。

サンプルでは請求書のプレビューと印刷、ブラウザ/サーバーでのPDF生成、印刷データの保存・読み込みを試せます。プレビューと印刷はSVG、PDFは別の出力経路です。

印刷ダイアログはブラウザが開きます。プリンターへの無人・自動印刷を保証するものではありません。

WebAssembly(WASM)が動く仕組みを見る →

言語が変わっても、帳票の入口は同じ。