ネイティブリッチテキストフィールド
SetRichTextFieldValueWithAppearance は、同期されたプレーンテキスト V、正規形 XHTML RV、RichText フィールドフラグ、既存のすべてのウィジェットへの実際の外観を書き込みます
各 run は Unicode テキスト、フォントスタイル、正のポイントサイズ、RGB カラー、省略可能な下線 / 取り消し線、段落区切り、左 / 中央 / 右揃えを渡します。4 スタイルのフォントは、既存の編集 / 埋め込みチェックを通った呼び出し側指定の Unicode TrueType プログラムです
run のデフォルトは 12pt の regular 黒スタイルです。段落揃えは最初の run から取得し、デフォルトは left です
外観は実際の埋め込みスタイルフォント、グリフマッピング、共有行ベースラインつきの計測済み単語フラグメントを使います。繰り返されるフラグメントはウィジェット内で各スタイルフォントプログラムを共有します
明示的な CR / LF / CRLF / NEL / LINE SEPARATOR / PARAGRAPH SEPARATOR の区切りと段落遷移には複数行フィールドが必要です。計測された折り返し、ウィジェット回転、クリッピングは実際のウィジェット矩形を使います
型付き更新はプレーンテキストフィールドでリッチテキストを有効化できますが、パスワード・ファイル選択・comb の組み合わせは変更前に拒否されます
読み取り専用、MaxLen、認証済み署名ドキュメントポリシー、暗号化フォーム入力権限、キャンセル、オブジェクト / フォント / グリフ / 出力予算は引き続き適用されます
リッチ更新はすべて、ドキュメント変更の前に V、RV、Ff、AP の各上書きを準備します。保存された文字列 / ストリームは元の AES-256 R5 / R6 ポリシーを保持します
スタイル配列、レイアウト行、ペイントフラグメントには、設定済みドキュメント上限に加えてそれぞれ 4096 項目の上限があります。スタイルフォントバイトは集計で請求されます
既存リッチフィールドに対する通常の SetTextFieldValueWithAppearance 呼び出しは、その内容を渡されたプレーンスタイルで置き換え、RV を同期します。値のみの SetTextFieldValue 呼び出しも RV を同期し、NeedAppearances=true を保持します
GetRichTextFieldValue は継承値を含め、実際に保存された XHTML テキスト文字列または UTF-8 テキストストリームを読み取ります
各段落の最初の run がその段落の揃えを選びます。その run のテキストが空でも同じです。インラインのスタイル変更と明示的な改行はその段落揃えを保持します
折り返し複数行フィールドの幅超過単語は Unicode 17 の拡張書記素境界で分割され、結合シーケンス、補助スカラー、絵文字シーケンス、元の V / RV テキストを保持します。フィールドより幅が広い分割不可能クラスタはそのままクリップされます
矩形 / 円ボーダーはコンテンツクリップの前にペイントされ、選択された複数行行は、各リッチ行の計測されたアセント・ディセント・間隔を使った実際の青い背景を受け取ります
ネイティブ JSON ABI
{"schemaVersion":1,"type":"forms.fill","fields":[
{"name":"Input","fontFamily":"DejaVu Sans Mono","richTextRuns":[
{"text":"Regular Unicode text "},
{"text":"Bold red text","fontStyle":"bold","fontSize":20,"color":[1,0,0]},
{"text":"Next paragraph","fontStyle":"italic","paragraphBreakBefore":true,
"alignment":"center","underline":true}
]}
]}
richTextRuns は必須の text と、省略可能な fontStyle、fontSize、color、underline、strikeOut、paragraphBreakBefore、alignment を持つオブジェクト配列です。fontStyle は regular / bold / italic / boldItalic を受け付けます
省略可能な fontFamilies 配列は fontFamily 経由で run ごとに実際の名前付きプログラムを選択します。編集レベルの配列が操作レベルの配列を上書きし、run ラベルの省略は最初のファミリーを選びます
run の fontSize を省略すると、正であればフィールド操作の fontSize を使います。そうでなければ 12 です。省略可能な value は、明示的な段落間の復帰を使って、run から導出されたプレーンテキストと正確に一致しなければなりません
スタイル付き run には appearance=true が必要です。forms.read はリッチフィールドの richText で実際に保存された XHTML を返します
ABI は既存の操作レイアウトを保持し、新しいロード済みコンテキストをコミットする前に完全なバイナリー / 結果出力を準備します。書き込み失敗やキャンセルは以前のフィールドを保存します
受け入れと残りの作業
Tests/Linux/Run-HeadlessRichTextAcceptance.sh と Tests/Linux/HotPDFHeadlessRichTextTests.pas が実際に保存された PDF を演習します。Verify-HeadlessRichText.py が XHTML、値、4 つの実際のフォントプログラム、グリフマップ、装飾パス、可視ウィジェットピクセルを独立にチェックします
この API は型付き run を受け付け、完全な段落に対してデフォルトの Unicode 17 機会を消費し、スタイル変更をまたいで単語・ノーブレークスペース・句読点・数値グループを保持します。新しい行に収まるグループは、実際のスタイル付きフォント送りを使ってまとめて移動します
スタイルグループ折り返しは混合ポイントサイズに対しても共有ベースラインを保持し、実際のレイアウトと正規形 XHTML の双方でスタイル境界をまたぐ CRLF を結合します
スタイル横断の書記素フィッティングは、幅超過の論理クラスタを 1 つの物理行に割り当て、実際のフォント・カラー・サイズフラグメントと、矩形より幅が広い分割不可能クラスタに対する既存のクリッピング挙動を保持します
文脈的結合は周囲の Unicode テキストを使い、各実際の物理行は型付きスタイルをまたぐ混合 bidi / スクリプト項目を並べながら段落方向を保持します
スタイル横断マークは、実際の基底・合字・先行マークグリフに実際の GPOS アタッチメントを使い、各スタイルフォント、ポイントサイズ、カラー、可視グリフのはみ出しを保持します
リッチ FDF / XFDF 交換は、対応する上限付き XHTML スタイルプロファイルを実際の埋め込みフォントと保存された外観へデコードします
明示的な方向埋め込み、上書き、分離、対括弧コンテキストは、型付きスタイルをまたぐ自動折り返しでも保持されます。1 つの共有論理段落順序が、独立した物理行並べ替えとネイティブの文脈的グリフシェーピングを供給します
Unicode 方向制御のみを含むクラスタは、文字間隔を消費せずに元の論理値と選択テキストを保持します。可視クラスタと通常のスペースは設定された送りを保持します
段落由来の行順序と キャッシュ行並べ替えは完全な UTF-16 スカラー境界を保持し、共有段落レコードを変更せずに物理行末尾の空白をリセットします
名前付きフォントファミリーは、実際のファミリーフォント、独立した送り、ファミリー対応フォームインポートつきで、明示的な型付き run と上限付き XHTML 選択を提供します
任意の XHTML / CSS、グリフ別フォールバック、スタイルシート、汎用レイアウトは作業中のままです
内部スタイルシートは、共有の有界セレクターカスケードをネイティブリッチ値と FDF/XFDF インポートに適用します。より広い XHTML/CSS、外部スタイルシート、汎用レイアウトは引き続き作業中です