メインコンテンツまでスキップ

v2.3 (2026-09-14)

v2.3では、改ページ処理を中心に動作の改善と不具合の修正を行いました。

XML Schemaの改定

帳票テンプレートの機能強化に合わせてXML Schemaを改定しました。 以下のURLが v2.3 に対応した最新版です。

旧スキーマも引き続き使用できますが、v2.3 の変更内容には対応していないため、最新版の使用を推奨します。

破壊的変更

不具合の修正に伴い、以下のとおり動作を変更しました。

<Image> 要素の src 属性の値が null になる場合の動作の変更

<Image> 要素の src 属性に指定したテンプレート変数(${image} など)やアセット参照(@{image} など)を解決した結果、値が null になる場合の動作を変更しました。

  • 従来:<Image> 要素が存在しないものとして扱い、帳票出力を続行していた
  • v2.3以降:エラーとして扱い、帳票出力を中断する

画像が存在しない場合でも帳票出力を継続したい場合は、logic 属性(例: logic="if:${hasImage}")を使用してください。

改ページ時の <FrameHeader> <FrameFooter> 要素の配置方法の変更

<Frame> 要素の途中で改ページされる場合に、<FrameHeader> <FrameFooter> 要素が隣接するボディ要素から分離することを抑えるように変更しました。

  • <FrameHeader> 要素:ヘッダーだけがページの最下部に残る場合は、ヘッダーを次ページに送る
  • <FrameFooter> 要素:フッターだけが次のページの先頭に配置される場合は、ボディ要素の最終行も次ページに送り、フッターと同じページに配置する

また、この動作を制御するため、以下の属性を追加しました。 auto を指定すると、改ページ時の挙動が従来の動作に戻り、ヘッダーやフッターがボディ要素から分離することを許可するようになります。

  • <FrameHeader> 要素:breakAfter 属性
  • <FrameFooter> 要素:breakBefore 属性

不正なXMLの検出の強化

従来は読み飛ばされていた不正な子要素や内容文字列、一部の属性の構文不正を、エラーとして報告するように変更しました。 例えば、<Spacer> 要素に子要素や内容文字列がある場合や、属性値が引用符で囲まれていない場合、同じ属性が重複して指定されている場合が該当します。

従来は正常と判定されていた帳票テンプレートでも構文エラーになる場合があります。 報告された箇所を修正してください。

機能強化

<FrameHeader> 要素に breakAfter 属性を追加

<FrameHeader> 要素の直後の改ページルールを指定する breakAfter 属性を追加しました。

詳しくは、テンプレートリファレンス > XML要素 > FrameHeader を参照してください。

<FrameFooter> 要素に breakBefore 属性を追加

<FrameFooter> 要素の直前の改ページルールを指定する breakBefore 属性を追加しました。

詳しくは、テンプレートリファレンス > XML要素 > FrameFooter を参照してください。

エラーメッセージの改善

XMLの読み込み時や帳票出力時のエラーメッセージを改善しました。 エラーが発生した要素や属性や、期待される値・型などの情報を充実させ、原因を特定しやすくしました。

バグフィックス

一部の要素で breakInside 属性を指定できない不具合の修正

<TableColumnTemplate> <FrameHeader> <FrameFooter> 要素に breakInside 属性を指定できなかった不具合を修正しました。

breakInside 属性を省略した場合の動作は従来と同じです。

改ページ時にページが欠落する不具合の修正

以下のケースで、本来出力されるはずのページが欠落する不具合を修正しました。

  • レイアウト末尾のコンテナ要素が改ページで分割され、次のページに残る要素の中身が空の場合
    • 空のセルでも罫線や背景があれば、そのページを出力する
    • 描画するものが一切ない場合は、従来どおり出力しない
  • <Table> 要素の breakCondition 属性で強制改ページした区間の先頭ページに、描画するものがない場合
    • その区間の先頭ページは、内容にかかわらず出力する

分割できない要素がページ内に収まらない場合の不具合の修正

以下の要素がページ内に収まらない場合の動作が一貫していなかった不具合を修正しました。

  • breakInside 属性に avoid を指定した要素
  • <Table> 要素の行(全列のセルで breakInside 属性が未指定または avoid の場合)
  • <TableColumnHeader> <TableColumnFooter> 要素
  • <FramePageHeader> <FramePageFooter> 要素

対象の要素がページ内に収まるまで、以下の処理を順に試みます。

  1. 要素がページの先頭にない場合は、要素全体を次のページに送る
  2. 要素の途中での改ページを許可し、内容の区切りで分割する(breakInside="auto" 相当)
  3. 隣接する要素を同じページに配置する制約も緩め、要素間での改ページを許可する(breakAfter="auto" breakBefore="auto" 相当)
  4. 文字や図形の途中で分割する

<VText> 要素の改ページ時の不具合の修正

<VText> 要素の途中で改ページされた場合に、傍線や親のコンテナ要素の罫線・背景が必要以上に長く描画される不具合を修正しました。 また、valign="justify" を指定し、改ページ後のページに文字が1つだけ残る場合に、傍線の長さが不正になる不具合を修正しました。

<LinearBlock> 要素の改ページ時の不具合の修正

<LinearBlock> 要素の途中で改ページされた場合に、改ページ前のページで罫線・背景が必要以上に長く描画されたり、親の <Grid> <Table> 要素の行の下端まで届かなかったりする不具合を修正しました。

<TableColumnFooter> <FramePageFooter> 要素の改ページ時の不具合の修正

<TableColumnFooter> または <FramePageFooter> 要素がある場合に、ページ内に収まるはずのボディ行が次ページに送られることがある不具合を修正しました。

<Grid> <Table> 要素の改ページ時に罫線・背景が正しく描画されない不具合の修正

<Grid> または <Table> 要素の途中で改ページされた場合に、改ページ位置より前の部分の罫線・背景が正しく描画されない不具合を修正しました。

<Grid> <Table> 要素の改ページ時にセルの内容が正しく下端揃えされない不具合の修正

<Grid> または <Table> 要素で、valign="bottom" が指定されたセルの途中で改ページされた場合に、改ページ位置より後ろの部分が正しく下端揃えされないことがある不具合を修正しました。

<GridCell> 要素の下端の余白で改ページされた場合の不具合の修正

<GridCell> 要素の padding 属性で設定した下端の余白で改ページされた場合に、セル内コンテンツが正しく描画されないことがある不具合を修正しました。

<Grid> <Table> 要素の改ページ時にフッターの上部に不要な空白が生じる不具合の修正

以下のいずれかの条件に該当する場合に、フッターの上部に不要な空白が生じることがある不具合を修正しました。

  • <Grid> 要素の場合
    • <Frame> 要素内に <Grid> 要素と <FramePageFooter> 要素が配置されている
    • <Grid> 要素に高さが可変の行があり、この <Grid> 要素で改ページが行われる
  • <Table> 要素の場合
    • <Table> 要素が <TableColumnFooter> 要素を持つ
    • <Table> 要素に高さが可変の行があり、この <Table> 要素で改ページが行われる

<Table> 要素の改ページ後の行の高さが小さくなる不具合の修正

<Table> 要素の途中で改ページされた場合に、改ページ後の最初の行の高さが、行の境界に引かれる罫線の太さの半分だけ小さくなる不具合を修正しました。

<Grid> 要素の行の上下の罫線が重なる不具合の修正

<Grid> 要素が以下の条件に該当する場合に、行の上下の罫線が重なって描画される不具合を修正しました。

  • 高さが auto または最小値なし(:10 など)の行が定義されている
  • この行で <GridCell> 要素が1つも記述されていない

<Grid> 要素の定義によって不正なPDFが出力される不具合の修正

<Grid> 要素が以下の条件に該当する場合に、不正なPDFが出力される不具合を修正しました。

  • <Grid> 要素が高さ上限が指定されている要素内に配置されている
  • <Grid> 要素内に以下の行が同時に記述されている
    • 行の高さが可変で、セルに高さに合わせて伸縮するコンテンツ(overflow="fit" を指定した <Text> 要素など)が配置されている
    • 行の高さが auto で、セルに伸縮しないコンテンツ(overflow="clip" を指定した <Text> 要素だけの行など)が配置されている

存在しないフォントを指定した場合の不具合の修正

スタイルXMLで存在しないフォントファミリーを指定した場合に、通常のエラーではなくクラッシュしていた不具合を修正しました。 フォントが見つからないことを通常のエラーとして報告するようにしました。

<StackLayout> 要素の basePdf 属性に関する不具合の修正

basePdf 属性で指定したPDFの埋め込みに失敗した場合に、エラーとして扱われていた不具合を修正しました。 警告を出して帳票出力を継続するようにしました。