Windows オリジナル型付きリッチフォーム入力

Windows ファイルジョブと hpdf_document_execute_json_v1 は、通常のテキスト・選択・ボタン更新に加えて richTextRuns を含む forms.fill 要求を受け付けます。すべてのフィールドが 1 つの認証済み候補 PDF を共有します

オリジナル型付き run はネイティブ外観コンポーザーへ直接届きます。AP 生成はシリアライズ済み RV カラー表現を往復しません。プレーンな V、標準リッチ RV、実際の AP が一緒に準備されます

要求

{
  "schemaVersion": 1,
  "type": "forms.fill",
  "fontFamilies": ["DejaVu Sans", "DejaVu Serif Condensed"],
  "fields": [
    {"name": "Input", "richTextRuns": [
      {"text": "Original typed precision", "fontFamily": "DejaVu Sans",
       "fontStyle": "regular", "fontSize": 12.123456,
       "color": [0.123456, 0.234567, 0.345678]},
      {"text": "Another paragraph", "fontFamily": "DejaVu Serif Condensed",
       "fontStyle": "boldItalic", "fontSize": 14.125,
       "paragraphBreakBefore": true, "alignment": "center",
       "underline": true, "strikeOut": false}
    ]},
    {"name": "Plain", "value": "Changed scalar"},
    {"name": "Choice", "values": ["B", "C"]},
    {"name": "Check", "value": "Yes"}
  ]
}

各フィールドは richTextRuns、またはスカラーの value / values のいずれかを渡します。richTextRuns の隣にある省略可能な value は、型付き段落間の復帰を含め、ネイティブが導出したプレーンテキストと正確に一致しなければなりません。シリアライズ済み richText は型付き run の入力ではありません

各 run は text を要求し、fontStyle、fontSize、color、underline、strikeOut、paragraphBreakBefore、alignment を受け付けます。fontStyle は regular / bold / italic / boldItalic、alignment は left / center / right です。RGB 成分は 0〜1 の有限数です

run サイズは正かつ最大 4096 ポイントです。サイズ欠落はフィールド fontSize または 12 ポイントを使います。ネイティブ PDF 数値書式は引き続き適用される一方、標準 RV CSS はカラーを 8 ビット成分へシリアライズします

フィールド外観オプションには fontSize、padding、characterSpacing、wordSpacing、paintWhiteBackground があります。実際の AP 生成は必須のため、appearance=false は無効です

実際のフォントプログラム

フィールドの fontFamilies 配列は操作配列を上書きします。設定配列は 1〜16 個の非空かつ有効なファミリーラベルを含みます。一致判定は ASCII の大文字小文字を畳み、他の Unicode は正確に比較します。run の明示的な fontFamily は設定ラベルと一致しなければならず、run ラベル欠落は最初のファミリーを選びます

fontFamilies がなければ、オリジナルの単一ファミリーパスが引き続き使えます。フォントコールバックラベルはフィールド fontFamily、操作 fontFamily、DejaVu Sans の順に由来します。オリジナル単一ファミリーの run は run fontFamily を省略します

ファイルジョブは input、output、fonts を追加します。fonts は設定された各ファミリーラベルを regular / bold / italic / boldItalic のファイルパスへマップします。ロードされるのは使用されたスタイルと、スカラー外観が必要とする regular フェイスだけです。ファイルパスは出力とエイリアスしてはいけません

バージョン付き C ABI 呼び出し側は既存の hpdf_form_data_operation_v1 拡張を使い、そのフォントコールバックから読み取り可能な hpdf_io_v1 テーブルを返します。ファミリーラベルは UTF-8、スタイル値は 0〜3 です。すべての実際のプログラムは、外観を合成する前に上限付き所有バイトへコピーされます

元の V1 シンボル、ベース構造サイズ、省略可能な拡張オフセットは不変です。ファミリー / スタイルアセットは 1 つの要求内でキャッシュされ、同じ所有割り当てを繰り返し請求されることなくフィールド間で共有されます

オプトインの fallbackFontFamilies=true は、実際に指定されたファミリー間で書記素単位フォールバックを適用します。型付き run は順序付き fontFamilyCandidates 配列を保持でき、宣言された候補は設定順より先に考慮されます。要求継承と 4 スタイルコールバックローディングは Windows 指定ファミリーリッチフォントフォールバックを参照してください

カレントグラフと公開

InputIO がない場合、C ABI は自身の所有するロード済みリビジョンと実際の保留グラフを使います。省略可能な InputIO は置換 PDF を供給し、フォントコールバックの前にプライベートにコピー / 認証されます。借用入力の変更も、失敗した置換も、コミット済みコンテキストを変えてはいけません

OutputIO と ResultIO は必須です。実際の候補 PDF と結果 JSON の両方が成功し、最終キャンセルチェックポイントを通過して初めて、C ABI はドキュメントとソースを交換します

失敗したコールバックはすでに候補バイトを受け取っていることがあります。戻りステータスが非ゼロのとき、呼び出し側はそのバイトを破棄してください。以前にコミットされたライブラリーコンテキストは不変です

ファイルジョブは要求された出力のアトミック置換前に、完全な候補と上限付き応答をステージングします。フォント欠落、ポリシー失敗、キャンセル、容量失敗は既存ターゲットを保存します

ポリシーと結果

既存の署名完全性、DocMDP P1 / P2 / P3、FieldMDP ロック、読み取り専用フラグ、AES フォーム入力権限は、ネイティブ認証済みエンジンを通じて強制されます。signaturePolicy は Windows フォームインポートと同じ明示トラスト・タイムスタンプ・失効設定を受け付けます

読み取り専用の同一入力更新は、実際の AP オペレーター、フォント、リソース、フィールド値が等価なときにのみ成功します。圧縮 AP ストリームと非正規だが等価な RV は対応しています。真のスタイル変更は、その RV カラーが同じ CSS 値に量子化されていても変更です

実際に変更なしの要求は、ポリシー認証後に準備済みカレントリビジョンの正確なバイトを公開します。保留グラフ編集は比較の前にそのカレントリビジョンへ実体化されます

成功した応答には、実際に準備された候補からの typedRichText=true、typedRichProfile=original-typed-runs-v1、updated、fieldCount、fontBytes、fields が含まれます。formDataExchange.typedRichFill がこれらの実装済みエントリーポイントを記述します

各 fields アイテムは通常の name、スカラー value、fieldType サマリーを保持します。配列に裏付けられた選択はこのサマリーでスカラー value が空になり、完全な選択状態は保存された PDF と後続の FDF / XFDF エクスポートに残ります

直接の ExecuteLoadedOperation ジョブファサードとレガシー HPDFDocRunJob ハンドル / フォントコールバック拡張は別の作業のままです。このバインディングは注釈・埋め込みファイル・アクション・インクリメンタル FDF 交換を追加しません

関連トピック

FillTypedData、Windows トランザクション、ネイティブ混合型付き更新、Windows FDF/XFDF 交換