XFA リッチテキストプロパティオーバーライド

exData 描画のネイティブフラット化は、現在のデータセット出現についてフォント属性と段落属性を解決します。一般の JavaScript や FormCalc イベントが作ったオーバーライドも含まれます

const label = xfa.resolveNode("main.row[1].label");
label.font.typeface = "Helvetica";
label.font.size = "18pt";
label.font.weight = "bold";
label.font.posture = "italic";
label.font.underline = "1";
label.font.fill.color.value = "0,128,255";
label.para.hAlign = "right";
label.para.spaceAbove = "3pt";
label.para.lineHeight = "30pt";

const span = label.value.exData.body.p.span;
span.setAttribute("color:#FFFF00", "style");
span.value = "Updated text";

フォントと段落の解決

タイプフェイス、サイズ、weight、posture、下線、フォント塗り色は、実効的なインスタンス属性とサポート対象のスキーマデフォルトから、リッチテキスト run のスタイルを初期化します

テキスト計測コールバックは実効的なタイプフェイス、サイズ、bold、italic の各フラグを受け取るため、計測と出力 run スタイルは同じインスタンス値を使います

Windows の PDF プロデューサーは、論理ファミリーの Courier・Helvetica・Times を、計測と描画出力の両方で一貫して Courier New・Arial・Times New Roman に解決します。Windows が論理名をインストール済みフェイスとして公開しない場合も、意図したファミリーが保たれます

段落の hAlign、marginLeft、marginRight、textIndent、spaceAbove、spaceBelow、lineHeight は run の配置に影響します。lineHeight が行間を、そのテキストが必要とする高さより小さくすることはできません

認識されたインライン CSS は、継承されたフォント値や段落値を上書きします。段落マージンを 1 つだけ変更する宣言でも、もう一方の継承マージンは保持されます

インライン run は異なるフォントサイズ間で共通のテキストベースラインを共有し、隣接段落の間隔は直前の spaceBelow と直後の spaceAbove の最大値を使います。詳細は リッチテキスト段落ジオメトリを参照してください

インライン内容と永続化

宣言された XHTML プロパティノードの実効的な style 属性と href 属性はリッチテキスト処理に参加し、実効的なスカラーテキストオーバーライドは対応するリーフ内容を置き換えます

属性オーバーライドを作成すると、そのノードのテンプレートスカラー内容は、テキストを消すのではなく保持されます。明示的に空のスカラー値を指定すると、周囲の内容を保ったままリーフ run だけが出力から省かれます

属性のみの旧形式フォームノードも引き続きテンプレートテキストを継承します。明示的に空の CDATA 内容ノードを置くと、シリアライズ後もスカラーのクリアと本文省略の区別が保たれます

オーバーライドはネイティブフォームパケットに永続化され、繰り返し出現の間で互いに独立を保ち、XDP の保存と再読み込みを越えて生き残ります。失敗したイベントは、直前のネイティブドキュメントを正確に復元します

対応範囲

この動作は リッチテキスト折り返しパイプラインと、そこで認識される CSS 宣言に適用されます。追加の CSS プロパティ、ウィジェットの完全なリッチテキスト編集、欠落プロパティノードの暗黙生成は、引き続き別の対応対象です

フォント下線の有効化は現在の run レンダラーを使います。完全な二重下線や追加の text-decoration ジオメトリは、引き続き別のレンダリング対象です

関連 API

ネイティブ XFA プロパティ DOM、スキーマデフォルト、HPDFXFAResolveFormInstanceProperty、ApplyXFAAsAcroForm