TypeScript / Node.jsでお使いの方へ — Docker体験版
オールインワンZIPに、この言語の3サンプルを収録しています。ZIPを展開し「はじめに.html」から言語を選んでください。各サンプルのREADMEに、Dockerでの起動・終了方法と、編集するソースの場所をまとめています。
すべての言語のDocker配布案内 → オールインワンZIPをダウンロード →TypeScriptで業務データを整え、Node.jsから帳票へ。フロントエンドもバックエンドもJavaScriptの開発環境で、印刷とPDF出力の入口を作れます。
公開デモが別タブで開きます。ご自身の環境で動かす手順は利用ガイドで紹介しています。
オールインワンZIPに、この言語の3サンプルを収録しています。ZIPを展開し「はじめに.html」から言語を選んでください。各サンプルのREADMEに、Dockerでの起動・終了方法と、編集するソースの場所をまとめています。
すべての言語のDocker配布案内 → オールインワンZIPをダウンロード →TypeScriptで書いた補助クラスはJavaScriptへビルドされ、Node.jsで動きます。サンプルはHTTP処理とPostgreSQLからのデータ取得を持ち、帳票の描画は共通エンジンに任せます。画面を言語ごとに作り直す必要はありません。
ブラウザのデザイナーで帳票定義 .prepdj を作り、補助クラスで印刷データ .prepej にまとめます。
以下は txtTotal という項目のある帳票定義を使う例です。サンプルの補助ライブラリが必要です。
import { readFile } from 'node:fs/promises';
import { PrintData } from './PrintData.js';
const definition = JSON.parse(
await readFile('invoice.prepdj', 'utf8'));
const document = new PrintData().setDefinition(definition);
document.pageStart();
document.setValue('txtTotal', '12,345');
document.pageEnd();
const json = document.toJson();サンプルのsrc内で使うTypeScriptの例です。
参照するソース:samples/node/src
ブラウザで生成するときは、Node.jsの業務アプリが印刷データを返し、ブラウザ内でWASMを動かします。サーバーで生成するときは、業務アプリから別の共通描画サービスへ渡します。同じNode.jsでも役割を分けています。
サンプルでは請求書のプレビューと印刷、ブラウザ/サーバーでのPDF生成、印刷データの保存・読み込みを試せます。プレビューと印刷はSVG、PDFは別の出力経路です。
印刷ダイアログはブラウザが開きます。プリンターへの無人・自動印刷を保証するものではありません。
WebAssembly(WASM)が動く仕組みを見る →