XFA リッチテキストの折り返し

リッチテキスト描画パイプラインは、描画幅、実効的な段落マージン、初行の textIndent を使って、XHTML 段落テキストを連続する行へ流し込みます

スタイル付きフラグメントが 1 行に収まる単語は丸ごと移動します。これには、間に空白を挟まず隣接する span 要素にまたがる単語も含まれます。行より幅の広い単語は計測済みの接頭辞に分割され、UTF-16 サロゲートペアは壊れません

通常の XHTML の空白・タブ・ソースの改行は単語間の 1 つの空白に正規化され、行頭や行末の空白は削除されます。br 要素は強制的に改行を起こし、連続する改行は間の空行を保持します

各行は独自の中央揃え・右揃えと共通ベースラインを計算します。ソフトラップ後の両端揃え行は実際の単語間スペースに余白幅を配分し、最終行と br で終わる行は自然な間隔を保ちます

実効的なネイティブ para.lineHeight はすべての行に適用され、行送りをテキストの高さ未満に縮めることはできません。隣接段落の間隔は段落全体に対して 1 回だけ適用されます

インラインのフォント・色の上書きは行分割を超えて保持され、ハイパーリンク内のネストしたスタイルも有効のままです。配置された各リンクフラグメントは宛先を保持し、独自のネイティブ PDF リンク矩形を生成します

HPDFXFAFlatten はフィッティングに指定された TXFAMeasureTextFunc を使い、行を超える幅の単語には上限付きの接頭辞プローブを行います。measurer が指定されない場合、フォールバックは Unicode スカラー 1 個あたり半 em の送り幅を使います

THotPDF.ApplyXFAAsAcroForm はネイティブのフォント measurer を使い、XDP 保存と再読み込みを通じてランタイム変更を保持します。繰り返しインスタンス上の独立したテキスト・色・段落の上書きも含まれます

現在の行分割器は空白の単語境界と緊急用のスカラーセーフ分割を使います。完全な Unicode の line-break と書記素クラスタの規則、追加の CSS white-space モード、ウィジェットの完全なリッチテキスト編集、残りの装飾ジオメトリは、別ターゲットとして継続中です

段落ジオメトリ、リッチテキスト プロパティの上書き、ApplyXFAAsAcroForm