Windows 注釈 XFDF 交換

Windows のファイルジョブと hpdf_document_execute_json_v1 は、認証済み Windows トランザクションブリッジを通じて、マップ済み注釈をエクスポートし、XFDF 注釈を追加します

マップ済みタイプとプロパティは、上限付きバイナリ添付・音声ストリーム、Unicode リッチコンテンツ、ポップアップオブジェクト、前方応答を含め、ネイティブ注釈 XFDF と共有されます

ファイルジョブ

{
  "schemaVersion": 1, "type": "annotations.import", "format": "xfdf",
  "input": "source.pdf", "annotationInput": "annotations.xfdf",
  "output": "annotated.pdf", "password": "owner",
  "annotationLimits": {"maxBytes": 1048576, "maxAnnotations": 1000},
  "budget": {"memoryBytes": 268435456, "outputBytes": 134217728,
    "timeMilliseconds": 60000, "resultBytes": 16777216}
}

annotations.export は同じ format、input、output、オプション password を使い、PDF ではなく UTF-8 XFDF を書き込みます。インポートには annotationInput が必要です

出力は、PDF 入力、XFDF 入力、供給されたトラスト・エビデンスファイルのエイリアスであってはなりません。既存のハードリンクを含みます。公開は排他的な一時兄弟ファイルを予約し、上限付き結果を検証し、候補をフラッシュ・クローズしてから、ターゲットをアトミックに置き換えます

失敗とキャンセルは、既存の完全なターゲットを保持し、操作の一時ファイルを削除します

元の V1 コールバック

hotpdf_abi.h の、変更されていない hpdf_operation_v1 と hpdf_io_v1 を使ってください。注釈交換にフォント拡張は不要です

先に hpdf_document_load_from_io で宛先 PDF をロードします。インポートは InputIO から XFDF を読み、OutputIO に候補 PDF を書き、ResultIO に上限付き JSON を書きます。エクスポートはアクティブな所有 PDF を読み、OutputIO に XFDF を書きます

暗号化入力では、ロード済み PDF の認証に使った操作パスワードを繰り返し指定します。この操作は、以前のロード呼び出しからの暗黙パスワードを保持しません

PDF と結果のコールバックが両方成功し、最終キャンセルチェックポイントを通過した場合にのみ、新しいドキュメントと所有リビジョンが採用されます。失敗した入力・出力・結果コールバック、不正 XML、枯渇した上限、キャンセルは以前のコンテキストを保持します

コールバックは、後の失敗の前に候補バイトを受け取り得ます。呼び出し側所有の宛先は、HPDF_STATUS_OK が返った後にのみ公開してください

ポリシー、上限、結果

インポートは、既存の署名整合性と ESS 署名者バインディングを認証します。P1 と P2 の証明は注釈変更を拒否し、P3 は元の署名済みバイトを保持する注釈リビジョンを許可します

AES-256 R5/R6 インポートは、暗号化パラメータと元のリビジョン接頭辞を保持します。空のインポートはポリシーを認証し、正確な現在バイトを保持します

signaturePolicy は、Windows フォームデータ交換で記述された、既存の Boolean トラスト・タイムスタンプ・失効要件と明示的なトラストパスを受け付けます

annotationLimits は maxBytes、maxAnnotations、maxNodes、maxDepth、maxWorkingBytes を下げられます。値は正の整数 JSON 数値で、計算されたデフォルトを上げられません

作業、出力、結果、オブジェクト、ページの各予算も適用されます。コールバック操作は、さらに厳しい期限として elapsedMilliseconds を受け付けます

エクスポートは annotationCount、skippedAnnotationCount、decodedAttachmentBytes、outputBytes を報告します。インポートは updated、outputBytes、mapped-annotations-v1 と等しい annotationProfile を報告します

境界

機能は、追加のみのインポート、一般的な appearanceImport=false、スコープ付きの stampAppearanceImport=true とともに、file-job と execute-json-v1 を通じた注釈交換を通知します

標準スタンプ外観トランスポートは、base64 型付き XML を通じて実際の Form ストリームと、上限付きの非巡回フォント・画像・グラフィックスリソースを保持します

一般的な AP 転送、注釈の置換・削除、より広いアクション、FDF 注釈データは別の作業です。リモート GoToR アクションとローカル宛先は既存の上限付きプロファイルを使います

汎用の ExecuteLoadedOperation と、より古いジョブハンドルコールバックレコードは別のエントリポイントです。Pascal の呼び出し側は、明示的なトランザクションクラスを使えます

バイナリ FDF 交換

同じファイルジョブと V1 コールバックが format="fdf" を受け付けます。ファイルインポートは annotationInput からバイナリ FDF を読み、エクスポートは選択された出力にバイナリ FDF を書きます

FDF オブジェクトグラフプロファイルは、供給された外観リソースと共有間接オブジェクトを保持し、同じページ上で一致する空でない注釈 NM による置き換えに対応します

FDF インポートは annotationProfile="pdf-object-graph-v1" を返します。updated は実際の注釈変更数を数え、等価なインポートは正確な現在リビジョンを保持します

FDF は正の整数の annotationLimits 制御に maxObjects を追加し、既存の認証済みポリシー、有界な候補公開、コールバック所有権規則を使います

Pascal の呼び出し側は THPDFWindowsFormDataTransaction.ExportAnnotationsFDF と ImportAnnotationsFDF を使えます。このプロファイルの実際の変更は ChangedAnnotations が報告します

空でない FDF Fields と埋め込み Differences は別個の処理が必要で、公開前に注釈のみの操作を失敗させます

Windows 注釈削除は、マップ済み XFDF 追加セマンティクスを変えずに、正確なページと NM の識別子のための別個の準備済みトランザクションと JSON ジョブを提供します