Rustでお使いの方へ — Docker体験版
オールインワンZIPに、この言語の3サンプルを収録しています。ZIPを展開し「はじめに.html」から言語を選んでください。各サンプルのREADMEに、Dockerでの起動・終了方法と、編集するソースの場所をまとめています。
すべての言語のDocker配布案内 → オールインワンZIPをダウンロード →Rustで業務データを組み立て、共通WASMエンジンへ。型と所有権を活かした薄いライブラリから、プレビュー・印刷・PDF出力までつながります。
公開デモが別タブで開きます。ご自身の環境で動かす手順は利用ガイドで紹介しています。
オールインワンZIPに、この言語の3サンプルを収録しています。ZIPを展開し「はじめに.html」から言語を選んでください。各サンプルのREADMEに、Dockerでの起動・終了方法と、編集するソースの場所をまとめています。
すべての言語のDocker配布案内 → オールインワンZIPをダウンロード →RustのPrintDataは、帳票項目へ値を渡して共通PREPEJを作る小さなライブラリです。AxumのサンプルがHTTP処理とPostgreSQLからのデータ取得を担当し、帳票の描画は共通WASMエンジンに任せます。画面をRust向けに作り直す必要はありません。
ブラウザのデザイナーで帳票定義 .prepdj を作り、補助クラスで印刷データ .prepej にまとめます。
以下は txtTotal という項目のある帳票定義を使う例です。サンプルの補助ライブラリが必要です。
use pao_reports_web::PrintData;
use serde_json::Value;
let definition: Value = serde_json::from_slice(
&std::fs::read("invoice.prepdj")?)?;
let mut document = PrintData::new();
document.set_definition(&definition)?
.page_start()?
.set_value("txtTotal", "12,345")?
.page_end()?;
let json = document.to_json(true)?;Webフレームワークに依存しないRustの例です。
参照するソース:samples/rust/src/lib.rs
ブラウザで生成するときは、Rustの業務アプリが印刷データを返し、ブラウザ内でWASMを動かします。サーバーで生成するときは、Rustから内部の共通描画サービスへ渡します。Rustが担当する業務処理と、共通WASMが担当する描画を明確に分けています。
サンプルでは請求書のプレビューと印刷、ブラウザ/サーバーでのPDF生成、印刷データの保存・読み込みを試せます。プレビューと印刷はSVG、PDFは別の出力経路です。
印刷ダイアログはブラウザが開きます。プリンターへの無人・自動印刷を保証するものではありません。
WebAssembly(WASM)が動く仕組みを見る →