# はじめに Source: https://www.yagisan.app/docs/ ## yagisan-reportsとは yagisan-reportsは、**WebブラウザとNode.jsで動作**するJavaScript製の帳票エンジンです。 - **HTML、JSX、XAML、Androidに影響を受けた宣言的なXML形式のテンプレート**で、Web開発者が読み書きしやすいように意識して設計しています。 - JIS第四水準漢字(JIS X 0213:2004)、異体字、縦書き、禁則処理、複雑な表組みなど、**日本語帳票に必要な機能をサポート**しています。 - **改ページ制御を自動で行う**ことができ、可変帳票も問題ありません。数百ページ規模の**大量ページ出力も高速に処理可能**です。 - **npmライブラリとして提供**されており、標準的なWeb開発のツールチェインに組み込むことができます。 - **Webブラウザ単体で帳票出力**が可能です。**帳票サーバーを排除して大幅なコスト削減**を図ったり、**フロント側の対応だけで帳票機能を追加**することができます。 ## 料金 yagisan-reportsは有償製品ですが、**開発やテスト(CI/CD環境を含む)での使用は無償**です。 本番運用時のみ、有償契約が必要となります。 契約は**プロダクト単位(または組織単位:エンタープライズ版)**で行うため、**サーバー台数やユーザー数に応じた追加費用は一切発生しません**。 有償契約の詳細や無償使用(開発者ライセンス)については、次のページをご覧ください。 - [料金](/pricing) - [利用規約](/terms) ## 今すぐ動かしてみる yagisan-reportsは **5分以内** で実際に動作を確認できます。 インストールやユーザー登録などは一切不要です。 ### ライブデモ [https://demo.yagisan.app/](https://demo.yagisan.app/) では、実務で使われる帳票を想定したサンプルを多数公開しています。 ### Webブラウザで動かしてみる 次のコードをコピーし、HTMLファイル(例えば `index.html`)として保存します。 このHTMLファイルをWebブラウザで開いてボタンをクリックすると、帳票PDFが出力されます。 ```html ``` import TabItem from '@theme/TabItem'; import Tabs from '@theme/Tabs'; # 開発を始める Source: https://www.yagisan.app/docs/devguide/start-developing :::info 本手順は将来のバージョンで改訂される予定です。 ::: ## テキストエディタの準備 yagisan-reportsの開発では、XMLを編集できるテキストエディタが必要です。 必須ではありませんが、XML Schema(XSD 1.0)に対応しているものを推奨します。 [Visual Studio Code](https://code.visualstudio.com/) をお使いの場合は、次の拡張をインストールすると推奨環境が整います。 - [XML Language Support by Red Hat](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-xml) ## Node.jsのインストール [Node.js 公式サイト](https://nodejs.org/) からインストーラーをダウンロードしてインストールするか、`mise` や `nvm` などのバージョン管理ツールを使用して Node.js をインストールしてください。 使用可能なNode.jsのバージョンについては、[動作環境・サポートポリシー](../requirements-and-support.md) をご覧ください。 ## npmパッケージのインストール yagisan-reports開発ツール群をインストールします。 ```sh npm install @yagisan-reports/sdk npm install -D https://github.com/DenkiYagi/yagisan-reports-devtool ``` エンタープライズ版を使用する場合は、次のコマンドを使用してください。 ```sh npm install @yagisan-reports/sdk-enterprise npm install -D https://github.com/DenkiYagi/yagisan-reports-devtool ``` ```sh pnpm add @yagisan-reports/sdk pnpm add -D https://github.com/DenkiYagi/yagisan-reports-devtool ``` エンタープライズ版を使用する場合は、次のコマンドを使用してください。 ```sh pnpm add @yagisan-reports/sdk-enterprise pnpm add -D https://github.com/DenkiYagi/yagisan-reports-devtool ``` :::note yagisan-reports-devtool は、将来的に npm レジストリで公開する予定です。 ::: ## 帳票テンプレートの作成 以下のXMLをコピーして `layout.xml` として保存します。 文字エンコーディングはUTF-8を使用してください。 ```xml ${message} このPDFはyagisan-reportsによって作成されました ``` `yagisan` コマンドを使って、XMLファイルから帳票テンプレートファイルを作成します。 ```sh npx yagisan yrt pack layout.xml -O template.yrt ``` ```sh pnpm exec yagisan yrt pack layout.xml -O template.yrt ``` ## アプリケーションへの組み込み ### Node.jsで実行する 前述の手順で作成した帳票テンプレートファイルをアクセス可能な場所に配置し、以下のようにコードを記述します。 ```javascript import { createEngine } from '@yagisan-reports/sdk'; // エンタープライズ版を使用する場合: // import YagisanReports from '@yagisan-reports/sdk-enterprise'; import { readFile, writeFile } from 'fs/promises'; // 帳票テンプレートファイルの読み込み const yrt = await readFile('path/to/template.yrt'); // 帳票エンジンのセットアップ const engine = createEngine(); const template = await engine.loadTemplate(yrt); const generator = await template.createPdfReportGenerator(); // 帳票を出力 const report = await generator.generate({ message: 'hello!\nyagisan-reports!!' }); const pdf = await report.getContent(); writeFile('hello.pdf', Buffer.from(pdf)); // 帳票エンジンの破棄 generator.dispose(); template.dispose(); engine.dispose(); ``` ```javascript const { createEngine } = require('@yagisan-reports/sdk'); // エンタープライズ版を使用する場合: // const { createEngine } = require('@yagisan-reports/sdk-enterprise'); const { readFile, writeFile } = require('fs/promises'); (async () => { // 帳票テンプレートファイルの読み込み const yrt = await readFile('path/to/template.yrt'); // 帳票エンジンのセットアップ const engine = createEngine(); const template = await engine.loadTemplate(yrt); const generator = await template.createPdfReportGenerator(); // 帳票を出力 const report = await generator.generate({ message: 'hello!\nyagisan-reports!!' }); const pdf = await report.getContent(); writeFile('hello.pdf', Buffer.from(pdf)); // 帳票エンジンの破棄 generator.dispose(); template.dispose(); engine.dispose(); })(); ``` :::info Node.jsで実行する場合、bundler を使用して yagisan-reports をバンドルすることはできません。 ::: ### Webブラウザで実行する Webブラウザ上で帳票出力を行う場合、3つのセットアップ方法があります。 - パブリックCDNを使う - jsDelivr などのパブリックCDNにホストされた yagisan-reports を使用します。 - もっとも手軽な方法ですが、パブリックCDNの利用規約・プライバシーポリシー等に従う必要があります。 - UMD版をセルフホストする - yagisan-reports モジュールの配置を自分で管理すること以外は、「パブリックCDNを使う」方法とほぼ同等です。 - 任意のbundlerを使う - Vite、webpack、esbuild などの任意の bundler を使用して yagisan-reports を組み込みます。 #### パブリックCDNを使う または UMD版をセルフホストする あらかじめ、以下のファイルをHTTPアクセス可能な場所に配置してください。 - 前述の手順で作成した帳票テンプレートファイル - **[セルフホストの場合のみ]** yagisan-reports の npm パッケージ(通常は `node_modules/@yagisan-reports/sdk`)に含まれるリソース群 - `umd.js` - `reportworker.js` - フォントファイル群(`*.ttf`, `*.glyphdata`, `*.txt`) - フォントファイル群は全て同一のディレクトリに配置する必要があるため、npmパッケージを丸ごとコピーして配置することを推奨します。 HTMLファイルを作成します。以下の部分は環境に合わせて変更してください。 - ` ``` #### 任意のbundlerを使う あらかじめ、以下のファイルをHTTPアクセス可能な場所に配置してください。 - 前述の手順で作成した帳票テンプレートファイル - yagisan-reportsのnpmパッケージ(通常は `node_modules/@yagisan-reports/sdk` )に含まれている以下のファイル群 - `reportworker.js` - フォントファイル群(`*.ttf`, `*.glyphdata`, `*.txt`) - npmパッケージを丸ごとコピーして配置することを推奨します。 コードを記述し、任意のbundlerを使用してバンドルします。 以下の部分は環境に合わせて変更してください。 - `globalOptions` : yagisan-reportsのnpmパッケージを配置したURL - `fetch('path/to/template.yrt')` : 帳票テンプレートファイルのURL ```javascript import { createEngine, globalOptions } from '@yagisan-reports/sdk'; // エンタープライズ版を使用する場合: // import { createEngine } from '@yagisan-reports/sdk-enterprise'; // yagisan-reportsリソースのURLを設定 globalOptions.workerUrl = 'https://example.com/path/to/yagisan-reports/reportworker.js'; globalOptions.fontUrl = 'https://example.com/path/to/yagisan-reports/'; // 帳票テンプレートファイルの読み込み const yrt = await fetch('path/to/template.yrt').then(res => res.arrayBuffer()); // 帳票エンジンのセットアップ const engine = createEngine(); const template = await engine.loadTemplate(yrt); const generator = await template.createPdfReportGenerator(); // 帳票を出力 const report = await generator.generate({ message: 'hello!\nyagisan-reports!!' }); const pdf = await report.getContent(); // 必要に応じて、出力した帳票をダウンロードするコードを記述してください。 console.log(pdf); // 帳票エンジンの破棄 generator.dispose(); template.dispose(); engine.dispose(); ``` ```javascript const { createEngine, globalOptions } = require('@yagisan-reports/sdk'); // エンタープライズ版を使用する場合: // const { createEngine } = require('@yagisan-reports/sdk-enterprise'); // yagisan-reportsリソースのURLを設定 globalOptions.workerUrl = 'https://example.com/path/to/yagisan-reports/reportworker.js'; globalOptions.fontUrl = 'https://example.com/path/to/yagisan-reports/'; (async () => { // 帳票テンプレートファイルの読み込み const yrt = await fetch('path/to/template.yrt').then(res => res.arrayBuffer()); // 帳票エンジンのセットアップ const engine = createEngine(); const template = await engine.loadTemplate(yrt); const generator = await template.createPdfReportGenerator(); // 帳票を出力 const report = await generator.generate({ message: 'hello!\nyagisan-reports!!' }); const pdf = await report.getContent(); // 必要に応じて、出力した帳票をダウンロードするコードを記述してください。 console.log(pdf); // 帳票エンジンの破棄 generator.dispose(); template.dispose(); engine.dispose(); })(); ``` ## 帳票出力APIの解説・注意点 - `createEngine()` - 帳票エンジンのインスタンスを作成します。 - このAPIは、**特に理由がない場合は1回だけ呼び出す**ようにしてください。Webブラウザ上で動作させる場合、このAPIを呼び出した分だけWeb Workerが生成されます。 - `loadTemplate()` - 帳票テンプレートを読み込みます。`ArrayBuffer`, `Uint8Array`, `Buffer` が入力可能です。 - 帳票テンプレートの構文に誤りがあった場合、例外がthrowされます。 - このAPIの初回呼び出し時に、内部でWeb Workerが生成されます(Webブラウザ上で動かす場合のみ)。 - `createPdfReportGenerator()` - このAPIをコールすると、内部ではフォントデータの読み込みを行います。 - フォントデータの読み込みが失敗した場合、例外がthrowされます。 - `generate()` - 実際に帳票PDFを出力します。帳票テンプレートに渡すデータを入力します。 - このAPIは何度呼び出しても構いません。 - `dispose()` - インスタンスを破棄し、リソースを解放します。 - 各APIで作成したリソースは、明示的に `dispose()` を呼び出すまでメモリー上に確保され続けます。 長時間動作させるSPAやサーバー等にyagisan-reportsを組み込む場合は、特に注意してください。 # 帳票テンプレート Source: https://www.yagisan.app/docs/devguide/template/ ここでは、帳票テンプレートの基本について解説します。 あらかじめ、[開発を始める](../start-developing)に従って開発環境のセットアップを完了させていることを推奨します。 ## 帳票テンプレートの構成 帳票テンプレートは、以下の要素で構成されます。 - **レイアウトXML(必須 : 1個以上)** - 帳票のレイアウトや表示内容を定義するXMLです。 - 表紙・明細・裏表紙のように異なる複数のレイアウトを持たせることができます。 - スタイルXML(任意 : 最大1個) - スタイル定義を外部化・共通化するXMLです。 - アセット(任意 : 0個以上) - 帳票に埋め込む画像データ(ロゴ、印影など)と背景用のPDFです。 - 対応形式: PNG、JPEG、PDF これらを1つのファイルにまとめたものが「帳票テンプレートファイル」です。 このファイルの拡張子は `.yrt` としてください。 「帳票テンプレートファイル」のことを、文脈に応じて「帳票テンプレート」「YRTファイル」と記述することがありますが、基本的にはすべて同じものを指します。 ## レイアウトルール yagisan-reportsには2つのレイアウトルールがあり、描画時は必ずどちらかルールに従ってレイアウトを行います。 - リニアルール - 上から下へずらしながら、順番に描画していきます。 - スタックルール - X/Y座標と幅/高さを指定して、絶対位置に描画します(いわゆる絶対配置)。 - 描画要素が重なった場合は、後から描画した要素が前面に表示されます(スタックの命名由来です)。 ## レイアウトの単位系 帳票テンプレートのレイアウト単位は、**ミリメートル(mm)** を基本としています。 ただし、**フォントサイズに限り、ポイント(pt)** 指定となっています。 yagisan-reportsの内部的には、 `1pt` を `25.4 / 72 mm` として扱っています。 よって、 `1mm ≒ 2.83pt`、`1pt ≒ 0.353mm` となります。 ## XMLの構文 XMLはyagisan-reportsの帳票テンプレートを構成する中核要素です。 開発作業でもXMLファイルの編集が中心となるため、yagisan-reportsにおけるXMLの取り扱いについて理解が必要です。 :::info yagisan-reportsのXML仕様は、W3CのXML 1.0勧告 (Fifth Edition) に準拠しています。 ただし、日本語帳票に特化するため、一部を独自拡張をしたり、不要な仕様をサポート外にしたりしています。 ::: #### 文字エンコーディング XMLファイルの文字エンコーディングは、**UTF-8** でなくてはなりません。 #### XML 宣言 XMLファイルの先頭には、以下のようにXML宣言を記述しても構いません。 ただし、yagisan-reportsはXML宣言を無視するため、基本的には記述不要です。 ```xml ``` #### コメント 以下の形式で、XMLファイル内にコメントを記述できます。 ```xml ``` #### 実体参照 以下の実体参照をサポートしています。 | 実体参照 | 表示される文字 | | :------- | :------------- | | `&` | & | | `<` | < | | `>` | > | | `"` | " | | `'` | ' | #### 文字参照 以下のように、「10進数」または「16進数」で文字コードを指定する文字参照をサポートしています。 - `¥` (10進数指定) - `¥` (16進数指定) #### テキストコンテンツ テキストコンテンツ(テキストノード)は、**XML標準を拡張した独自仕様**で取り扱います。 XML標準と同様に、以下のようにテキストコンテンツを記述できます。 ```xml Hello, yagisan-reports! ``` 途中で改行を含むことも可能です。 帳票エンジンは、改行はそのまま改行として認識します。 ```xml Hello, yagisan-reports! ``` yagisan-reportsで特異な点は、マルチラインモードとインデントをサポートしているところです。 以下のように、「開始タグの後ろ」と「終了タグの前」で改行をして、複数行で記述することもできます。 タグ内の文字列にインデントを付けて記述しても構いません。 ```xml Hello, yagisan-reports! ``` 帳票エンジンは、インデントを除去してテキストコンテンツを認識します。 ``` Hello, yagisan-reports! ``` インデントは一番左にある文字列の位置に合わせて認識されます。 以下の例では4行目のテキストが一番左にあるため、これがインデントの基準位置として認識されています。 ```xml 〒460-0012 愛知県名古屋市中区 千代田2-24-34 デンキヤギ株式会社 ``` ``` 〒460-0012 愛知県名古屋市中区 千代田2-24-34 デンキヤギ株式会社 ``` #### 4値を指定する属性 罫線や余白を設定する属性では、(上/下/左/右)の値を指定します。 記述方法はCSSと同様で、1-4個の値をスペース区切りで指定します。 - 1値を指定 : 全四辺に同じ値を適用 - 2値を指定 : 1つ目は上下、2つ目は左右の辺に適用 - 3値を指定 : 1つ目は上、2つ目は左右、3つ目は下の辺に適用 - 4値を指定 : それぞれ上、右、下、左の順 (時計回り) に適用 ```xml ``` 値に `_` を指定すると、値の指定を省略した(未指定とした)ことになります。 ```xml ``` また、`borderRadius` などの四隅(左上/右上/右下/左下)を指定する属性も、CSSの記述方法と同様です。 値に `_` を記述して、指定の省略をすることもできます。 - 1値を指定 : 全四隅に同じ値を適用 - 2値を指定 : 1つ目は左上/右下、2つ目は右上/左下に適用 - 3値を指定 : 1つ目は左上、2つ目は右上/左下、3つ目は右下に適用 - 4値を指定 : それぞれ左上、右上、右下、左下の順 (時計回り) に適用 #### サポートしていないXML仕様 以下のXML仕様はサポートしていません。 - CDATAセクション - 処理命令 (processing instruction) # レイアウトXML Source: https://www.yagisan.app/docs/devguide/template/layout-xml ## レイアウトルート 「レイアウトルート」はレイアウトXMLのルート要素で、用紙レベルのレイアウトを設定します。 `` と `` の2つがありますが、通常は取り扱いが簡単な `` の使用を推奨します。 また、レイアウトルートでは、以下のようにXML Schemaを参照することができます。 XML Schemaは必須ではありませんが、参照することで、XML Schema対応エディターで入力補完やバリデーションが効くようになります。 ```xml ``` ### `` リニアルールに基づいてレイアウトを行います。 - 改ページに対応しており、各ページに繰り返し表示するヘッダーとフッターを定義することができます。 - 請求書や一覧表のような明細が動的に変化し、複数ページにわたる可能性がある帳票に向いています。 以下が記述例です。 - `` は必須です。 - `` と `` は省略可能です。記述する場合は `height` 属性が必須です。 ```xml ヘッダー 本文 フッター ``` ### `` スタックルールに基づいてレイアウトを行います。 - 改ページには対応していませんが、任意のPDFを背景として使用することができます。 - 既存PDFをひな形にして追記したり、窓付き封筒の宛名面のような厳密に位置指定をしたい帳票に向いています。 以下が記述例です。 - `` の直下に描画要素を記述します。 ```xml 本文 ``` 以下のように `basePdf` 属性を使うことで、既存のPDFをページの背景に設定できます。 `basePdf` 属性には、アセットやテンプレート変数を指定しますが、これらの指定方法については後ほど解説します。 ```xml ``` ## 用紙の設定 レイアウトルート要素では、用紙関連の属性を指定できます。 - size : 用紙のサイズ - `A4`, `B5`, `Letter` など、一般的な用紙サイズを指定できます。 - スペース区切りで2値を記述することで、カスタムサイズも指定可能です。例えば `91 55` と記載すると「91mm × 55mm」となります。 - orientation : 用紙の向き - `portrait`(縦向き)または `landscape`(横向き)を指定できます。 - margin : 用紙の余白 - CSSの `margin` のように、1-4個の値で上下左右の余白の大きさを指定できます。 - 例えば `10` と指定すると、4辺すべての余白が10mmになります。`10 20` と指定すると、上下10mm・左右20mmの余白となります。 ## コンポーネント 帳票内に配置するテキスト、画像、図形、表、レイアウト用のコンテナなどの要素を総称して「コンポーネント」と呼びます。 コンポーネントはレイアウトルートやコンテナ系コンポーネントの配下に記述して使います。 提供されているコンポーネントは以下の通りです。詳細はテンプレートリファレンスを参照してください。 - テキスト系コンポーネント - `` : 横書きテキスト - `` : 縦書きテキスト - `` : ハイパーリンク - `` : 文字を1文字ずつセルに分割して配置 - 法人番号のようなコードを桁ごとに分割して取り扱うことに特化しています。 - `` : 装飾付きテキスト - 図画系コンポーネント - `` : 画像 - `` : 長方形 - `` : 楕円 - コンテナ系コンポーネント - `` : リニアルールのシンプルなコンテナ - `` : スタックルールのシンプルなコンテナ - `` : 行と列で構成されるグリッド構造を持つコンテナ - `` : 入力したデータを表形式で描画(可変行明細) - `` : `` と `
` に改ページ対応のヘッダー・フッターを追加するコンテナ - その他のコンポーネント - `` : 余白の挿入 yagisan-reportsのレイアウトシステムの大きな特長として、**コンテナ系コンポーネントが入れ子にできる(ネスト可能)である**ことが挙げられます。 これにより、複雑なレイアウトを柔軟に表現することができます。 ## テンプレート変数 帳票テンプレートでは、変数(テンプレート変数)を使用して、動的に内容を変更することができます。 テンプレート変数は `${value}` の形式で記述します。 ```xml ${message} ``` アプリケーション側では、テンプレート変数へ代入する値は `generate()` の引数でオブジェクトを入力します。 テンプレート変数へ入力できるデータは、JSONとして表現できるデータ型およびバイナリデータ(`ArrayBuffer` と `Uint8Array`)です。 バイナリデータは、画像やPDFを入力する際に使用します。 ```js const report = await generator.generate({ color: 'red', message: 'hello!\nyagisan-reports!!' }); ``` テンプレート変数はレイアウトXMLの以下の場所で指定できます。 - テキストコンテンツ(テキスト系コンポーネントのコンテンツ) - 各要素の属性値のうち、「テンプレート変数が使用可能」と指定があるもの テキストコンテンツでは以下のように、文字列の一部としてテンプレート変数を埋め込むことも可能です。 ```xml Hello, ${name}! ``` ### ドット記法 `${foo.bar.baz.qux}` のように「ドット区切り」で記述することで、ネストしたオブジェクトのプロパティを参照させることができます。 ```xml ${currentUser.name} ``` ```js const report = await generator.generate({ currentUser: { id: 123, name: '帳票太郎', } }); ``` ### ブラケット記法 `${foo[0]}` のように「ブラケット」で配列添字を記述することで、配列の要素を参照させることができます。 ```xml ${users[0]} ``` ```js const report = await generator.generate({ users: ['帳票太郎', '帳票花子'], }); ``` ### 演算子 `!` 演算子(NOT演算子)のみサポートしています。 `${!enabled}` のように記述します。 [Boolean](../../template-reference/datatype/Boolean.md) 型の属性でのみ使用可能です。 ## 定義済みのテンプレート変数 yagisan-reportsでは、定義済みテンプレート変数が用意されています。 テキスト系コンポーネントのコンテンツで使用可能です。 ### ページ情報 以下のテンプレート変数は、`` `` `` 要素の配下でのみ使用できます。 | 変数 | 説明 | | :--------------------- | :------------------------- | | `${Report.page}` | 帳票全体のページ番号 | | `${Report.totalPages}` | 帳票全体の総ページ数 | | `${Layout.page}` | レイアウトごとのページ番号 | | `${Layout.totalPages}` | レイアウトごとの総ページ数 | 例えば、帳票テンプレート内に「表紙」「明細」「裏表紙」という3つのレイアウトXMLが存在し、「表紙と裏表紙は1ページで、明細が3ページに渡る場合」では、変数の値は以下のようになります。 - 表紙 - `${Report.page}` : 1 - `${Layout.page}` : 1 - 明細1枚目: - `${Report.page}` : 2 - `${Layout.page}` : 1 - 明細2枚目: - `${Report.page}` : 3 - `${Layout.page}` : 2 - 明細3枚目: - `${Report.page}` : 4 - `${Layout.page}` : 3 - 裏表紙: - `${Report.page}` : 5 - `${Layout.page}` : 1 ## アセット 帳票テンプレートに登録されているアセットは、レイアウトXMLから参照できます。 アセットの登録は、帳票テンプレートの作成時に行います。 以下のように `-A path@name` または `--asset path@name` 形式で、アセットのパスと名称を指定します。 ```sh npx yagisan yrt pack \ -A /path/to/asset.png@asset1 \ -O template.yrt \ layout.xml ``` レイアウトXMLからアセットを参照するには `@{name}` の形式で指定します。 ```xml ``` ## 制御構造 `logic` 属性により制御構造を実現できます。 この属性は大半の要素で使用可能ですが、一部の要素は非対応です。 ### if `logic="if:${template_variable}"` を指定した要素は、真と判定された場合のみ、XML上に存在するものとして処理されます。 - テンプレート変数は [Boolean](../../template-reference/datatype/Boolean.md) 型の値として評価されます。 - どのように評価されるかについては、 [Boolean](../../template-reference/datatype/Boolean.md) 型のドキュメントを参照してください。 - テンプレート変数が `false` と評価された場合、要素がXML上に存在しないものとして扱われ、後続のレイアウト処理や描画処理の対象となりません。 ```xml trueの場合だけ描画されます ``` ### unless `logic="unless:${template_variable}"` を指定した要素は、偽と判定された場合のみ、XML上に存在しないものとして処理されます。 `if` とは反対の動作をします。 ```xml falseの場合だけ描画されません ``` ### for `for:${template_variable}` を指定した要素は、入力した配列の要素ごとに繰り返し展開されます。 - テンプレート変数は [Array](../../template-reference/datatype/Array.md) 型の値として評価されます。 - テンプレート変数に入力した配列の要素が0個だった場合は、要素がXML上に存在しないものとして処理されます。 ```xml こんにちは! ``` また、forでループを展開する際に、テンプレート変数のコンテキストが配列の要素に変更されます。 ```xml ${name} ``` ```js const report = await generator.generate({ items: [ {name: 'タンバリン' }, {name: 'ピアノ' }, {name: 'シンバル' }, {name: 'ドラム' }, ], }); ``` このような場合、以下のように描画されます。 ``` タンバリン ピアノ シンバル ドラム ``` ## 改ページ制御 `` では、コンテンツが1ページ内に収まらなかった場合に、自動で改ページを行います。 要素の途中で改ページが必要になった場合、改ページ位置は自動的に決定します。 制御方法は複雑ですが、基本的には以下のように動作します。 - `` の場合、現在のページには余白の途中までを描画し、次のページでは残りの余白を描画しません。 - `` `` `
` などの行で区切り位置が判定できる要素の場合、ページを跨いでしまう行は次のページに送ります。 - `` `` `` などの明確な区切り位置が判定できない要素の場合、要素全体を次のページに送ります。 ただし、`` が元々用紙よりも大きなサイズであるようなケースなど、どうやっても改ページ制御がうまくいかない場合は、強制的に要素を分割して描画します。 また、`` `` `
` などの改ページ位置が自動判定できる要素では、`breakInside` 属性を指定することで改ページルールを変更できます。 `breakInside="avoid"` を指定した要素は、``などと同様に、要素の途中での改ページをできるだけ避けるように動作します。 # コンポーネントの概要 Source: https://www.yagisan.app/docs/devguide/template/components-overview ## テキスト ### テンプレート変数 テキスト系コンポーネントでは、要素のコンテンツとしてテンプレート変数 `${変数名}` を埋め込むことができます。 ```xml ${foo}hello ${foo}${foo} : ${bar} ``` [レイアウトXMLのテンプレート変数の解説](./layout-xml.md#テンプレート変数)もあわせて参照してください。 ### テキストの装飾 テキスト系コンポーネントでは、共通して以下の属性が設定可能です。 | 属性 | 概要 | | :----------- | :----------------- | | `fontFamily` | フォントファミリー | | `size` | フォントサイズ | | `color` | テキストの色 | | `bold` | 太字 | `fontFamily` に以下のフォントが指定できます。 ユーザー独自のフォント(ユーザーフォント)を使用することも可能です。 - `gothic` : ゴシック体(BIZ UDゴシック) - `mincho` : 明朝体(BIZ UD明朝) ### `` `` は、横書きのテキストを描画するコンポーネントです。 ```xml 請求書 ``` #### 文字の配置 : `align`, `valign`, `lineGap`, `letterSpacing` `align` はテキストの水平方向の配置を指定します。 - `left` : 左揃え(規定値) - `center` : 中央揃え - `right` : 右揃え - `justify` : 均等割付(文字間を調整してテキスト領域の幅いっぱいに配置) `valign` はテキストの垂直方向の配置を指定します。 - `top` : 上揃え(規定値) - `center` : 中央揃え - `bottom` : 下揃え `lineGap` は行間の大きさを指定します。フォントサイズに対する倍率で指定します(例: `1` でフォントサイズと同じ大きさの行間)。 `letterSpacing` は字間の大きさを指定します。`lineGap` と同様にフォントサイズに対する倍率で指定します。 #### 折り返し : `wordwrap` `wordwrap` はテキストの折り返しの挙動を指定します。 - `normal`: テキスト領域の幅に応じて自動的に折り返します。英数字の途中では改行しません。(規定値) - `none` : 自動的な折り返しを行いません。テキストに含まれる改行のみが有効です。 #### 文字あふれの制御 : `overflow` `overflow` はテキストが描画領域に収まらない場合の挙動を指定します。 - `clip` : はみ出した部分を描画しません。(規定値) - `fit` : 領域に収まるようにフォントサイズを縮小して描画します。 ### `` `` は、縦書きのテキストを描画するコンポーネントです。 基本的な属性は `` と同じですが、縦書き固有の属性として `wordwrapOrientation` が追加されています。 `wordwrapOrientation` は、行の折り返し方向(`rightToLeft` または `leftToRight`)を指定します。 ```xml 縦書きのテキストです。 ``` ### `` `` は、ハイパーリンク付きテキストを描画するコンポーネントです。 `` と同じ属性に加えて、リンク先URLを指定する `to` 属性(必須)があります。 ```xml リンクテキスト ``` ### `` `` は、装飾付きテキストを描画するコンポーネントです。 以下のように、テキストコンテンツ内で `` 要素を使用して、部分的に装飾を変更できます。 ```xml Hello, yagisan-reports! ``` `` 要素は入れ子にして記述しても構いません。 ```xml Hello, yagisan-reports! ``` ### `` `` は、文字を1文字ずつセルに分割して配置するコンポーネントです。 yagisan-reportsの中でも特殊なコンポーネントで、テキスト系コンポーネントであると同時に、`` のような性質をもつコンポーネントでもあります。 - テキスト系コンポーネントとして、テキスト装飾属性が指定できます。 - `` と同様に、`cols` 属性でセルを指定できます。セルには1文字ずつ文字が配置されます。 以下は、5文字分のセルを持つ `` の例です。 ```xml 12345 ``` ## 図形 ### `` `` は、画像(PNG, JPEG)を描画するコンポーネントです。 `src` 属性(必須)で画像データを指定します。アセット参照(`@{assetName}`)も使用できます。 ```xml ``` | 属性 | 概要 | | :------- | :------------------------------------------------------- | | `src` | 画像データ(必須) | | `width` | 描画領域の幅(必須) | | `height` | 描画領域の高さ(必須) | | `fit` | 画像のフィット方法(`contain`: アスペクト比を維持、`fill`: 領域全体に引き伸ばし) | | `align` | 水平方向の配置(`left` `center` `right`) | | `valign` | 垂直方向の配置(`top` `center` `bottom`) | ### `` `` は、楕円(円)を描画するコンポーネントです。 ```xml ``` ### `` `` は、四角形を描画するコンポーネントです。 `borderRadius` 属性で角丸を指定することもできます。 ```xml ``` ## レイアウト装飾 ### `` `` は、余白を挿入するだけのコンポーネントです。 ```xml タイトル 本文 ``` ### `` `` は、水平区切り線を挿入するコンポーネントです。 ```xml ``` ## レイアウトコンテナ ### `` と `` `` と `` は、名前の通り、コンテンツ(子コンポーネント)をリニアルール・スタックルールでレイアウトするコンテナです。 部分的にレイアウトルールを切り替えたい場合に使用します。 以下の属性を指定できるため、単にデザインコンテナとしても使用できます。 | 属性 | 概要 | | :---------------- | :-------------------------------------- | | `align` | コンテンツの水平方向の配置を設定します。| | `valign` | コンテンツの垂直方向の配置を設定します。| | `borderThickness` | 境界線の太さを設定します。 | | `borderColor` | 境界線の色を設定します。 | | `borderStyle` | 境界線の描画パターンを設定します。 | | `backgroundColor` | 背景色を設定します。 | | `padding` | 領域の内側の余白の大きさを設定します。 | また、帳票ならではの特異なユースケースとして、「テキストの上に円や印影を重ねる」という使い方があります。 以下は「1の上に円を重ねる」例です。 ```xml 1.法人事業所 2.個人事業所 3.国・地方公共団体 ``` ### `` `` は、行と列で構成されるグリッド構造を持つコンテナ要素です。子要素の `` と合わせて使用します。 単純な表を構成するだけではなく、セル結合を駆使して複雑な表を構成したり、罫線を表示しないようにして2段組みレイアウトに使ったりと、様々な使い方が可能です。 #### グリッド領域の分割 `` を使うには、まず `cols` 属性と `rows` 属性でグリッド領域を分割します。 `cols` 属性では、各列の幅をスペース区切りで指定します。 指定可能な値は以下の通りです。 - 符号なし実数値 : 固定値 - `*` : 固定値の列を除いた「残りの幅」を均等に分割 例えば、``全体の幅が500mmである場合に、`cols` 属性の `*` の動作は以下のようになります。 - `cols="100 * 150"` - 1列目: `100mm` - 2列目: `(500 - 100 - 150) / 1 = 250mm` - 3列目: `150mm` - `cols="100 * *"` - 1列目: `100mm` - 2-3列目: `(500 - 100) / 2 = 200mm` `rows` 属性では、各行の高さをスペース区切りで指定します。 指定可能な値は以下の通りです。 - 符号なし実数値 : 固定値 - `n:` : `n` 以上(nは符号なし実数値) - `:m` : `m` 以下(mは符号なし実数値) - `n:m` : `n` 以上 `m` 以下(n, mは符号なし実数値) - `auto` : セル内コンテンツの高さに合わせて自動調整 #### セルの配置と結合 `` にセルを配置するには、子要素として `` を記述します。 `col` 属性と `row` 属性でセルの位置を指定します。 最初の列と行は `0` から始まります。 ```xml 左上 右上 左下 右下 ``` `colspan` 属性と `rowspan` 属性を指定することで、セルを結合することができます。 ```xml 3×2 左下 右下 ``` `` の子要素には、複数のコンポーネントをコンテンツとして記述できます。 リニアルールに基づいて、コンテンツは上から下へ順番に描画されます。 また、`` では以下の属性も指定できます。 | 属性 | 概要 | | :---------------- | :-------------------------------------- | | `align` | コンテンツの水平方向の配置を設定します。| | `valign` | コンテンツの垂直方向の配置を設定します。| | `backgroundColor` | セルの背景色を設定します。 | | `padding` | セルの内側の余白の大きさを設定します。 | #### 罫線の設定 `` では、大きく分類して3系統の罫線属性が用意されています。 - `` の `borderXxx` 属性 - `` 全体のすべての罫線を一括で指定します。 - `` の `outerBorderXxx` 属性 - `` 全体の外周の罫線を一括で指定します。 - `` の `borderXxx` 属性 - 各セルの境界線を個別に指定します。 `borderThickness` や `outerBorderColor` のように、それぞれの系統で罫線の太さ・色・スタイルを設定できます。 これらの罫線属性は同時に設定して衝突した場合は、以下の優先順位で解決されます。 1. `` の `borderXxx` 属性 2. `` の `outerBorderXxx` 属性 3. `` の `borderXxx` 属性 また、スタイルXMLでは、セル範囲を指定して罫線を設定できる `` 要素も用意されています。 #### 制限と代替手段 `` 自体にはヘッダー・フッターという概念はありませんが、`` と組み合わせることで、改ページ対応のヘッダー・フッターを付与できます。 ### `
` `
` は、テンプレート変数で入力したデータを表形式で描画するコンポーネントです。 可変行明細やデータグリッドなどとも呼ばれます。 `
` は列を基準にレイアウトを定義します。 以下の記述例をもとに、各要素を説明します。 ```xml
品名 ${name} 数量 ${quantity} 単価 ${unitPrice} 金額 ${price}
``` - `items` 属性 - テンプレート変数を指定します。配列である必要があります。 - 配列の各要素が1行分のデータとして描画されます。 - `` 要素 - 列を定義します。`` は1個以上必要です。 - `width` 属性で列の幅を指定します。`` の `cols` 属性と同様に、固定値(符号なし実数値)と `*` を指定できます。 - `` 要素 - 可変行(明細行)のセルを描画するためのテンプレートを定義します。この要素は必ず1つ記述します。 - `` の子要素には、コンポーネントを記述します。 - 複数のコンポーネントを記述でき、各行の描画時にはリニアルールでレイアウトされます。 - `` `` 要素で、各列のヘッダー・フッターを定義します。 - この2つの要素は省略可能です。 - `` が改ページされる場合、全てのページで同じヘッダー・フッターが表示されます。 #### 罫線の設定 `
` では、大きく分類して3系統の罫線属性が用意されています。 - `
` の `borderXxx` 属性 - `
` 全体のすべての罫線を一括で設定します。 - `
` の `outerBorderXxx` 属性 - `
` 全体の外周の罫線を一括で設定します。 - `` `` `` の `borderXxx` 属性 - 各セルの境界線を個別に設定します。 `borderThickness` や `outerBorderColor` のように、それぞれの系統で罫線の太さ・色・スタイルを設定できます。 これらの罫線属性は同時に設定して衝突した場合は、以下の優先順位で解決されます。 1. `` `` `` の `borderXxx` 属性 2. `
` の `outerBorderXxx` 属性 3. `
` の `borderXxx` 属性 また、スタイルXMLでは、セル範囲を指定して罫線を設定できる `` 要素も用意されています。 #### 制限と代替手段 `
` の制限として、セルの結合はできませんが、以下の代替手段があります。 - ヘッダー・フッターのセル結合が必要な場合は、`` と組み合わせます。 - 可変行を縦方向に結合したい(グループごとにまとめる、キーブレイク)場合は、`` で `
` を入れ子にして記述します。 - 可変行を横方向に結合したい場合は、`` の中で `` を使用します。 ### `` `` は、`` と `
` に、改ページ対応のヘッダー・フッターを追加するコンテナです。 `` の直下には `` または `
` を1つだけ記述し、あわせて以下の要素を任意で記述します。 - `` : 全体で1回だけ描画するヘッダー領域を定義します。 - `` : 各ページのヘッダー領域を定義します。 - `` : 各ページのフッター領域を定義します。 - `` : 全体で1回だけ描画するフッター領域を定義します。 これらの4つの要素の子要素には、コンポーネントを記述します。 複数のコンポーネントを記述した場合は、リニアルールに基づいて上から下へ順番に描画されます。 また、`` の特殊な点として、隣接する `` の構成要素で罫線のあるコンポーネントを配置した場合に、罫線を重ね合わせて描画します。 この特性を利用することで、複雑なヘッダー・フッターを持つ表(例えば、請求書に小計欄を付けるなど)を簡単に表現できます。 以下の例では `
` の下に、小計・消費税・合計欄をもつ `` を配置しています。 ```xml
品名 ${name} 金額 ${price}
小計 ${total} 消費税 ${tax} 合計 ${totalWithTax} ``` # スタイルXML Source: https://www.yagisan.app/docs/devguide/template/style-xml スタイルXMLは、レイアウトXMLのスタイル定義を外部化・共通化するものです。 HTMLにおけるCSSに相当します。 スタイルXMLは必須ではありませんが、作成すると以下のようなことが可能になります。 - 帳票テンプレート全体のデフォルトスタイル(各要素の属性の既定値)を上書き - 既定フォントを明朝体に変更するような使い方が典型例です。 - 繰り返し使用するスタイルを名前付きで定義し、レイアウトXMLから参照 - CSSのクラスに準ずる機能です。 - グリッドライク要素(`` `` ``)に対して、セル範囲を指定してスタイルを適用 - これはスタイルXMLにのみ存在する機能です。 ## スタイルXMLを使う スタイルXMLを使用するには、スタイルXMLファイルを作成し、帳票テンプレートファイルに追加します。 以下の内容で `style.xml` を作成します。 スタイルXMLの記述方法については、後ほど解説します。 ```xml ``` スタイルXMLを帳票テンプレートファイルに追加するには、yagisanコマンドで `-S` または `--style` オプションを指定します。 ```sh npx yagisan yrt pack layout.xml \ -O template.yrt \ -S style.xml ``` ## ルート要素 スタイルXMLのルート要素は ` ``` `key` 属性の指定の有無で、以下のように挙動が異なります。 - **指定しない場合** - 帳票テンプレート全体のデフォルトスタイルを上書きします。 - `` と定義した場合、レイアウトXMLで記述された全ての `` 要素に対して `fontFamily` 属性の既定値が `mincho` に設定されます。 - **指定する場合** - レイアウトXMLで `style` 属性で参照された場合のみ、スタイルが適用されます。 - `style` 属性の値は、`key` 属性で指定したスタイル名を1つだけ指定可能です。 :::note レイアウトXMLの一部の要素・属性はスタイルXMLには対応していません。 テンプレートリファレンスで「スタイルXML対応」の旨で明記されているものに限り、スタイル要素として記述できます。 ::: ### 指定したセル範囲にスタイルを適用する `` `` 要素を使うことで、グリッドライク要素(`` `
` ``)の指定したセル範囲にスタイルを適用できます。 この2つの要素は、スタイルXMLにのみ存在します。 グリッドライク要素では、 **`` `` 要素のスタイル指定を特別扱いして、最優先で適用します**。 複雑な表組み・罫線設定が必要となるケースで使用することを想定しています。 以下は、`` `` 要素の記述例です。 ```xml ``` #### `` `` 要素は、複数の `` 要素をまとめる要素です。 ` ``` また、`key` 属性を指定しないスタイル要素も、各要素ごとに1つだけしか定義できません。 以下の例では、`key` 属性のない `` 要素が複数存在するため、エラーとなります。 ```xml ``` ### テンプレート変数の使用 スタイルXMLでは、テンプレート変数を使用できません。 # 帳票エンジンの仕組み Source: https://www.yagisan.app/docs/devguide/template/how-engine-work ## 帳票出力フロー yagisan-reportsの帳票エンジンは、概念的には以下のように帳票テンプレートを処理して、帳票PDFを出力します。 1. レイアウトXMLとスタイルXMLの構文解析を行う。 2. レイアウトXMLの構文解析結果にテンプレート変数や制御構造を適用し、Resolved Layoutを生成する。 - `
` の可変行の展開もこのフェーズで行う。 3. Resolved LayoutにスタイルXMLの構文解析結果を適用し、Render Treeを生成する。 - スタイル定義が衝突している場合は、優先度に従って解決する。 4. Render Treeをもとにレイアウト計算を行い、帳票PDFを生成する。 - グリッドライク要素の罫線の衝突解決や、改ページ制御もこのフェーズで行う。 ```mermaid flowchart LayoutXML@{ shape: doc, label: "レイアウトXML"} StyleXML@{ shape: doc, label: "スタイルXML"} Data@{ shape: circle, label: "データ"} ResolvedLayout[Resolved Layout] RenderTree[Render Tree] PDF@{ shape: doc, label: "帳票PDF"} LayoutXML -->|構文解析| ResolvedLayout Data -->|テンプレート変数適用| ResolvedLayout ResolvedLayout ---> RenderTree StyleXML -->|構文解析・スタイル適用| RenderTree RenderTree -->|レイアウト・描画| PDF ``` ## 属性の衝突解決 スタイルXMLがあることで、複数の場所で要素の属性を指定することが可能です。 このため、属性値の指定が衝突することがあります。 ### 衝突解決の基本ルール 属性値の衝突は、基本的には以下の優先度に従って解決します。 1. レイアウトXML側の要素に直接指定された属性値 2. レイアウトXML側の要素に `style` 属性で指定されたスタイル要素の属性値 3. スタイルXMLで定義された `key` 属性を持たないスタイル要素の属性値 4. デフォルトスタイル(レイアウトXMLの各要素が持つ規定の属性値) 以下の例を考えます。 ```xml ``` ```xml ``` この場合、レイアウトXML側に記述されている `` 要素の属性は、以下のように処理されます。 - fontSize : `30` - fontFamily : `mincho` - bold : `true` - これ以外の属性は既定値を適用 ### 4値を指定する属性の衝突解決 4値を指定する属性では「未指定」を表す `_` が指定可能です。 この場合、衝突解決の際にその値は無視され、次の優先度の値が適用されます。 以下のスタイル定義では、`key="customPadding"` の `padding` 属性の1つ目の値が `_` となっています。 よって `key="customPadding"` のスタイルを使用すると、`padding` 属性には `5 2 3 4` が適用されます。 ```xml ``` ## グリッドライク要素での衝突解決 グリッドライク要素(`` `
` ``)の衝突解決は複雑です。 まず、考慮すべき点としては以下が挙げられます。 - スタイルXMLだけではなく、要素全体とセル個別で罫線や背景色を指定できる。 - 隣接するセルの境界線は定義が衝突する場合がある。 - `rangeStyle` 属性(`` `` 要素)での指定は最優先で適用する。 これらを満たすように、以下のような順序で衝突解決を行います。 1. 属性の衝突解決 2. 罫線属性を各セルに反映 3. セル境界線の衝突解決 4. `rangeStyle` 属性の適用 ### グリッドライク要素の内部表現 帳票エンジンの内部では、グリッドライク要素(`` `
` ``)は、全て `` `` 要素と同様のものとして扱っています。 - `
`要素 - `
` 要素は変数を展開した時点で、描画される行数が確定する。 - 内部的には `` `` `` 要素の定義に従って、静的な `` `` 要素相当のデータ構造に変換してから処理している。 - `` 要素 - `` 要素は1行の `` としてみなして処理している。 - レイアウトXMLの上では `` 要素に相当する要素は存在しないが、内部的には1桁ごとに `` 要素が存在するものとして扱う。 ### 属性の衝突解決 前述の「属性の衝突解決」で解説した通り、まずは各要素の属性の衝突解決を行います。 これはグリッドライク要素で特別なことはなく、他の要素と同様に処理します。 ### 罫線属性を各セルに反映 グリッドライク要素では、罫線を3系統から指定できるようになっています。 以下の優先度で罫線属性を各セルに反映します。 1. セルに直接指定された `borderXxx` 属性 2. グリッドライク要素全体の `outerBorderXxx` 属性 3. グリッドライク要素全体の `borderXxx` 属性 4. デフォルトスタイル(各要素が持つ既定の属性値) :::warning この処理は、**「変数の展開や属性の衝突解決が完了した後」に行われる**ことに注意が必要です。 以下のような場合、一見奇妙ですが全てのセルは `borderThickness="regular"` となります。 ```xml ``` ```xml ``` ## 属性 指定可能な属性はありません。 ## 関連情報 - [スタイルXML](../../devguide/template/style-xml) import ComponentAttributes from '@site/src/docs/ComponentAttributes.mdx' import StyleAttributes from '@site/src/docs/StyleAttributes.mdx'; import LogicAttributes from '@site/src/docs/LogicAttributes.mdx'; import StyleElementAttributes from '@site/src/docs/StyleElementAttributes.mdx'; # Spacer Source: https://www.yagisan.app/docs/template-reference/xml-element/Spacer ## 概要 `` は、余白を挿入する装飾用の要素です。 ## XMLの記述例 ### レイアウトXML ```xml ``` ### スタイルXML ```xml ``` :::note スタイルXMLでこの要素を記述することは可能ですが、現在のバージョンでは指定可能な属性はありません。 ::: ## 属性 ### width @dataType=UnsignedFloat @dataUnit=mm @required @stackOnly 描画領域の幅を設定します。 ### height @dataType=UnsignedFloat @dataUnit=mm @required 描画領域の高さを設定します。 ## 関連情報 - [Divider](./Divider) import ComponentAttributes from '@site/src/docs/ComponentAttributes.mdx' import StyleAttributes from '@site/src/docs/StyleAttributes.mdx'; import LogicAttributes from '@site/src/docs/LogicAttributes.mdx'; import StyleElementAttributes from '@site/src/docs/StyleElementAttributes.mdx'; # Divider Source: https://www.yagisan.app/docs/template-reference/xml-element/Divider ## 概要 `` は、水平区切り線を挿入する装飾用の要素です。 ## XMLの記述例 ### レイアウトXML ```xml ``` ### スタイルXML ```xml ``` ## 属性 ### width @dataType=UnsignedFloat @dataUnit=mm @required @stackOnly 描画領域の幅を設定します。 ### borderThickness @dataType=StrokeThickness @dataUnit=mm @default=regular @styleEnabled 罫線の太さを設定します。 ### borderColor @dataType=Color @default=black @styleEnabled 罫線の色を設定します。 ### borderStyle @dataType=StrokeStyle @default=solid @styleEnabled 罫線の描画パターンを設定します。 ## 関連情報 - [Spacer](./Spacer) import ComponentAttributes from '@site/src/docs/ComponentAttributes.mdx' import StyleAttributes from '@site/src/docs/StyleAttributes.mdx'; import LogicAttributes from '@site/src/docs/LogicAttributes.mdx'; import PageBreakAttributes from '@site/src/docs/PageBreakAttributes.mdx'; import StyleElementAttributes from '@site/src/docs/StyleElementAttributes.mdx'; # Text Source: https://www.yagisan.app/docs/template-reference/xml-element/Text ## 概要 `` は、横書きのテキストを描画する要素です。 この要素では、描画したい文字列をテキストコンテンツとして指定します。 テンプレート変数をテキストコンテンツ内で使用することも可能です。 詳細については、以下の開発ガイドを参照してください。 - [開発ガイド > 帳票テンプレート #テキストコンテンツ](../../devguide/template/#テキストコンテンツ) - [開発ガイド > 帳票テンプレート > レイアウトXML #テンプレート変数](../../devguide/template/layout-xml#テンプレート変数) ## XMLの記述例 ### レイアウトXML ```xml これはTextです。 ``` このXMLは以下のように描画されます。 ![描画結果](./Text.png) ### スタイルXML ```xml ``` ## 属性 ### fontFamily @dataType=FontFamily @default=gothic @styleEnabled フォントファミリーを設定します。 ### size @dataType=UnsignedFloat @dataUnit=pt @default=11 @styleEnabled フォントサイズを設定します。 指定可能な値は `1` 以上、`1024` 以下です。 ### color @dataType=Color @default=black @variableEnabled @styleEnabled テキストの色を設定します。 ### bold @dataType=Boolean @default=false @styleEnabled テキストを太字にするかを設定します。 ### underline @dataType=Boolean @default=false @styleEnabled テキストに下線を引くかを設定します。 ### underlinePosition @dataType=UnderlinePosition @default=normal @styleEnabled 下線の描画位置を設定します。 ### lineGap @dataType=UnsignedFloat @default=0 @styleEnabled テキストの垂直方向の行間を設定します。 `size` を基準にした相対サイズを指定します。 例えば、`` と指定した場合、 5.5ポイント分の行間を設けてテキストが描画されます。 ### letterSpacing @dataType=UnsignedFloat @default=0 @styleEnabled テキストの水平方向の字間を設定します。 `size` を基準にした相対サイズを指定します。 例えば、`` と指定した場合、 5.5ポイント分の字間を設けてテキストが描画されます。 ### align @dataType=TextAlign @default=left @variableEnabled @styleEnabled テキストの水平方向の配置を設定します。 `align="justify"` と `letterSpacing` を同時に指定した場合、 `letterSpacing` よりも広い字間となるように両端揃えを行います。 ### valign @dataType=TextVerticalAlign @default=top @variableEnabled @styleEnabled テキストの垂直方向の配置を設定します。 ### wordwrap @dataType=Wordwrap @default=normal @styleEnabled テキストの折り返し方法を設定します。 ### overflow @dataType=Overflow @default=clip @styleEnabled テキストが描画領域内に収まらなかった場合の振る舞いを設定します。 ### width @dataType=UnsignedFloat @dataUnit=mm @required @variableEnabled @stackOnly 描画領域の幅を設定します。 ### height @dataType=FlexHeight @dataUnit=mm @default=auto 描画領域の高さを設定します。 ## 関連情報 - [VText](./VText) - [Link](./Link) - [RichText](./RichText) - [ColumnText](./ColumnText) import ComponentAttributes from '@site/src/docs/ComponentAttributes.mdx' import StyleAttributes from '@site/src/docs/StyleAttributes.mdx'; import LogicAttributes from '@site/src/docs/LogicAttributes.mdx'; import PageBreakAttributes from '@site/src/docs/PageBreakAttributes.mdx'; import StyleElementAttributes from '@site/src/docs/StyleElementAttributes.mdx'; # VText Source: https://www.yagisan.app/docs/template-reference/xml-element/VText ## 概要 `` は、縦書きのテキストを描画する要素です。 この要素では、描画したい文字列をテキストコンテンツとして指定します。 テンプレート変数をテキストコンテンツ内で使用することも可能です。 詳細については、以下の開発ガイドを参照してください。 - [開発ガイド > 帳票テンプレート #テキストコンテンツ](../../devguide/template/#テキストコンテンツ) - [開発ガイド > 帳票テンプレート > レイアウトXML #テンプレート変数](../../devguide/template/layout-xml#テンプレート変数) ## XMLの記述例 ### レイアウトXML ```xml これはVTextです。 ``` このXMLは以下のように描画されます。 ![描画結果](./VText.png) ### スタイルXML ```xml ``` ## 属性 ### fontFamily @dataType=FontFamily @default=gothic @styleEnabled フォントファミリーを設定します。 ### size @dataType=UnsignedFloat @dataUnit=pt @default=11 @styleEnabled フォントサイズを設定します。 指定可能な値は `1` 以上、`1024` 以下です。 ### color @dataType=Color @default=black @variableEnabled @styleEnabled テキストの色を設定します。 ### bold @dataType=Boolean @default=false @styleEnabled テキストを太字にするかを設定します。 ### underline @dataType=Boolean @default=false @styleEnabled テキストに傍線を引くかを設定します。 ### underlinePosition @dataType=VerticalUnderlinePosition @default=right @styleEnabled 傍線の描画位置を設定します。 ### lineGap @dataType=UnsignedFloat @default=0 @styleEnabled テキストの水平方向の行間を設定します。 `size` を基準にした相対サイズを指定します。 例えば、`` と指定した場合、 5.5ポイント分の行間を設けてテキストが描画されます。 ### letterSpacing @dataType=UnsignedFloat @default=0 @styleEnabled テキストの垂直方向の字間を設定します。 `size` を基準にした相対サイズを指定します。 例えば、`` と指定した場合、 5.5ポイント分の字間を設けてテキストが描画されます。 ### align @dataType=TextAlign @default=left @variableEnabled @styleEnabled テキストの水平方向の配置を設定します。 ### valign @dataType=TextVerticalAlign @default=top @variableEnabled @styleEnabled テキストの垂直方向の配置を設定します。 `valign="justify"` と `letterSpacing` を同時に指定した場合、 `letterSpacing` よりも広い字間となるように両端揃えを行います。 ### wordwrap @dataType=Wordwrap @default=normal @styleEnabled テキストの折り返し方法を設定します。 ### wordwrapOrientation @dataType=VTextWordwrapOrientation @default=rightToLeft @styleEnabled 改行時の行の進行方向を設定します。 ### overflow @dataType=Overflow @default=clip @styleEnabled テキストが描画領域内に収まらなかった場合の振る舞いを設定します。 ### width @dataType=UnsignedFloat @dataUnit=mm @required @variableEnabled 描画領域の幅を設定します。 ### height @dataType=FlexHeight @dataUnit=mm @default=auto 描画領域の高さを設定します。 ## 関連情報 - [Text](./Text) import ComponentAttributes from '@site/src/docs/ComponentAttributes.mdx' import StyleAttributes from '@site/src/docs/StyleAttributes.mdx'; import LogicAttributes from '@site/src/docs/LogicAttributes.mdx'; import PageBreakAttributes from '@site/src/docs/PageBreakAttributes.mdx'; import StyleElementAttributes from '@site/src/docs/StyleElementAttributes.mdx'; # Link Source: https://www.yagisan.app/docs/template-reference/xml-element/Link ## 概要 `` は、ハイパーリンクを描画する要素です。 この要素では、描画したい文字列をテキストコンテンツとして指定し、テンプレート変数も使用可能です。 詳細については、以下の開発ガイドを参照してください。 - [開発ガイド > 帳票テンプレート #テキストコンテンツ](../../devguide/template/#テキストコンテンツ) - [開発ガイド > 帳票テンプレート > レイアウトXML #テンプレート変数](../../devguide/template/layout-xml#テンプレート変数) ## XMLの記述例 ### レイアウトXML ```xml ハイパーリンクです ``` このXMLは以下のように描画されます。 ![描画結果](./Link.png) ### スタイルXML ```xml ``` ## 属性 ### to @dataType=String @required @variableEnabled リンク先URLを設定します。 ### fontFamily @dataType=FontFamily @default=gothic @styleEnabled フォントファミリーを設定します。 ### size @dataType=UnsignedFloat @dataUnit=pt @default=11 @styleEnabled フォントサイズを設定します。 指定可能な値は `1` 以上、`1024` 以下です。 ### color @dataType=Color @default=black @variableEnabled @styleEnabled テキストの色を設定します。 ### bold @dataType=Boolean @default=false @styleEnabled テキストを太字にするかを設定します。 ### underline @dataType=Boolean @default=false @styleEnabled テキストに下線を引くかを設定します。 ### underlinePosition @dataType=UnderlinePosition @default=normal @styleEnabled 下線の描画位置を設定します。 ### lineGap @dataType=UnsignedFloat @default=0 @styleEnabled テキストの垂直方向の行間を設定します。 `size` を基準にした相対サイズを指定します。 例えば、`` と指定した場合、 5.5ポイント分の行間を設けてテキストが描画されます。 ### letterSpacing @dataType=UnsignedFloat @default=0 @styleEnabled テキストの水平方向の字間を設定します。 `size` を基準にした相対サイズを指定します。 例えば、`` と指定した場合、 5.5ポイント分の字間を設けてテキストが描画されます。 ### align @dataType=TextAlign @default=left @variableEnabled @styleEnabled テキストの水平方向の配置を設定します。 `align="justify"` と `letterSpacing` を同時に指定した場合、 `letterSpacing` よりも広い字間となるように両端揃えを行います。 ### valign @dataType=TextVerticalAlign @default=top @variableEnabled @styleEnabled テキストの垂直方向の配置を設定します。 ### wordwrap @dataType=Wordwrap @default=normal @styleEnabled テキストの折り返し方法を設定します。 ### overflow @dataType=Overflow @default=clip @styleEnabled テキストが描画領域内に収まらなかった場合の振る舞いを設定します。 ### width @dataType=UnsignedFloat @dataUnit=mm @required @variableEnabled @stackOnly 描画領域の幅を設定します。 ### height @dataType=FlexHeight @dataUnit=mm @default=auto 描画領域の高さを設定します。 ## 関連情報 - [Text](./Text) - [RichText](./RichText) import ComponentAttributes from '@site/src/docs/ComponentAttributes.mdx' import StyleAttributes from '@site/src/docs/StyleAttributes.mdx'; import LogicAttributes from '@site/src/docs/LogicAttributes.mdx'; import PageBreakAttributes from '@site/src/docs/PageBreakAttributes.mdx'; import StyleElementAttributes from '@site/src/docs/StyleElementAttributes.mdx'; # RichText Source: https://www.yagisan.app/docs/template-reference/xml-element/RichText/ ## 概要 `` は、テキストに複数の書式を適用して描画する要素です。 この要素では、描画したい文字列をテキストコンテンツとして指定します。 テンプレート変数をテキストコンテンツ内で使用することも可能です。 詳細については、以下の開発ガイドを参照してください。 - [開発ガイド > 帳票テンプレート #テキストコンテンツ](../../../devguide/template/#テキストコンテンツ) - [開発ガイド > 帳票テンプレート > レイアウトXML #テンプレート変数](../../../devguide/template/layout-xml#テンプレート変数) また、`` 要素を使うことで、コンテンツの一部に対して書式を指定できます。 後述の「XMLの記述例」を参照してください。 ## XMLの記述例 ### レイアウトXML `` では、テキストコンテンツの一部を `` 要素で囲むことで、その範囲に限定して書式を設定できます。 ```xml これはRichTextです。 ``` このXMLは以下のように描画されます。 ![描画結果](./RichText.png) また、`` は入れ子にして記述しても構いません。 ```xml これは書式をネストした例です。 ``` ![描画結果](./RichText_nested-Span.png) ### スタイルXML ```xml ``` ## 属性 ### fontFamily @dataType=FontFamily @default=gothic @styleEnabled フォントファミリーを設定します。 ### size @dataType=UnsignedFloat @dataUnit=pt @default=11 @styleEnabled フォントサイズを設定します。 指定可能な値は `1` 以上、`1024` 以下です。 ### color @dataType=Color @default=black @variableEnabled @styleEnabled テキストの色を設定します。 ### bold @dataType=Boolean @default=false @styleEnabled テキストを太字にするかを設定します。 ### underline @dataType=Boolean @default=false @styleEnabled テキストに下線を引くかを設定します。 ### underlinePosition @dataType=UnderlinePosition @default=normal @styleEnabled 下線の描画位置を設定します。 ### lineGap @dataType=UnsignedFloat @default=0 @styleEnabled テキストの垂直方向の行間を設定します。 `size` を基準にした相対サイズを指定します。 例えば、`` と指定した場合、 5.5ポイント分の行間を設けてテキストが描画されます。 ### letterSpacing @dataType=UnsignedFloat @default=0 @styleEnabled テキストの水平方向の字間を設定します。 `size` を基準にした相対サイズを指定します。 例えば、`` と指定した場合、 5.5ポイント分の字間を設けてテキストが描画されます。 ### align @dataType=TextAlign @default=left @variableEnabled @styleEnabled テキストの水平方向の配置を設定します。 `align="justify"` と `letterSpacing` を同時に指定した場合、 `letterSpacing` よりも広い字間となるように両端揃えを行います。 ### valign @dataType=TextVerticalAlign @default=top @variableEnabled @styleEnabled テキストの垂直方向の配置を設定します。 ### wordwrap @dataType=Wordwrap @default=normal @styleEnabled テキストの折り返し方法を設定します。 ### overflow @dataType=Overflow @default=clip @styleEnabled テキストが描画領域内に収まらなかった場合の振る舞いを設定します。 ### width @dataType=UnsignedFloat @dataUnit=mm @required @variableEnabled @stackOnly 描画領域の幅を設定します。 ### height @dataType=FlexHeight @dataUnit=mm @default=auto 描画領域の高さを設定します。 ## 関連情報 - [Span](./Span) - [Text](../Text) - [Link](../Link) # Span Source: https://www.yagisan.app/docs/template-reference/xml-element/RichText/Span ## 概要 `` は、`` 要素のテキストコンテンツの一部に対して書式を適用する要素です。 ## XMLの記述例 ### レイアウトXML [``](../RichText) の例を参照してください。 ### スタイルXML `` 要素は、StyleXMLに対応していません。 ## 属性 ### fontFamily @dataType=FontFamily フォントファミリーを設定します。 ### size @dataType=UnsignedFloat @dataUnit=pt フォントサイズを設定します。 指定可能な値は `1` 以上、`1024` 以下です。 ### color @dataType=Color テキストの色を設定します。 ### bold @dataType=Boolean テキストを太字にするかを設定します。 ### underline @dataType=Boolean テキストに下線を引くかを設定します。 ### underlinePosition @dataType=UnderlinePosition 下線の描画位置を設定します。 ## 関連情報 - [RichText](../RichText) import ComponentAttributes from '@site/src/docs/ComponentAttributes.mdx' import StyleAttributesForGridLike from '@site/src/docs/StyleAttributesForGridLike.mdx'; import LogicAttributes from '@site/src/docs/LogicAttributes.mdx'; import StyleElementAttributes from '@site/src/docs/StyleElementAttributes.mdx'; # ColumnText Source: https://www.yagisan.app/docs/template-reference/xml-element/ColumnText ## 概要 `` は、テキストを1文字区切りで描画する要素です。 この要素では、描画したい文字列をテキストコンテンツとして指定します。 テンプレート変数をテキストコンテンツ内で使用することも可能です。 詳細については、以下の開発ガイドを参照してください。 - [開発ガイド > 帳票テンプレート #テキストコンテンツ](../../devguide/template/#テキストコンテンツ) - [開発ガイド > 帳票テンプレート > レイアウトXML #テンプレート変数](../../devguide/template/layout-xml#テンプレート変数) なお、`` は1行で表示するコンポーネントであるため、テキストの改行には対応していません。 ## XMLの記述例 ### レイアウトXML `` と同様に、`cols` 属性で1文字分の列の幅と数を指定します。 ```xml AA12345678 ``` このXMLは以下のように描画されます。 ![描画結果](./ColumnText.png) ### スタイルXML ```xml ``` ## 属性 ### cols @dataType=ColumnLengthList @dataUnit=mm @required @variableEnabled 列の幅と数を設定します。 ### fontFamily @dataType=FontFamily @default=gothic @variableEnabled @styleEnabled フォントファミリーを設定します。 ### size @dataType=UnsignedFloat @dataUnit=pt @default=11 @styleEnabled フォントサイズを設定します。 指定可能な値は `1` 以上、`1024` 以下です。 ### color @dataType=Color @default=black @variableEnabled @styleEnabled テキストの色を設定します。 ### bold @dataType=Boolean @default=false @styleEnabled テキストを太字にするかを設定します。 ### borderThickness @dataType=StrokeThickness @dataUnit=mm @default=0 @styleEnabled 罫線の太さを設定します。 ### borderColor @dataType=Color @default=black @styleEnabled 罫線の色を設定します。 ### borderStyle @dataType=StrokeStyle @default=solid @styleEnabled 罫線の描画パターンを設定します。 ### outerBorderThickness @dataType=EdgeBorderThickness @dataUnit=mm @styleEnabled 外枠の罫線の太さを設定します。 `borderThickness` と同時に指定した場合、外側の罫線には `outerBorderThickness` が適用され、内側の罫線には `borderThickness` が適用されます。 ### outerBorderColor @dataType=EdgeBorderColor @styleEnabled 外枠の罫線の色を設定します。 `borderColor` と同時に指定した場合、外側の罫線には `outerBorderColor` が適用され、内側の罫線には `borderColor` が適用されます。 ### outerBorderStyle @dataType=EdgeBorderStyle @styleEnabled 外枠の罫線の描画パターンを設定します。 `borderStyle` と同時に指定した場合、外側の罫線には `outerBorderStyle` が適用され、内側の罫線には `borderStyle` が適用されます。 ### backgroundColor @dataType=Color @default=transparent @styleEnabled 背景色を設定します。 ### width @dataType=UnsignedFloat @dataUnit=mm @stackOnly=true @required @variableEnabled 描画領域の幅を設定します。 ### height @dataType=FlexHeight @dataUnit=mm @default=auto 描画領域の高さを設定します。 `auto` を指定した場合、コンテンツの高さに合わせて自動的に調整されます。 ## 関連情報 - [Text](./Text) - [Grid](./Grid) - [CellRangeList](./CellRangeList) import ComponentAttributes from '@site/src/docs/ComponentAttributes.mdx' import StyleAttributes from '@site/src/docs/StyleAttributes.mdx'; import LogicAttributes from '@site/src/docs/LogicAttributes.mdx'; import StyleElementAttributes from '@site/src/docs/StyleElementAttributes.mdx'; # Image Source: https://www.yagisan.app/docs/template-reference/xml-element/Image ## 概要 `` は、画像を描画する要素です。 ## XMLの記述例 ### レイアウトXML ```xml ``` このXMLは以下のように描画されます。 ![描画例](./image-example.png) ### スタイルXML ```xml ``` :::note スタイルXMLでこの要素を記述することは可能ですが、現在のバージョンでは指定可能な属性はありません。 ::: ## 属性 ### src @dataType=ByteArray @required @variableEnabled 描画する画像を設定します。対応するデータ形式は、PNGまたはJPEGです。 ### fit @dataType=ImageFit @default=contain 画像を描画領域内にどのように配置するかを設定します。 ### align @dataType=Align @default=left @variableEnabled 画像の水平方向の配置を設定します。 ### valign @dataType=VerticalAlign @default=top @variableEnabled 画像の垂直方向の配置を設定します。 ### width @dataType=UnsignedFloat @dataUnit=mm @required @variableEnabled 描画領域の幅を設定します。 ### height @dataType=UnsignedFloat @dataUnit=mm @required @variableEnabled 描画領域の高さを設定します。 ## 関連情報 - [Ellipse](./Ellipse) - [Rectangle](./Rectangle) import ComponentAttributes from '@site/src/docs/ComponentAttributes.mdx' import StyleAttributes from '@site/src/docs/StyleAttributes.mdx'; import LogicAttributes from '@site/src/docs/LogicAttributes.mdx'; import StyleElementAttributes from '@site/src/docs/StyleElementAttributes.mdx'; # Ellipse Source: https://www.yagisan.app/docs/template-reference/xml-element/Ellipse ## 概要 `` は、円を描画する要素です。 ## XMLの記述例 ### レイアウトXML ```xml ``` このXMLは以下のように描画されます。 ![描画結果](./Ellipse.png) ### スタイルXML ```xml ``` ## 属性 ### borderThickness @dataType=EdgeBorderThickness @dataUnit=mm @styleEnabled 境界線の太さを設定します。 ### borderColor @dataType=EdgeBorderColor @styleEnabled 境界線の色を設定します。 ### borderStyle @dataType=EdgeBorderStyle @styleEnabled 境界線の描画パターンを設定します。 ### fillColor @dataType=Color @styleEnabled 塗りつぶし色を設定します。 ### width @dataType=UnsignedFloat @dataUnit=mm @required @variableEnabled 描画領域の幅を設定します。 ### height @dataType=UnsignedFloat @dataUnit=mm @required @variableEnabled 描画領域の高さを設定します。 ## 関連情報 - [Image](./Image) - [Rectangle](./Rectangle) import ComponentAttributes from '@site/src/docs/ComponentAttributes.mdx' import StyleAttributes from '@site/src/docs/StyleAttributes.mdx'; import LogicAttributes from '@site/src/docs/LogicAttributes.mdx'; import StyleElementAttributes from '@site/src/docs/StyleElementAttributes.mdx'; # Rectangle Source: https://www.yagisan.app/docs/template-reference/xml-element/Rectangle ## 概要 `` は、四角形を描画する要素です。 ## XMLの記述例 ### レイアウトXML ```xml ``` このXMLは以下のように描画されます。 ![描画結果](./Rectangle.png) ### スタイルXML ```xml ``` ## 属性 ### borderThickness @dataType=EdgeBorderThickness @dataUnit=mm @default=regular @styleEnabled 境界線の太さを設定します。 ### borderColor @dataType=EdgeBorderColor @default=black @styleEnabled 境界線の色を設定します。 ### borderStyle @dataType=EdgeBorderStyle @default=solid @styleEnabled 境界線の描画パターンを設定します。 ### borderRadius @dataType=UnsignedFloat @dataUnit=mm @default=0 @styleEnabled 境界線の角の丸みの半径を設定します。 ### fillColor @dataType=Color @default=transparent @styleEnabled 塗りつぶし色を設定します。 ### width @dataType=UnsignedFloat @dataUnit=mm @required @variableEnabled 描画領域の幅を設定します。 ### height @dataType=UnsignedFloat @dataUnit=mm @required @variableEnabled 描画領域の高さを設定します。 include::partial$xy-props.adoc[] include::partial$stylable.adoc[] include::partial$logicControllable.adoc[] ## 関連情報 - [Image](./Image) - [Ellipse](./Ellipse) import ComponentAttributes from '@site/src/docs/ComponentAttributes.mdx' import StyleAttributes from '@site/src/docs/StyleAttributes.mdx'; import LogicAttributes from '@site/src/docs/LogicAttributes.mdx'; import PageBreakAttributes from '@site/src/docs/PageBreakAttributes.mdx'; import StyleElementAttributes from '@site/src/docs/StyleElementAttributes.mdx'; # LinearBlock Source: https://www.yagisan.app/docs/template-reference/xml-element/LinearBlock ## 概要 `` は、コンテンツをリニアルールで(上から下へ順に)配置するコンテナ要素です。 スタックルール内で部分的にリニアルールを適用したい場合や、境界線を設定できるシンプルなコンテナが必要な場合に使用します。 ## XMLの記述例 ### レイアウトXML ```xml これはTextです。 これはLinearBlock内のTextです。 これはLinearBlock内のTextです。 ``` このXMLは以下のように描画されます。 ![描画結果](./LinearBlock.png) ### スタイルXML ```xml ``` ## 属性 ### align @dataType=Align @default=left @variableEnabled コンテンツの水平方向の配置を設定します。 ### valign @dataType=VerticalAlign @default=top @variableEnabled コンテンツの垂直方向の配置を設定します。 ### borderThickness @dataType=EdgeBorderThickness @dataUnit=mm @default=0 @styleEnabled 境界線の太さを設定します。 ### borderColor @dataType=EdgeBorderColor @default=black @styleEnabled 境界線の色を設定します。 ### borderStyle @dataType=EdgeBorderStyle @default=solid @styleEnabled 境界線の描画パターンを設定します。 ### backgroundColor @dataType=Color @default=transparent @styleEnabled 背景色を設定します。 ### padding @dataType=EdgeInsets @dataUnit=mm @default=0 境界線の内側の余白の大きさを設定します。 ### width @dataType=UnsignedFloat @dataUnit=mm @variableEnabled @stackOnly 描画領域の幅を設定します。 ### height @dataType=UnsignedFloat @dataUnit=mm @required 描画領域の高さを設定します。 ## 関連情報 - [StackBlock](./StackBlock) - [LinearLayout](./LinearLayout) import ComponentAttributes from '@site/src/docs/ComponentAttributes.mdx' import StyleAttributes from '@site/src/docs/StyleAttributes.mdx'; import LogicAttributes from '@site/src/docs/LogicAttributes.mdx'; import PageBreakAttributes from '@site/src/docs/PageBreakAttributes.mdx'; import StyleElementAttributes from '@site/src/docs/StyleElementAttributes.mdx'; # StackBlock Source: https://www.yagisan.app/docs/template-reference/xml-element/StackBlock ## 概要 `` は、コンテンツをスタックルール(絶対位置指定)で配置するコンテナ要素です。 リニアルール内で部分的にスタックルールを適用したい場合に使用します。 ## XMLの記述例 ### レイアウトXML ```xml 許可・不許可 ``` このXMLは以下のように描画されます。 ![描画結果](./StackBlock.png) ### スタイルXML ```xml ``` ## 属性 ### borderThickness @dataType=EdgeBorderThickness @dataUnit=mm @default=0 @styleEnabled 境界線の太さを設定します。 ### borderColor @dataType=EdgeBorderColor @default=black @styleEnabled 境界線の色を設定します。 ### borderStyle @dataType=EdgeBorderStyle @default=solid @styleEnabled 境界線の描画パターンを設定します。 ### backgroundColor @dataType=Color @default=transparent @styleEnabled 背景色を設定します。 ### padding @dataType=EdgeInsets @dataUnit=mm @default=0 境界線の内側の余白の大きさを設定します。 ### width @dataType=UnsignedFloat @dataUnit=mm @required @stackOnly 描画領域の幅を設定します。 ### height @dataType=FlexHeight @dataUnit=mm @default=auto 描画領域の高さを設定します。 ## 関連情報 - [LinearBlock](./LinearBlock) - [StackLayout](./StackLayout) import ComponentAttributes from '@site/src/docs/ComponentAttributes.mdx' import StyleAttributesForGridLike from '@site/src/docs/StyleAttributesForGridLike.mdx'; import LogicAttributes from '@site/src/docs/LogicAttributes.mdx'; import PageBreakAttributes from '@site/src/docs/PageBreakAttributes.mdx'; import StyleElementAttributes from '@site/src/docs/StyleElementAttributes.mdx'; # Grid Source: https://www.yagisan.app/docs/template-reference/xml-element/Grid/ ## 概要 `` は、行と列で構成される表組みでレイアウトするコンテナ要素です。セルの結合も可能です。 ## XMLの記述例 ### レイアウトXML ```xml Cell1 Cell2 Cell3 Cell4 ``` このXMLは以下のように描画されます。 ![描画結果](./Grid.png) ### スタイルXML ```xml ``` ## 属性 ### cols @required @dataType=ColumnLengthList @dataUnit=mm 列幅の一覧を設定します。 指定した順序に従い、左から順に列の領域が確保されます。 ### rows @required @dataType=RowLengthList @dataUnit=mm 行の高さの一覧を設定します。 指定した順序に従い、上から順に行の領域が確保されます。 ### borderThickness @dataType=StrokeThickness @dataUnit=mm @default=0 @styleEnabled 罫線の太さを設定します。 ### borderColor @dataType=Color @default=black @styleEnabled 罫線の色を設定します。 ### borderStyle @dataType=StrokeStyle @default=solid @styleEnabled 罫線の描画パターンを設定します。 ### outerBorderThickness @dataType=EdgeBorderThickness @dataUnit=mm @styleEnabled 外枠の罫線の太さを設定します。 `borderThickness` と同時に指定した場合、外側の罫線には `outerBorderThickness` が適用され、内側の罫線には `borderThickness` が適用されます。 ### outerBorderColor @dataType=EdgeBorderColor @styleEnabled 外枠の罫線の色を設定します。 `borderColor` と同時に指定した場合、外側の罫線には `outerBorderColor` が適用され、内側の罫線には `borderColor` が適用されます。 ### outerBorderStyle @dataType=EdgeBorderStyle @styleEnabled 外枠の罫線の描画パターンを設定します。 `borderStyle` と同時に指定した場合、外側の罫線には `outerBorderStyle` が適用され、内側の罫線には `borderStyle` が適用されます。 ### outerBorderRadius @dataType=EdgeBorderRadius @dataUnit=mm @default=0 @styleEnabled 外枠の罫線の角の丸みの半径を設定します。 ### backgroundColor @dataType=Color @default=transparent @styleEnabled 背景色を設定します。 ### width @dataType=UnsignedFloat @dataUnit=mm @required @variableEnabled @stackOnly 描画領域の幅を設定します。 ## 関連情報 - [GridCell](./GridCell) - [Frame](../Frame) - [ColumnText](../ColumnText) - [CellRangeList](../CellRangeList) import StyleAttributes from '@site/src/docs/StyleAttributes.mdx'; import PageBreakAttributes from '@site/src/docs/PageBreakAttributes.mdx'; import StyleElementAttributes from '@site/src/docs/StyleElementAttributes.mdx'; # GridCell Source: https://www.yagisan.app/docs/template-reference/xml-element/Grid/GridCell ## 概要 `` は、 `` の子要素です。表組みの個々のセルを表します。 ## 属性 ### col @dataType=UnsignedInteger @default=0 @variableEnabled セルを配置する列の位置を設定します。 `0` は左端の列を表します。 ### row @dataType=UnsignedInteger @default=0 @variableEnabled セルを配置する行の位置を設定します。 `0` は上端の行を表します。 ### colspan @dataType=UnsignedInteger @default=1 @variableEnabled セルの列の結合数を設定します。 この属性には `1` 以上の値を指定してください。 ### rowspan @dataType=UnsignedInteger @default=1 @variableEnabled セルの行の結合数を設定します。 この属性には `1` 以上の値を指定してください。 ### align @dataType=Align @default=left @variableEnabled コンテンツの水平方向の配置を設定します。 ### valign @dataType=VerticalAlign @default=top @variableEnabled コンテンツの垂直方向の配置を設定します。 ### borderThickness @dataType=EdgeBorderThickness @dataUnit=mm @default=regular @styleEnabled 罫線の太さを設定します。 ### borderColor @dataType=EdgeBorderColor @default=black @styleEnabled 罫線の色を設定します。 ### borderStyle @dataType=EdgeBorderStyle @default=solid @styleEnabled 罫線の描画パターンを設定します。 ### backgroundColor @dataType=Color @default=transparent @styleEnabled 背景色を設定します。 ### padding @dataType=EdgeInsets @dataUnit=mm @default=0 罫線の内側の余白の大きさを設定します。 ## 関連情報 - [Grid](../Grid) import ComponentAttributes from '@site/src/docs/ComponentAttributes.mdx' import StyleAttributesForGridLike from '@site/src/docs/StyleAttributesForGridLike.mdx'; import LogicAttributes from '@site/src/docs/LogicAttributes.mdx'; import PageBreakAttributes from '@site/src/docs/PageBreakAttributes.mdx'; import StyleElementAttributes from '@site/src/docs/StyleElementAttributes.mdx'; # Table Source: https://www.yagisan.app/docs/template-reference/xml-element/Table/ ## 概要 `
` は、入力データを表形式で動的に描画する要素です。 ## XMLの記述例 ### レイアウトXML ```xml
column0 header ${column0} column0 footer column1 header ${column1} column1 footer
``` この `` の例では、テンプレート変数に `items` が指定されています。 これに対して、以下のようなデータを入力します。 ```json { "items":[ { "column0":"col0 row0", "column1":"col1 row0" }, { "column0":"col0 row1", "column1":"col1 row1" } ] } ``` このXMLと入力データでは、以下のように描画されます。 ![描画例](./Table.png) ### スタイルXML ```xml
``` ## 属性 ### items @dataType=Array @variableEnabled `
` に入力するデータを設定します。 :::note この属性の値は、テンプレート変数のみ指定可能です。 ::: ### rowHeight @dataType=FlexHeight @dataUnit=mm @default=auto 行の高さを設定します。 ### minRows @dataType=UnsignedInteger @default=0 最小行数を設定します。 `items` で入力したデータの件数が `minRows` に満たない場合、不足分の空行を挿入します。 ### breakCondition @dataType=Boolean @default=false @variableEnabled 行ごとの改ページ条件を設定します。 :::note この属性の値は、テンプレート変数のみ指定可能です。 ::: 指定したテンプレート変数が `true` と評価される場合、その行の直前に改ページを行います。 この属性の指定は `` の直下の `
` でのみ使用可能です(間に `` が入っているケースも含む)。 それ以外の場所では、この属性の指定は無視されます。 ### borderThickness @dataType=StrokeThickness @dataUnit=mm @default=0 @styleEnabled 罫線の太さを設定します。 ### borderColor @dataType=Color @default=black @styleEnabled 罫線の色を設定します。 ### borderStyle @dataType=StrokeStyle @default=solid @styleEnabled 罫線の描画パターンを設定します。 ### outerBorderThickness @dataType=EdgeBorderThickness @dataUnit=mm @styleEnabled 外枠の罫線の太さを設定します。 `borderThickness` と同時に指定した場合、外側の罫線には `outerBorderThickness` が適用され、内側の罫線には `borderThickness` が適用されます。 ### outerBorderColor @dataType=EdgeBorderColor @styleEnabled 外枠の罫線の色を設定します。 `borderColor` と同時に指定した場合、外側の罫線には `outerBorderColor` が適用され、内側の罫線には `borderColor` が適用されます。 ### outerBorderStyle @dataType=EdgeBorderStyle @styleEnabled 外枠の罫線の描画パターンを設定します。 `borderStyle` と同時に指定した場合、外側の罫線には `outerBorderStyle` が適用され、内側の罫線には `borderStyle` が適用されます。 ### headerBackgroundColor @dataType=Color @default=transparent @styleEnabled ヘッダー行の背景色を設定します。 ### footerBackgroundColor @dataType=Color @default=transparent @styleEnabled フッター行の背景色を設定します。 ### width @dataType=UnsignedFloat @dataUnit=mm @required @variableEnabled @stackOnly 描画領域の幅を設定します。 ## 関連情報 - [TableColumn](./TableColumn) - [TableColumnHeader](./TableColumnHeader) - [TableColumnTemplate](./TableColumnTemplate) - [TableColumnFooter](./TableColumnFooter) - [Frame](../Frame) - [Grid](../Grid) - [CellRangeList](../CellRangeList) # TableColumn Source: https://www.yagisan.app/docs/template-reference/xml-element/Table/TableColumn ## 概要 `` 要素は、`
` の子要素で、表の列を定義する要素です。 ## XMLの記述例 ### レイアウトXML [Table](../Table) の例を参照してください。 ### スタイルXML この要素はスタイルXMLに対応していません。 ## 属性 ### width @dataType=ColumnLength @dataUnit=mm @required 列の幅を設定します。 ## 関連情報 - [Table](../Table) - [TableColumnTemplate](./TableColumnTemplate) - [TableColumnHeader](./TableColumnHeader) - [TableColumnFooter](./TableColumnFooter) import StyleAttributes from '@site/src/docs/StyleAttributes.mdx'; import StyleElementAttributes from '@site/src/docs/StyleElementAttributes.mdx'; # TableColumnTemplate Source: https://www.yagisan.app/docs/template-reference/xml-element/Table/TableColumnTemplate ## 概要 `` 要素は `` の子要素で、列の本体部分のテンプレートを定義する要素です。 ## XMLの記述例 ### レイアウトXML [Table](/docs/template-reference/xml-element/Table/) の例を参照してください。 ### スタイルXML ```xml ``` ## 属性 ### align @dataType=Align @default=left @variableEnabled コンテンツの水平方向の配置を設定します。 ### valign @dataType=VerticalAlign @default=top @variableEnabled コンテンツの垂直方向の配置を設定します。 ### borderThickness @dataType=EdgeBorderThickness @dataUnit=mm @default=regular @styleEnabled 罫線の太さを設定します。 ### borderColor @dataType=EdgeBorderColor @default=black @styleEnabled 罫線の色を設定します。 ### borderStyle @dataType=EdgeBorderStyle @default=solid @styleEnabled 罫線の描画パターンを設定します。 ### backgroundColor @dataType=Color @default=transparent @styleEnabled 背景色を設定します。 ### padding @dataType=EdgeInsets @dataUnit=mm @default=0 罫線の内側の余白の大きさを設定します。 ## 関連情報 - [Table](../Table) - [TableColumn](./TableColumn) - [TableColumnHeader](./TableColumnHeader) - [TableColumnFooter](./TableColumnFooter) import StyleAttributes from '@site/src/docs/StyleAttributes.mdx'; import StyleElementAttributes from '@site/src/docs/StyleElementAttributes.mdx'; # TableColumnHeader Source: https://www.yagisan.app/docs/template-reference/xml-element/Table/TableColumnHeader ## 概要 `` 要素は `` の子要素で、列のヘッダーを記述する要素です。 ## XMLの記述例 ### レイアウトXML [Table](/docs/template-reference/xml-element/Table/) の例を参照してください。 ### スタイルXML ```xml ``` ## 属性 ### align @dataType=Align @default=left @variableEnabled コンテンツの水平方向の配置を設定します。 ### valign @dataType=VerticalAlign @default=top @variableEnabled コンテンツの垂直方向の配置を設定します。 ### borderThickness @dataType=EdgeBorderThickness @dataUnit=mm @default=regular @styleEnabled 罫線の太さを設定します。 ### borderColor @dataType=EdgeBorderColor @default=black @styleEnabled 罫線の色を設定します。 ### borderStyle @dataType=EdgeBorderStyle @default=solid @styleEnabled 罫線の描画パターンを設定します。 ### backgroundColor @dataType=Color @default=transparent @styleEnabled 背景色を設定します。 ### padding @dataType=EdgeInsets @dataUnit=mm @default=0 罫線の内側の余白の大きさを設定します。 ## 関連情報 - [Table](../Table) - [TableColumn](./TableColumn) - [TableColumnTemplate](./TableColumnTemplate) - [TableColumnFooter](./TableColumnFooter) import StyleAttributes from '@site/src/docs/StyleAttributes.mdx'; import StyleElementAttributes from '@site/src/docs/StyleElementAttributes.mdx'; # TableColumnFooter Source: https://www.yagisan.app/docs/template-reference/xml-element/Table/TableColumnFooter ## 概要 `` 要素は `` の子要素で、列のフッターを定義する要素です。 ## XMLの記述例 ### レイアウトXML [Table](/docs/template-reference/xml-element/Table/) の例を参照してください。 ### スタイルXML ```xml ``` ## 属性 ### align @dataType=Align @default=left @variableEnabled コンテンツの水平方向の配置を設定します。 ### valign @dataType=VerticalAlign @default=top @variableEnabled コンテンツの垂直方向の配置を設定します。 ### borderThickness @dataType=EdgeBorderThickness @dataUnit=mm @default=regular @styleEnabled 罫線の太さを設定します。 ### borderColor @dataType=EdgeBorderColor @default=black @styleEnabled 罫線の色を設定します。 ### borderStyle @dataType=EdgeBorderStyle @default=solid @styleEnabled 罫線の描画パターンを設定します。 ### backgroundColor @dataType=Color @default=transparent @styleEnabled 背景色を設定します。 ### padding @dataType=EdgeInsets @dataUnit=mm @default=0 罫線の内側の余白の大きさを設定します。 ## 関連情報 - [Table](../Table) - [TableColumn](./TableColumn) - [TableColumnTemplate](./TableColumnTemplate) - [TableColumnHeader](./TableColumnHeader) import ComponentAttributes from '@site/src/docs/ComponentAttributes.mdx' import StyleAttributes from '@site/src/docs/StyleAttributes.mdx'; import LogicAttributes from '@site/src/docs/LogicAttributes.mdx'; import PageBreakAttributes from '@site/src/docs/PageBreakAttributes.mdx'; import StyleElementAttributes from '@site/src/docs/StyleElementAttributes.mdx'; # Frame Source: https://www.yagisan.app/docs/template-reference/xml-element/Frame/ ## 概要 `` は、`` `
` 要素に対して、改ページに対応したヘッダーやフッターを付加する要素です。 ## XMLの記述例 ### レイアウトXML `
` 要素に対して、カスタムのヘッダー・フッターを付加する例を示します。 ```xml カスタムヘッダー
${column0} ${column1} ${column2}
カスタムフッター ``` `` には以下のようなデータを入力します。 ```json { "items":[ { "column0":"col0 row0", "column1":"col1 row0" }, { "column0":"col0 row1", "column1":"col1 row1" } ] } ``` このXMLと入力データでは、以下のように描画されます。 ![描画結果](./Frame.png) ### スタイルXML ```xml ``` :::note スタイルXMLでこの要素を記述することは可能ですが、現在のバージョンでは指定可能な属性はありません。 ::: ## 属性 ### width @dataType=UnsignedFloat @dataUnit=mm @required @variableEnabled @stackOnly 描画領域の幅を設定します。 ## 関連情報 - [FrameHeader](./FrameHeader) - [FramePageHeader](./FramePageHeader) - [FramePageFooter](./FramePageFooter) - [FrameFooter](./FrameFooter) - [Table](../Table) - [Grid](../Grid) # FrameHeader Source: https://www.yagisan.app/docs/template-reference/xml-element/Frame/FrameHeader ## 概要 `` は、 `` の子要素です。 `` コンテンツがページをまたがる場合、先頭ページのみで描画するヘッダーを表します。 ## XMLの記述例 ### レイアウトXML [Frame](../Frame) の例を参照してください。 ### スタイルXML この要素はスタイルXMLに対応していません。 ## 属性 指定可能な属性はありません。 ## 関連情報 - [Frame](../Frame) - [FramePageHeader](./FramePageHeader) - [FramePageFooter](./FramePageFooter) - [FrameFooter](./FrameFooter) - [Table](../Table) - [Grid](../Grid) # FramePageHeader Source: https://www.yagisan.app/docs/template-reference/xml-element/Frame/FramePageHeader ## 概要 `` は `` の子要素です。 `` コンテンツがページをまたがる場合でも、各ページで繰り返し描画するヘッダーを表します。 ## XMLの記述例 ### レイアウトXML [Frame](../Frame) の例を参照してください。 ### スタイルXML この要素はスタイルXMLに対応していません。 ## 属性 指定可能な属性はありません。 ## 関連情報 - [Frame](../Frame) - [FrameHeader](./FrameHeader) - [FramePageFooter](./FramePageFooter) - [FrameFooter](./FrameFooter) - [Table](../Table) - [Grid](../Grid) # FramePageFooter Source: https://www.yagisan.app/docs/template-reference/xml-element/Frame/FramePageFooter ## 概要 `` は `` の子要素です。 `` コンテンツがページをまたがる場合でも、各ページで繰り返し描画するフッターを表します。 ## XMLの記述例 ### レイアウトXML [Frame](../Frame) の例を参照してください。 ### スタイルXML この要素はスタイルXMLに対応していません。 ## 属性 指定可能な属性はありません。 ## 関連情報 - [Frame](../Frame) - [FrameHeader](./FrameHeader) - [FramePageHeader](./FramePageHeader) - [FrameFooter](./FrameFooter) - [Table](../Table) - [Grid](../Grid) # FrameFooter Source: https://www.yagisan.app/docs/template-reference/xml-element/Frame/FrameFooter ## 概要 `` は、 `` の子要素です。 `` コンテンツがページをまたがる場合、最後のページのみで描画するフッターを表します。 ## XMLの記述例 ### レイアウトXML [Frame](../Frame) の例を参照してください。 ### スタイルXML この要素はスタイルXMLに対応していません。 ## 属性 指定可能な属性はありません。 ## 関連情報 - [Frame](../Frame) - [FrameHeader](./FrameHeader) - [FramePageHeader](./FramePageHeader) - [FramePageFooter](./FramePageFooter) - [Table](../Table) - [Grid](../Grid) import StyleElementAttributes from '@site/src/docs/StyleElementAttributes.mdx'; # CellRangeList Source: https://www.yagisan.app/docs/template-reference/xml-element/CellRangeList/ ## 概要 `` は、 `` 要素のリストを包含する要素です。 :::note この要素はスタイルXMLでのみ使用できます。 ::: ## XMLの記述例 ```xml ``` ## 属性 ## 関連情報 - [CellRange](./CellRange) # CellRange Source: https://www.yagisan.app/docs/template-reference/xml-element/CellRangeList/CellRange ## 概要 `` は、指定したセル範囲に対してスタイルを適用するための要素です。 :::note この要素はスタイルXMLでのみ使用できます。 ::: ## XMLの記述例 ```xml ``` ## 属性 ### col @dataType=IndexRange @default=all スタイルを適用する列の範囲を設定します。 `0` は左端の列を表します。 ### row @dataType=IndexRange @default=all スタイルを適用する行の範囲を設定します。 `0` は上端の行を表します。 ### borderThickness @dataType=StrokeThickness @dataUnit=mm @default=0 @styleEnabled 罫線の太さを設定します。 ### borderColor @dataType=Color @default=black @styleEnabled 罫線の色を設定します。 ### borderStyle @dataType=StrokeStyle @default=solid @styleEnabled 罫線の描画パターンを設定します。 ### outerBorderThickness @dataType=EdgeBorderThickness @dataUnit=mm @styleEnabled 外枠の罫線の太さを設定します。 `borderThickness` と同時に指定した場合、外側の罫線には `outerBorderThickness` が適用され、内側の罫線には `borderThickness` が適用されます。 ### outerBorderColor @dataType=EdgeBorderColor @styleEnabled 外枠の罫線の色を設定します。 `borderColor` と同時に指定した場合、外側の罫線には `outerBorderColor` が適用され、内側の罫線には `borderColor` が適用されます。 ### outerBorderStyle @dataType=EdgeBorderStyle @styleEnabled 外枠の罫線の描画パターンを設定します。 `borderStyle` と同時に指定した場合、外側の罫線には `outerBorderStyle` が適用され、内側の罫線には `borderStyle` が適用されます。 ### outerBorderRadius @dataType=EdgeBorderRadius @dataUnit=mm @default=0 @styleEnabled 外枠の罫線の角の丸みの半径を設定します。 ### backgroundColor @dataType=Color @default=transparent @styleEnabled 背景色を設定します。 ## 関連情報 - [CellRangeList](../CellRangeList) # Align Source: https://www.yagisan.app/docs/template-reference/datatype/Align `Align` は、配下のコンテンツの水平方向の配置方法を表すデータ型です。 ## 構文 以下のいずれかの値を指定します。 ### `left` コンテンツを描画領域の左寄りに配置します。 ### `center` コンテンツを描画領域の中央に配置します。 ### `right` コンテンツを描画領域の右寄りに配置します。 ## 関連情報 関連情報はありません。 # Array Source: https://www.yagisan.app/docs/template-reference/datatype/Array `Array` は、配列を表すデータ型です。 ## 構文 `Array` 型の値は、XMLで直接記述することはできません。 テンプレート変数から値を設定します。 ```xml
``` ```javascript // テンプレート読み込み処理は省略 await generator.generate({ image: [ {id: "item1", value: 1}, {id: "item2", value: 2}, {id: "item3", value: 3}, ], }); ``` ## 関連情報 関連情報はありません。 # Boolean Source: https://www.yagisan.app/docs/template-reference/datatype/Boolean `Boolean` は、論理値を表すデータ型です。 ## 構文 以下のいずれかの値を指定します。 ### `true` 正を表す値です。 ### `false` 偽を表す値です。 ## テンプレート変数 `Boolean` 型の属性に設定したテンプレート変数には、アプリケーション側からは `true` または `false` を入力します。 - 文字列で `"true"` または `"false"` を入力した場合も、それぞれ `true` または `false` として解釈されます。 - これ以外の値を入力した場合は、不正なデータとして解釈し、入力がなかったものとして扱います。 ## 関連情報 関連情報はありません。 # BreakInside Source: https://www.yagisan.app/docs/template-reference/datatype/BreakInside `BreakInside` は、要素がページ内に収まらなかった場合の改ページ方法を表すデータ型です。 ## 構文 以下のいずれかの値を指定します。 ### `auto` 要素の途中で改ページし、コンテンツが複数ページにまたがることを許容します。改ページ位置は、要素の内容やページのレイアウトに基づいて自動的に決定されます。 ### `avoid` 要素の途中で分割されないように、要素の直前で改ページして、要素全体を次ページに送ります。ただし、要素全体を次ページに送っても1ページに収まりきらない場合、以降の改ページは `auto` と同様の方法で行われます。 :::warning 現在のバージョンでは、`avoid` を指定し「要素全体を次ページに送っても1ページに収まりきらない」ケースについて、仕様通りに動作しない可能性があります。 今後のバージョンでの改善を予定しておりますが、もしこの挙動によりご不便やご要望がございましたら、お気軽にお問い合わせください。 ::: ## 関連情報 関連情報はありません。 # ByteArray Source: https://www.yagisan.app/docs/template-reference/datatype/ByteArray `ByteArray` は、バイト列(バイナリデータ)を表すデータ型です。 ## 構文 `ByteArray` 型の値は、XMLで直接記述することはできません。 以下の方法により値を設定します。 ### アセット `ByteArray` 型の属性にはアセットを指定できます。 ```xml ``` アセットについては、[開発ガイド > 帳票テンプレート > レイアウトXML #アセット](../../devguide/template/layout-xml#アセット) を参照してください。 ### テンプレート変数 `ByteArray` 型の属性に設定したテンプレート変数には、アプリケーション側からは `Uint8Array` `ArrayBuffer` の値を入力します。 例えば、画像ファイルをダウンロードして、`` に `ArrayBuffer` を渡すコードは、以下のようになります。 ```xml ``` ```javascript const res = await fetch('path/to/image.png'); const image = await res.arrayBuffer(); // テンプレート読み込み処理は省略 await generator.generate({ image: image, }); ``` ## 関連情報 関連情報はありません。 # Color Source: https://www.yagisan.app/docs/template-reference/datatype/Color `Color` は、色を表すデータ型です。 ## 構文 ### RGB 16進数カラーコード `#RRGGBB` 形式で、赤 `RR`、緑 `GG`、青 `BB` の各成分を16進数で記述します。それぞれの色の成分に指定できる値は `00` (0) から `FF` (255) の範囲です。 ### CMYKカラーコード `C100M100Y100K100` のように、 `C`(シアン)、`M`(マゼンタ)、`Y`(イエロー)、`K`(ブラック)の各成分を `0` から `100` の 整数値で指定します。 ### グレースケール `K100` のように、`K`(ブラック)の成分を `0` から `100` の 整数値で指定します。 ### システム定義値 | 名前 | 説明 | | :------------ | :--------------------------- | | `transparent` | 完全な透明色を表します。 | | `black` | `#000000` として扱われます。 | | `silver` | `#c0c0c0` として扱われます。 | | `gray` | `#808080` として扱われます。 | | `white` | `#ffffff` として扱われます。 | | `maroon` | `#800000` として扱われます。 | | `red` | `#ff0000` として扱われます。 | | `purple` | `#800080` として扱われます。 | | `fuchsia` | `#ff00ff` として扱われます。 | | `green` | `#008000` として扱われます。 | | `lime` | `#00ff00` として扱われます。 | | `olive` | `#808000` として扱われます。 | | `yellow` | `#ffff00` として扱われます。 | | `navy` | `#000080` として扱われます。 | | `blue` | `#0000ff` として扱われます。 | | `teal` | `#008080` として扱われます。 | | `aqua` | `#00ffff` として扱われます。 | | `orange` | `#ffa500` として扱われます。 | ## 関連情報 関連情報はありません。 # ColumnLength Source: https://www.yagisan.app/docs/template-reference/datatype/ColumnLength `ColumnLength` は、列幅を表すデータ型です。 ## 構文 ### 固定幅 [UnsignedFloat](./UnsignedFloat) で指定します。 ### `*` (star) とりうる最大の大きさを表します。 ## 列幅の計算方法 `*` が指定された場合の計算方法は次の通りです。 1. 列全体に割り当て可能な領域から、使用可能な領域から固定幅の列の合計幅を差し引く。 2. 残りの幅を `*` が指定された列に均等に分割する。 ## 関連情報 - [ColumnLengthList](./ColumnLengthList) # ColumnLengthList Source: https://www.yagisan.app/docs/template-reference/datatype/ColumnLengthList `ColumnLengthList` は、列幅の一覧を表すデータ型です。 ## 構文 [ColumnLength](./ColumnLength) をスペース区切りで記述します。 - 必ず1つ以上の値を指定しなければなりません。 ## 関連情報 - [ColumnLength](./ColumnLength) # EdgeBorderColor Source: https://www.yagisan.app/docs/template-reference/datatype/EdgeBorderColor `EdgeBorderColor` は、矩形の境界線の色を表すデータ型です。 ## 構文 1個から4個の [Color](./Color) の値または `_` をスペース区切りで記述します。 `_` は「未指定」であることを表す値です。 指定時の挙動については、[開発ガイド > 帳票テンプレート > 帳票エンジンの仕組み #属性の衝突解決](../../devguide/template/how-engine-work#属性の衝突解決) を参照してください。 ### 1個の値を指定 `a` **上下左右の全辺** に同じ値を設定します。 ### 2個の値を指定 `a b` 1つ目の値を **上下**、2つ目の値を **左右** に設定します。 ### 3個の値を指定 `a b c` 1つ目の値を **上**、2つ目の値を **左右**、3つ目の値を **下** に設定します。 ### 4個の値を指定 `a b c d` 1つ目の値を **上**、2つ目の値を **右**、3つ目の値を **下**、4つ目の値を **左** に設定します。 ## 関連情報 - [Color](./Color) - [EdgeBorderRadius](./EdgeBorderRadius) - [EdgeBorderStyle](./EdgeBorderStyle) - [EdgeBorderThickness](./EdgeBorderThickness) # EdgeBorderRadius Source: https://www.yagisan.app/docs/template-reference/datatype/EdgeBorderRadius `EdgeBorderRadius` は、矩形の境界線の角の丸みの半径を表すデータ型です。 ## 構文 1個から4個の [UnsignedFloat](./UnsignedFloat) の値をスペース区切りで記述します。 `_` は「未指定」であることを表す値です。 指定時の挙動については、[開発ガイド > 帳票テンプレート > 帳票エンジンの仕組み #属性の衝突解決](../../devguide/template/how-engine-work#属性の衝突解決) を参照してください。 ### 1個の値を指定 `a` **四隅** に同じ値を設定します。 ### 2個の値を指定 `a b` 1つ目の値を **左上と右下**、2つ目の値を **右上と左下** に設定します。 ### 3個の値を指定 `a b c` 1つ目の値を **左上**、2つ目の値を **右上と左下**、3つ目の値を **右下** に設定します。 ### 4個の値を指定 `a b c d` 1つ目の値を **左上**、2つ目の値を **右上**、3つ目の値を **右下**、4つ目の値を **左下** に設定します。 ## 関連情報 - [EdgeBorderColor](./EdgeBorderColor) - [EdgeBorderStyle](./EdgeBorderStyle) - [EdgeBorderThickness](./EdgeBorderThickness) # EdgeBorderStyle Source: https://www.yagisan.app/docs/template-reference/datatype/EdgeBorderStyle `EdgeBorderStyle` は、矩形の境界線の描画パターンを表すデータ型です。 ## 構文 1個から4個の [StrokeStyle](./StrokeStyle) の値をスペース区切りで記述します。 `_` は「未指定」であることを表す値です。 指定時の挙動については、[開発ガイド > 帳票テンプレート > 帳票エンジンの仕組み #属性の衝突解決](../../devguide/template/how-engine-work#属性の衝突解決) を参照してください。 ### 1個の値を指定 `a` **上下左右の全辺** に同じ値を設定します。 ### 2個の値を指定 `a b` 1つ目の値を **上下**、2つ目の値を **左右** に設定します。 ### 3個の値を指定 `a b c` 1つ目の値を **上**、2つ目の値を **左右**、3つ目の値を **下** に設定します。 ### 4個の値を指定 `a b c d` 1つ目の値を **上**、2つ目の値を **右**、3つ目の値を **下**、4つ目の値を **左** に設定します。 ## 関連情報 - [StrokeStyle](./StrokeStyle) - [EdgeBorderColor](./EdgeBorderColor) - [EdgeBorderRadius](./EdgeBorderRadius) - [EdgeBorderThickness](./EdgeBorderThickness) # EdgeBorderThickness Source: https://www.yagisan.app/docs/template-reference/datatype/EdgeBorderThickness `EdgeBorderThickness` は、矩形の境界線の太さを表すデータ型です。 ## 構文 1個から4個の [StrokeThickness](./StrokeThickness) の値をスペース区切りで記述します。 `_` は「未指定」であることを表す値です。 指指定時の挙動については、[開発ガイド > 帳票テンプレート > 帳票エンジンの仕組み #属性の衝突解決](../../devguide/template/how-engine-work#属性の衝突解決) を参照してください。 ### 1個の値を指定 `a` **上下左右の全辺** に同じ値を設定します。 ### 2個の値を指定 `a b` 1つ目の値を **上下**、2つ目の値を **左右** に設定します。 ### 3個の値を指定 `a b c` 1つ目の値を **上**、2つ目の値を **左右**、3つ目の値を **下** に設定します。 ### 4個の値を指定 `a b c d` 1つ目の値を **上**、2つ目の値を **右**、3つ目の値を **下**、4つ目の値を **左** に設定します。 ## 関連情報 - [StrokeThickness](./StrokeThickness) - [EdgeBorderColor](./EdgeBorderColor) - [EdgeBorderRadius](./EdgeBorderRadius) - [EdgeBorderStyle](./EdgeBorderStyle) # EdgeInsets Source: https://www.yagisan.app/docs/template-reference/datatype/EdgeInsets `EdgeInsets` は、矩形の余白を表すデータ型です。 ## 構文 1個から4個の [UnsignedFloat](./UnsignedFloat) の値をスペース区切りで記述します。 `_` は「未指定」であることを表す値です。 指定時の挙動については、[開発ガイド > 帳票テンプレート > 帳票エンジンの仕組み #属性の衝突解決](../../devguide/template/how-engine-work#属性の衝突解決) を参照してください。 ### 1個の値を指定 `a` **上下左右の全辺** に同じ値を設定します。 ### 2個の値を指定 `a b` 1つ目の値を **上下**、2つ目の値を **左右** に設定します。 ### 3個の値を指定 `a b c` 1つ目の値を **上**、2つ目の値を **左右**、3つ目の値を **下** に設定します。 ### 4個の値を指定 `a b c d` 1つ目の値を **上**、2つ目の値を **右**、3つ目の値を **下**、4つ目の値を **左** に設定します。 ## 関連情報 関連情報はありません。 # FlexHeight Source: https://www.yagisan.app/docs/template-reference/datatype/FlexHeight `FlexHeight` は、可変サイズの高さを表すデータ型です。 ## 構文 ### `auto` コンテンツの高さに合わせて自動的に調整されます。 ### 範囲指定 次の形式で記述します。 `a` と `b` には [UnsignedFloat](./UnsignedFloat) で高さを指定します。 | 形式 | 説明 | | ----- | ----------------------- | | `a` | 固定値 | | `a:` | `a` 以上 | | `:b` | `b` 以下 | | `a:b` | `a` 以上 `b` 以下の範囲 | ## 関連情報 関連情報はありません。 # Float Source: https://www.yagisan.app/docs/template-reference/datatype/Float `Float` は、実数を表すデータ型です。 ## 構文 次のような記法で値を指定します。 - `100` - `-15` - `3.14` - `-1.414` - `2.7e2` - `0` ## 関連情報 関連情報はありません。 # FontFamily Source: https://www.yagisan.app/docs/template-reference/datatype/FontFamily `FontFamily` は、フォントファミリー名を表すデータ型です。 ## 構文 ### 標準フォント yagisan-reportsに標準で組み込まれているフォントファミリー名です。 | 名前 | 説明 | | :-------- | :------------------------------------------ | | `gothic` | ゴシック体(BIZ UDGothic) | | `mincho` | 明朝体(BIZ UDMincho) | | `pgothic` | プロポーショナルゴシック体(BIZ UDPGothic) | | `pmincho` | プロポーショナル明朝体(BIZ UDPMincho) | ### ユーザーフォント 登録したユーザーフォント名を `String` で指定します。 ## 関連情報 関連情報はありません。 # ImageFit Source: https://www.yagisan.app/docs/template-reference/datatype/ImageFit `ImageFit` は、画像を描画領域内にどのように配置するかを表すデータ型です。 ## 構文 ### `contain` アスペクト比を維持したまま、描画領域に収まるように画像を配置します。 画像と描画領域のアスペクト比が異なる場合は余白ができます。 ### `fill` アスペクト比を無視して、余白ができないように引き伸ばして画像を配置します。 ## 関連情報 関連情報はありません。 # IndexRange Source: https://www.yagisan.app/docs/template-reference/datatype/IndexRange `IndexRange` は、インデックスの範囲を表すデータ型です。 ## 構文 ### `all` 全範囲を指定します。 ### 範囲指定 次の形式で記述します。 - `a` と `b` には [Integer](./Integer) でインデックス番号を指定します。 - 負の値を指定すると、末尾からの位置を指定したものとして扱います。 | 形式 | 説明 | | ----- | ----------------------- | | `a` | 固定値 | | `a:` | `a` 以上 | | `:b` | `b` 以下 | | `a:b` | `a` 以上 `b` 以下の範囲 | ## 関連情報 関連情報はありません。 # Integer Source: https://www.yagisan.app/docs/template-reference/datatype/Integer `Integer` は、整数を表すデータ型です。 ## 構文 次のような記法で値を指定します。 - `123` - `-15` - `0` ## 関連情報 関連情報はありません。 # Logic Source: https://www.yagisan.app/docs/template-reference/datatype/Logic `Logic` は、制御構造を表す特殊なデータ型です。 ## 構文 テンプレート変数と組み合わせて記述します。 ### `if:${value}` テンプレート変数の値が真の場合のみ、コンポーネントを描画します。 ### `unless:${value}` テンプレート変数の値が偽の場合のみ、コンポーネントを描画します。 ### `foreach:${array}` テンプレート変数の配列要素を1つずつ取り出し、コンポーネントを繰り返し描画します。 `foreach` を使用すると、配列の各要素ごとに変数スコープが作成されます。 例えば、次のようなテンプレートとデータを指定します。 ```xml ${message} ``` ```json { "list": [ {"message": "Hello", "color": "red"}, {"message": "World", "color": "blue"} ] } ``` この場合、帳票エンジンは次のようにテンプレート変数を展開して描画します。属性のテンプレート変数にも、配列要素の変数スコープが適用される点に注意してください。 ```xml Hello World ``` ## 関連情報 関連情報はありません。 # Origin Source: https://www.yagisan.app/docs/template-reference/datatype/Origin `Origin` は、X/Y座標の基準点を表すデータ型です。 ## 構文 ### `topLeft` 描画領域の左上を基準点とし、右下方向へ伸ばすように配置します。 ### `topRight` 描画領域の右上を基準点とし、左下方向へ伸ばすように配置します。 ### `bottomLeft` 描画領域の左下を基準点とし、右上方向へ伸ばすように配置します。 ### `bottomRight` 描画領域の右下を基準点とし、左上方向へ伸ばすように配置します。 ## 動作例 例えば、`bottomRight` を指定したコンテナ要素において、子のコンポーネント要素に `x="10" y="20"` を指定した場合、「コンテナ要素の右端から 10mm、下端から 20mm の位置」を起点に左上方向へ伸びるようにコンポーネント要素が配置されます。 ```xml Hello ``` ## 関連情報 関連情報はありません。 # Overflow Source: https://www.yagisan.app/docs/template-reference/datatype/Overflow `Overflow` は、コンテンツが描画領域内に収まらなかった場合の振る舞いを表すデータ型です。 ## 構文 ### `clip` 描画領域内に収まらないコンテンツは欄外に切り捨て描画します。 ### `fit` コンテンツ全体が描画領域内に収まるように縮小して描画します。 ## 関連情報 関連情報はありません。 # PaperOrientation Source: https://www.yagisan.app/docs/template-reference/datatype/PaperOrientation `PaperOrientation` は、用紙の向きを表すデータ型です。 ## 構文 ### `portrait` 用紙の向きを縦方向(縦長)にします。 ### `landscape` 用紙の向きを横方向(横長)にします。 ## 関連情報 - [PaperSize](./PaperSize) # PaperSize Source: https://www.yagisan.app/docs/template-reference/datatype/PaperSize `PaperSize` は、用紙サイズを表すデータ型です。 ## 構文 ### システム定義値 - `A0`, `A1`, `A2`, `A3`, `A4`, `A5`, `A6`, `A7`, `A8` - `B0`, `B1`, `B2`, `B3`, `B4`, `B5`, `B6`, `B7`, `B8` - `executive`, `folio`, `legal`, `letter`, `tabloid` ### カスタムサイズ 2つの [UnsignedFloat](./UnsignedFloat) 値をスペース区切りで記述します。 - 単位はmmです。 - 例えば、 `215.9 355.6` のように記述すると、幅215.9mm/高さ355.6mmの用紙サイズを設定したことになります。 ## 関連情報 - [PaperOrientation](./PaperOrientation) # RowLengthList Source: https://www.yagisan.app/docs/template-reference/datatype/RowLengthList `RowLengthList` は、行の高さの一覧を表すデータ型です。 ## 構文 [FlexHeight](./FlexHeight) をスペース区切りで記述します。 - 必ず1つ以上の値を指定しなければなりません。 ## 関連情報 - [FlexHeight](./FlexHeight) # String Source: https://www.yagisan.app/docs/template-reference/datatype/String `String` は、文字列を表すデータ型です。 ## 構文 任意の文字列を指定します。 文字列では、以下の実体参照が使用可能です。 | 実体参照 | 表示される文字 | | :------- | :------------- | | `&` | & | | `<` | < | | `>` | > | | `"` | " | | `'` | ' | また、以下のような文字参照(「10進数」または「16進数」で文字コードを指定する方法)も使用可能です。 - `¥` (10進数指定) - `¥` (16進数指定) ## 関連情報 関連情報はありません。 # StrokeStyle Source: https://www.yagisan.app/docs/template-reference/datatype/StrokeStyle `StrokeStyle` は、線の描画パターンを表すデータ型です。 ## 構文 ### システム定義値 | 値 | 説明 | | --------- | --------------------------------------------------- | | `none` | 罫線を描画しません(太さも `0` として扱われます)。 | | `solid` | 実線で描画します。 | | `dot` | 点線で描画します。 | | `dash` | 破線で描画します。 | | `dashdot` | 破線と点線を交互に繰り返すパターンで描画します。 | | `double` | 二重線で描画します。 | ### カスタム破線パターン `実線部分` と `空白部分` の2つの長さの組を1つ以上指定することで、任意の破線パターンを作成できます。 - 各値は[UnsignedFloat](./UnsignedFloat) で、`:` 区切りで指定します。数値の単位は mm です。 - 必ず偶数個の値を指定してください。奇数個を指定した場合は構文エラーとなります。 - 指定した値は順番に適用され、最後まで適用したら最初に戻って繰り返します。 例えば `1:2:3:4` と指定した場合、「1mm の実線、2mm の空白、3mm の実線、4mm の空白」の順に繰り返す破線となります。 ## 関連情報 関連情報はありません。 # StrokeThickness Source: https://www.yagisan.app/docs/template-reference/datatype/StrokeThickness `StrokeThickness` は、線の太さを表すデータ型です。 ## 構文 ### システム定義値 | 値 | 説明 | | ------------ | ------------------------------------------------- | | `regular` | 通常の太さ(`0.352mm` = `1pt`)で線を描画します。 | | `thick` | `regular` の2倍の太さで線を描画します。 | | `extraThick` | `regular` の3倍の太さで線を描画します。 | ### カスタム値 任意の [UnsignedFloat](./UnsignedFloat) 値を指定します。 - 単位はmmです。 - 例えば `0.5` と記述すると、`0.5mm` で線を描画します。 ## 補足事項 `StrokeThickness` は特別な理由がない限り、カスタム値ではなくシステム定義値を使用することを推奨します。 ## 関連情報 関連情報はありません。 # StyleName Source: https://www.yagisan.app/docs/template-reference/datatype/StyleName `StyleName` は、スタイルの識別名を表すデータ型です。 ## 構文 `StyleName` は、正規表現 `[A-Za-z_][A-Za-z0-9._-]*` に一致する `String` です。 - 先頭はアルファベットまたはアンダースコア - 2文字目以降はアルファベット、数字、ドット(.)、アンダースコア(_)、ハイフン(-)が使用可能 - 空白を含めることはできません 以下は有効な `StyleName` の例です。 - `title` - `Header` - `body.text` - `table-header` - `_customStyle1` ## 制約 スタイルXML内では同じ `StyleName` を持つスタイル要素を複数定義することはできません。 詳しくは [開発ガイド > 帳票テンプレート > スタイルXML #スタイル名の重複](../../devguide/template/style-xml#スタイル名の重複) を参照してください。 ## 関連情報 関連情報はありません。 # TextAlign Source: https://www.yagisan.app/docs/template-reference/datatype/TextAlign `TextAlign` は、横書きテキストの水平方向の配置方法を表すデータ型です。 ## 構文 ### `left` テキストを描画領域の左寄りに配置します。 ### `center` テキストを描画領域の中央に配置します。 ### `right` テキストを描画領域の右寄りに配置します。 ### `justify` テキストを描画領域の左右両端に揃えて均等に配置します。 ## 関連情報 関連情報はありません。 # TextVerticalAlign Source: https://www.yagisan.app/docs/template-reference/datatype/TextVerticalAlign `TextVerticalAlign` は、横書きテキストの垂直方向の配置方法を表すデータ型です。 ## 構文 ### `top` テキストを描画領域の上寄りに配置します。 ### `center` テキストを描画領域の中央に配置します。 ### `bottom` テキストを描画領域の下寄りに配置します。 ## 関連情報 関連情報はありません。 # UnderlinePosition Source: https://www.yagisan.app/docs/template-reference/datatype/UnderlinePosition `UnderlinePosition` は、横書きテキストの下線の描画位置を表すデータ型です。 ## 構文 ### `normal` 下線を文字の底面付近(ベースライン付近)に設定します。 ### `bottom` 下線を `normal` より下に設定します。 ## 関連情報 関連情報はありません。 # UnsignedFloat Source: https://www.yagisan.app/docs/template-reference/datatype/UnsignedFloat `UnsignedFloat` は、符号なしの実数を表すデータ型です。 ## 構文 次のような記法で値を指定します。 - `100` - `3.14` - `2.7e2` - `0` ## 関連情報 関連情報はありません。 # UnsignedInteger Source: https://www.yagisan.app/docs/template-reference/datatype/UnsignedInteger `UnsignedInteger` は、符号なしの整数を表すデータ型です。 ## 構文 次のような記法で値を指定します。 - `123` - `0` ## 関連情報 関連情報はありません。 # VerticalAlign Source: https://www.yagisan.app/docs/template-reference/datatype/VerticalAlign `VerticalAlign` は、配下のコンテンツの垂直方向の配置方法を表すデータ型です。 ## 構文 ### `top` コンテンツを描画領域の上寄りに配置します。 ### `center` コンテンツを描画領域の中央に配置します。 ### `bottom` コンテンツを描画領域の下寄りに配置します。 ## 関連情報 関連情報はありません。 # VerticalUnderlinePosition Source: https://www.yagisan.app/docs/template-reference/datatype/VerticalUnderlinePosition `VerticalUnderlinePosition` は、縦書きテキストの傍線の描画位置を表すデータ型です。 ## 構文 ### `right` 傍線を文字の右側に設定します。 ### `left` 傍線を文字の左側に設定します。 ## 関連情報 関連情報はありません。 # VTextAlign Source: https://www.yagisan.app/docs/template-reference/datatype/VTextAlign `VTextAlign` は、縦書きテキストの水平方向の配置方法を表すデータ型です。 ## 構文 ### `left` テキストを描画領域の左寄りに配置します。 ### `center` テキストを描画領域の中央に配置します。 ### `right` テキストを描画領域の右寄りに配置します。 ## 関連情報 関連情報はありません。 # VTextVerticalAlign Source: https://www.yagisan.app/docs/template-reference/datatype/VTextVerticalAlign `VTextVerticalAlign` は、縦書きテキストの垂直方向の配置方法を表すデータ型です。 ## 構文 ### `top` テキストを描画領域の上寄りに配置します。 ### `center` テキストを描画領域の中央に配置します。 ### `bottom` テキストを描画領域の下寄りに配置します。 ### `justify` テキストを描画領域の上下両端に揃えて均等に配置します。 ## 関連情報 関連情報はありません。 # VTextWordwrapOrientation Source: https://www.yagisan.app/docs/template-reference/datatype/VTextWordwrapOrientation `VTextWordwrapOrientation` は、縦書きテキストにおける改行時の行の進行方向を表すデータ型です。 ## 構文 ### `rightToLeft` 改行時、次の行を左側に配置します(右から左へ行が進みます)。 ### `leftToRight` 改行時、次の行を右側に配置します(左から右へ行が進みます)。 ## 関連情報 関連情報はありません。 # Wordwrap Source: https://www.yagisan.app/docs/template-reference/datatype/Wordwrap `Wordwrap` は、テキストの折り返し方法を表すデータ型です。 ## 構文 ### `normal` テキストが行の描画領域内に収まらないときに折り返します。 ### `none` 折り返しを一切行いません。 ## 関連情報 関連情報はありません。 # 動作環境・サポートポリシー Source: https://www.yagisan.app/docs/requirements-and-support ## Webブラウザ 以下のブラウザの最新から1つ前のバージョンまでをサポート対象とし、不具合が発生した場合は技術的に対応可能な範囲でサポートします。 * Google Chrome * Microsoft Edge * Mozilla Firefox * Apple Safari また、以下の機能が使用可能であることを動作要件とします。 * JavaScriptが有効であること * ES2020に対応していること * 以下のAPIが使用可能であること * `Web Crypto` * `Web Worker` * `CacheStorage` * `fetch` :::note 現時点で具体的な予定はありませんが、将来的に `WebAssembly` が要件に追加される可能性があります。 ::: ## Node.js `Active LTS` または `Maintenance LTS` バージョンを動作要件とし、不具合が発生した場合は技術的に対応可能な範囲でサポートします。 Node.js のバージョンについては、[Node.js公式のリリース情報](https://nodejs.org/ja/about/previous-releases/) をご覧ください。 ## サポート対象外の環境での使用 サポート対象外の環境であっても、動作要件を満たしていれば動作することがあります。 ただし、サポート対象外の環境で発生した不具合については、原則として対応いたしかねます。 どうしてもサポート対象外の環境でも使用したい場合は、個別に [お問い合わせフォーム](https://forms.office.com/Pages/ResponsePage.aspx?id=dZ5_ieei_U6Vc4pDaGc8qRuMo2APGFlFgv74yyBY6L1UNDFRTVpISTBPNERDSDhMTEZRSUY2Qkk3VyQlQCN0PWcu) よりご相談ください。 ### 参考情報 弊社での動作テストは行っていませんが、過去のバージョンでは以下の環境で動作したという報告があります。 なお、本情報は最新バージョンでも同様の環境で動作することを保証するものではありません。 * iOS 14以降 (2023年報告) # 旧バージョンからの移行 Source: https://www.yagisan.app/docs/migration ## v2.0からの移行 SDKパッケージを最新バージョンに更新してください。他に必要な手順はありません。 ```sh npm install @yagisan-reports/sdk@2.1 ``` エンタープライズ版を使用している場合: ```sh npm install @yagisan-reports/sdk-enterprise@2.1 ``` ## v1.0からの移行 ### SDKの更新 SDKパッケージを最新バージョンに更新してください。 ```sh npm install @yagisan-reports/sdk@2.1 ``` エンタープライズ版を使用している場合: ```sh npm install @yagisan-reports/sdk-enterprise@2.1 ``` ### XML Schemaの更新 v2.0では新しい機能や構造が追加されたため、XML Schemaのバージョンが **2026.1** に更新されました。 2025.1(v1.0相当)バージョンのXML Schemaのままでも開発は可能ですが、最新に更新することを推奨します。 マイグレーションツールでXML Schema URLを更新する場合は、以下のコマンドを実行してください。 ```sh npx github:DenkiYagi/yrt-migrate --from 2025.1 path/to/input ``` ツールを使わずに手動で更新する場合は、以下のようにXML Schema URLを変更してください。 ```xml title="レイアウトXML" ``` ```xml title="スタイルXML"