HTTP API
テンプレート印刷は HTTP API を通じてドキュメントのレンダリングとダウンロードを直接トリガーできます。詳細ブロックでもテーブルブロックでも、本質的には現在のビジネスリソースに対して templatePrint アクションを実行します。
説明:
<resource_name>は現在のデータテーブルに対応するリソース名です。- インターフェースは JSON データではなく、バイナリファイルストリームを返します。
- 呼び出し元は、現在のリソースのクエリ権限と、対応するテンプレート印刷ボタンの使用権限を持っている必要があります。
- インターフェースの呼び出しには、Authorization リクエストヘッダーを通じてユーザーログインに基づく JWT トークンを渡す必要があります。渡さない場合、アクセスが拒否されます。
リクエストボディパラメータ
テーブルブロック
テーブルブロックは同じインターフェースを使用し、blockName: "table" でリスト印刷モードを指定します。サーバー側はリソースに対して find クエリを実行し、結果の配列をテンプレートに渡します。
選択したレコードまたは現在のページの結果を印刷
テーブルブロックから一部のレコードを選択して印刷する場合、または現在のページのページネーションコンテキストを保持して印刷する場合に適用されます。一般的な方法は以下の通りです:
queryParams.pageとqueryParams.pageSizeを現在のテーブルのページ番号と1ページあたりの件数に設定します。- 選択したレコードの主キーを
filter.id.$in条件に結合します。
このリクエストの意味は以下の通りです:
blockNameがtableの場合、リストデータでテンプレートをレンダリングします。filter.id.$inは印刷するレコードの集合を指定します。pageとpageSizeは現在のページネーションコンテキストを保持し、UI の動作と一致させます。appendsは必要に応じてリレーションフィールドを追加できます。
条件に一致するすべてのデータを印刷
テーブルブロックの「全レコードを印刷」をクリックした際の呼び出し方法に適用されます。この場合、現在のページでの切り出しは行わず、現在のフィルター条件に一致するすべてのデータを直接取得します。
重要なポイントは、queryParams.page と queryParams.pageSize を明示的に null に設定することです。
このリクエストの意味は以下の通りです:
page: nullとpageSize: nullはページネーション制限を解除することを意味します。filter: {}は追加のフィルター条件を付加しないことを意味します。UI 上にフィルター条件がある場合は、ここに直接入れることもできます。- サーバー側は条件に一致するすべてのデータをクエリし、テンプレートを一括レンダリングします。
注意:テーブルブロックは1回の印刷で最大 300 件のレコードまで対応しています。制限を超えた場合、インターフェースは
400エラーを返します。
詳細ブロック
詳細ブロックも templatePrint アクションを使用しますが、通常は以下のパラメータを渡します:
blockName: "details"queryParams.filterByTkで現在のレコードの主キーを指定queryParams.appendsで追加クエリするリレーションフィールドを指定
サーバー側はリソースに対して findOne クエリを実行し、結果オブ ジェクトをテンプレートに渡します。
レスポンス
呼び出しが成功すると、インターフェースはファイルストリームを直接返します。典型的なレスポンスヘッダーは以下の通りです:
説明:
convertedToPDFがtrueの場合、返されるファイルの拡張子は.pdfです。- それ以外の場合、テンプレートの元の種類に対応するファイル(
.docx、.xlsx、.pptxなど)が返されます。 - フロントエンドは通常、
Content-Dispositionのファイル名に基づいてブラウザのダウンロードをトリガーします。

