自動 XFA リッチキャプション
ユニット: HPDFXFA、HPDFXFAHeadless、HPDFHeadlessAppearance
HPDFXFAWriteHeadlessPDF は保存済み XDP から実効的なチェックボックス・ラジオのキャプション値を直接消費し、埋め込みフォント付きの実際のネイティブアピアランス Form を生成します
実効的なキャプションコンテンツ
スカラーのキャプション値と exData の XHTML body コンテンツはネイティブテキストになります。body は http://www.w3.org/1999/xhtml 名前空間を使わなければなりません
部分的な繰り返しインスタンスのフォームオーバーレイは、対応するテンプレート要素のテキストと属性を変更します。変更されていないテンプレートの兄弟とその XHTML 名前空間は保持されます
exData.loadXML によるペイロード全体の置き換えに成功した場合は、実際にインポートされた body が使われ、古いテンプレートコンテンツがキャプションにマージし戻されることはありません
コメントと処理命令は元の保存済み XDP に残りますが、描画用コピーからは除外されるため、その内容が表示キャプションテキストになることはありません
描画用コピーは 4096 ノード、深さ 64、65536 オーバーレイ作業ステップ、課金対象のソースとシリアライズ済み XHTML 合計 1 MiB に制限されます。ネイティブデコーダーとアピアランスビルダーはそれぞれの run、グリフ、バイト上限を保ちます
実際のフォントフェイスとスタイル
実際の regular、bold、italic、bold-italic の各プログラムと名前付きファミリーにはCaptionFontFamilies を指定します
既存のネイティブ XHTML デコーダーは、インラインスタイル、段落境界、ファミリーリスト、色、サイズ、下線と打ち消し線の書式を解決します。スカラーキャプションのフォントサイズ、ウェイト、ポスチャー、タイプフェイス、塗り色が既定のスタイルになります
要求されたフェイスやグリフが欠けていると準備は失敗します。このコンシューマは bold や italic のアピアランスを偽造せず、外部フォントを探すこともありません
計測と配置
キャプションの計測と描画は同じネイティブリッチレイアウトと指定フォントプログラムを使います。実際のグリフ送り幅、スタイル固有の ascent と descent、共通行ベースライン、折り返しも含みます
固定の left/right reserve はテキスト幅を制約します。正の top/bottom reserve は、利用可能なフィールド幅の中での折り返しを許します
reserve の省略、0、スキーマ既定の -1 は、自動折り返しなしで自然なキャプション範囲を使います。明示的な段落境界は改行のままで、固定フィールド矩形を超えるテキストはクリップされます
自動の left/right キャプションは自然な幅を使います。インラインキャプションは計測でも配置でも明示的な reserve を無視します
キャプションのマージンは実際のテキスト領域を縮め、キャプションの水平垂直配置が結果のアピアランス配置を決めます
reserve の動作はXFA 3.3 の caption reserve 定義に従います
自然な高さは、最終行のフォントメトリック上の範囲に加えて、両側のネイティブ 2 ポイントのパディングを含みます。最終行より後の未使用の行送りは含みません
hidden と inactive のキャプションは領域を消費しません。invisible のキャプションは描画やキャプショングリフの課金なしに、計測された領域を確保します
1 つの実際のキャプション Form が同じウィジェットの off、on、neutral 状態で共有されます。繰り返しインスタンスは独立したコンテンツとスタイルグラフを保持します
段落マージンやカスタム行間 CSS、キャプション画像などの非テキストキャプションペイロード、プッシュボタンのリッチキャプション、後のインタラクティブなアピアランス再構築は、コンシューマ側の残作業です
トランザクションと受け入れ
成功したネイティブプロパティイベントは、自動 PDF 生成の前に保存・再ロードできます。スクリプト失敗は正確なネイティブ XML バイトを復元し、準備予算やキャンセルの失敗は出力先のバイト、長さ、位置を保ちます
出力先への書き込みは、候補全体の成功後にのみ始まります。呼び出し側のストリーム書き込み自体のエラーはそのストリームのセマンティクスに従い、任意の非シーク対応出力先に対してロールバックできません
Tests/Linux/XFAHeadlessRichCaptionTests.pas は、実際にスタイル付き、折り返し、ファミリー選択、非表示の各キャプション PDF を生成します。XFAHeadlessRichCaptionRuntimeTests.pas は繰り返しオーバーレイ、XML 全体置き換え、ロールバックをカバーします
XFAHeadlessRichCaptionBudgetTests.pas は実際のリソース失敗と選択されたキャンセル境界を試験し、HeadlessTextExtentTests.pas は計測されたネイティブ行範囲を公開します
Verify-XFAHeadlessRichCaptions.py は、リーダー UI を開かずに保存済み PDF グラフ、指定フォントプログラムの正確なバイト、共有参照、Unicode テキスト、生のテキストマトリクス、fontTools メトリック、MuPDF 描画ピクセルを検査します