THPDFHeadlessDocument

HPDFHeadlessDocument は、既存の HotPDF オブジェクトパーサー、Direct File ヘルパー、フォントデコーダー、コンテンツインタープリター、フィルターデコーダー、xref ライターを使って、ネイティブ Linux / Windows 向けのコンソールドキュメント API を提供します

ドキュメントローダーは、クラシッククロスリファレンステーブル、xref ストリーム、ハイブリッド xref セクション、インクリメンタル Prev チェーン、直接 / 圧縮オブジェクト、継承ページリソース、コンテンツ配列、Form XObject、AcroForm フィールドツリーを受け付けます

ハイブリッドのサイドストリームは付随するテーブルより優先され、新しいリビジョンは古いものより優先されます。オブジェクトストリームのメンバーは共有オブジェクトパーサーで遅延デコード / パースされます

ライフサイクルと所有権

Create は THPDFHeadlessDocumentOptions.Default を使い、オプションオーバーロードは明示的な予算と呼び出し側所有のキャンセルトークンを受け付けます

LoadFromFile は前のドキュメントを閉じ、ソースを読み取り専用で開き、カレントオブジェクトグラフをロードし、失敗時には部分的な状態を閉じます。Close はソースとロード済みオブジェクトをすべて解放します

LoadFromFile(FileName, Password) は THPDFHeadlessAES256Security 経由で Standard AES-256 R5 / R6 ドキュメントを認証します。元の 1 引数オーバーロードは空パスワードを使います

ユーザーパスワードは、該当操作の実行前にテキスト抽出またはフォーム入力を許可している必要があります。オーナーパスワードはユーザー権限の制限をバイパスします。誤ったパスワード、認証済み Perms の不一致、拒否された操作、不正な暗号ペイロードは、それぞれ異なるドキュメント診断になります

直接の文字列とストリームは共有暗号コードで復号され、圧縮メンバーはそのコンテナーと一体で復号されます。暗号化されたインクリメンタル置換は、元のキーと権限ポリシーの下で暗号化されたままです

パスワードは 127 バイトで切り詰められた UTF-8 バイトを使い、SASLprep 正規化は行いません。未対応ハンドラー、明示的な Crypt フィルター、PDF MAC ポリシーは無視されず診断されます

エンコードされた辞書キーとリソース名は使用前にデコードされ、大文字小文字は有意のまま、重複するデコード済みキーは拒否されます。フィールドフラグと MaxLen は対応する非負 32 ビット範囲に収まらなければなりません

インスタンスはスレッドセーフではありません。ワーカーごとに 1 インスタンスを使い、インスタンス破棄までキャンセルトークンを生存させてください

ページとテキスト

PageCount はページツリーのリーフ数を報告します。ExtractPageText(PageIndex) は 0 始まりのインデックスを受け付け、共有グリフインタープリターから組み立てた Unicode テキストを返します

ExtractPageTextBounded はテキスト準備の前に一時的なグリフ / ストリーム上限を適用し、成功・失敗・キャンセルのいずれの後も元のリソースオプションをすべて復元します

GetObjectAccess は読み取り専用の借用カタログ・情報・オブジェクトアクセスを、ネイティブ構造 / フル比較向けの上限付きインデックス割り当てつきで公開します

テキストデコードはフォントエンコーディング、エンコーディング差分、埋め込み ToUnicode CMap、明示的な幅、標準フォントメトリクスプロバイダーに従います。ネストした Form XObject は自身のマトリクスを適用し、独自または継承のリソース辞書を使います

Linux の標準フォントフォールバックには Fontconfig とインストール済み TrueType フォントが必要です。複雑なドキュメントフォントは対応するデコード戦略を提供しなければならず、欠落したフォントリソースは診断になります

AppendPageText は可視またはフィット済み不可視の Unicode テキストを追加します。元のページコンテンツと暗号化セキュリティーポリシーは保持されます

AppendImportedPages は選択されたページリソースグラフ、継承ジオメトリー、可視の通常外観をクローンします。既存の宛先リビジョンと認証済み暗号化ポリシーは保持されます

AcroForm テキスト値

FormFieldCount、GetFormField(FieldIndex)、FindFormField(Name) は完全修飾名と継承されたフィールドタイプ・フラグ・最大長・値で終端フィールドを列挙します。インデックスは 0 始まりで、見つからない名前は -1 を返します

SetTextFieldValue(FieldIndex, Text) は書き込み可能な Tx フィールドを受け付け、UTF-16BE の PDF 文字列を書き込み、AcroForm 辞書に NeedAppearances=true を設定します

この値のみのメソッドはビュアーによる再生成に依存します。外観を再生成しないビュアーでは、古い外観や空のウィジェットが表示され続けることがあります

SetTextFieldValueWithAppearance は、呼び出し側指定の TrueType フォント、実際のグリフメトリクス、Identity-H エンコーディング、ToUnicode、完全な FontFile2 埋め込みを使って、既存のすべてのウィジェットに明示的な Unicode 外観を生成します

この外観プロファイルは、単一行 / 複数行テキスト、折り返し、comb セル、直角回転、固定サイズ / オートフィット、配置、オプションのネイティブ HarfBuzz / FriBidi 複雑シェーピングに対応します

SetChoiceFieldValuesWithAppearance は複数選択リストボックス、継承オプション、ソート済みエクスポート配列、可視の選択行すべてを処理します。単一値ヘルパーもコンボのエクスポート / 表示ラベルに対応します

GetChoiceFieldValues は選択済みエクスポート配列全体を読み取ります。SetButtonFieldValueWithAppearance と SetPushButtonAppearance は実際のボタン状態とキャプションを生成します

新しい外観オブジェクト / ストリームはフィールド変更の前に上限をかけられ、保存時には元の AES セキュリティーポリシーの下で暗号化されたままです。ネイティブ Linux Cairo と独立リーダーは同じ生成オブジェクトを消費します

読み取り専用フィールド、UTF-16 コード単位で MaxLen を超える値、テキスト以外のフィールド、XFA フォーム、署名済みフィールド、証明書化ドキュメント権限は編集時に拒否されます

署名済みドキュメントでは認証済みの DocMDP / FieldMDP ポリシーが適用されます。許可されたフォーム更新は既存の署名済みリビジョンを保持し、ロック済みフィールド、P1 の制限、署名の上書き試みは型付き診断になります

検証済み DSS / VRI エビデンスは、既存の ByteRange 署名を変更せずに、認証済み証明書 / 失効データをインクリメンタルリビジョンへ追加します

署名検証

SignatureCount は署名済み AcroForm 署名フィールドを列挙し、VerifySignature(SignatureIndex, Options) は共有パーサーとストリーミング OpenSSL 3 CMS プロバイダーで 0 始まりの署名を検証します

PDF プロファイルは 16 進または標準リテラル Contents の adbe.pkcs7.detached と自動認識される ETSI.CAdES.detached を受け付けます。CAdES は常に ESS 署名証明書バインディングを認証し、明示的な CA 設定はトラストを別に評価します

ETSI.RFC3161 の DocTimeStamp は、実際のカプセル化 TSTInfo、ESS、TSA 用途 / 署者名、正確な PDF インプリントを自動認証します。設定されたタイムスタンプルートと CRL が TSA トラストを別に評価します

検証は区切り文字を含む正確な未署名ギャップを検証し、そのデコード済みバイトを暗号検証の前にカレント署名辞書へ結び付けます

結果は完全性、明示的に評価された CA トラスト、認証済みリビジョン以降の未署名バイトを区別します。未対応の PDF 署名プロファイルは型付き診断になります

ランタイム要件は HPDFVerifyHeadlessCMS、予算とトラスト設定は THPDFHeadlessCMSOptions を参照してください

インクリメンタル承認署名

SignToFile は既存の書き込み可能な未署名 Sig フィールドに署名し、呼び出し側指定の PEM 証明書と暗号化なし PEM 秘密鍵を使って、独立したインクリメンタル更新 PDF を公開します

AddSignatureField はページウィジェットとその AcroForm リンクを作成します(プレーンなインポート PDF への新規 AcroForm を含む)。SetSignatureFieldAppearance は可視キャプションを生成し、SignPFXToFile はチェーンつきの PKCS12 証明書 / 鍵 ID をロードします

CertificationPermission は最初の DocMDP 証明書署名を作成します。P2 / P3 は既存フィールドでの後続承認署名を許可し、P1 はさらなる署名を拒否します

元のソースバイトとロード済みオブジェクトグラフは不変です。後続の承認署名は、先行署名バイトとその認証済みリビジョン境界を保持します

Standard AES-256 R5 / R6 暗号化、パスワード、ID、権限は、暗号化オブジェクトストリームソースを含め有効なままです。署名 Contents 文字列は PDF の暗号化除外に従います

既存の署名値、読み取り専用フィールド、証明書化ドキュメントポリシー、拒否されたフォーム入力権限、不一致のキャンセルトークン、枯渇した出力予算は、出力を公開せずに拒否されます

ドキュメントタイムスタンプ

TimestampToFile は、アプリケーション署名鍵なしで、既存の未署名署名フィールドに実際の RFC 3161 ドキュメントタイムスタンプを作成します。呼び出し側所有の TSA 転送と明示的な TSA トラストを使います

ライターは元のリビジョンと AES セキュリティーを保持し、PDF 2.0 未満の入力向けに ESIC 拡張を宣言し、ノンス・インプリント・署名・証明書・設定済み失効・シードのチェックが通った後にのみアトミックに公開します

必要な認証済みドキュメントタイムスタンプ変更は DocMDP / FieldMDP の下で許可されます。通常のフォーム編集と承認署名は元の制限を保持します

FDF / XFDF フォーム相互運用

ExportAnnotationsFDF は有界な注釈オブジェクトグラフとその共有外観リソースをエクスポートし、SaveAnnotationsFDFToFile は名前付き置き換えを準備して独立したアトミック PDF リビジョンに追加します

バイナリ FDF 注釈プロファイルは、認証済みドキュメントの暗号化と署名ポリシー、文脈依存のローカル GoTo ページ参照、正確な無変更公開を保持します。保存後もロード済みドキュメントは変更されません

SaveAnnotationsXFDFToFile は有界なマップ済み注釈を独立したインクリメンタルリビジョンに追加し、HPDFExportHeadlessAnnotationsXFDF はその XFDF バイトを返します

ExportFormData は上限付き Unicode フィールドデータを返します。実際の選択配列やチェックボックス / ラジオのエクスポート状態を含みます

ImportFormDataToFile はプライベートな認証済みリビジョングラフ上で実際の外観を再生成し、読み込み済みソース状態を保持したままインクリメンタル PDF をアトミックに公開します

ImportRichFormDataToFile は、FDF RV または XFDF value-richtext から上限付き XHTML プロファイルを、実際の通常 / ボールド / イタリック / ボールドイタリックフォントプログラムつきでインポートします

SaveRichTextFieldUpdatesToFile はスカラーフィールドとオリジナル型付きリッチ run を 1 つの独立アトミックリビジョンで適用し、実際のフォントプログラムと PDF 数値精度を保持します。変更なしの保護フィールドは、すべてのウィジェットで一致するデコード済み外観と解決済みリソースを要求します

既存の暗号化、読み取り専用フラグ、認証済み DocMDP / FieldMDP、元の署名、キャンセル / リソース予算は適用され続けます。対応する構文とスカラー交換境界は ネイティブ FDF / XFDF フォームデータを参照してください

借用レンダリングアクセス

GetRenderAccess(PageIndex) は、既存のページ辞書、継承リソース、フォントリゾルバー、オブジェクト解決、権限チェック、キャンセルトークン、上限付きデコードストリームコールバックを THPDFHeadlessRenderAccess 経由で提供します

これは直列の読み取り専用借用ビューです。レンダラーが終わるまでドキュメントを読み込み済みかつ未変更のまま保ち、公開されたオブジェクトグラフを変更してはいけません

ビューの RequireOutputPath コールバックは、ファイルを作成 / 変更せずに、候補出力をソースの正規パスと物理ファイル ID に対してチェックします

独立出力

ExtractPageGlyphs は上限付きネストコンテンツウォーカーを通じて位置付きグリフを返します。AnalyzePageSemanticText は ネイティブコントラクト比較向けのセマンティックテキストとソースジオメトリーを提供します

SaveToFile(FileName) は元のバイトをコピーし、置換オブジェクト値、クラシック xref テーブル、Prev でリンクされたトレーラーを追記します。圧縮オブジェクトメンバーは追記リビジョンで直接オブジェクトとして実体化され、元のストリームバイトは保持されます

出力はソースのパスやファイル ID とエイリアスしてはいけません。書き込みは宛先ディレクトリーに排他的に作成したステージングファイルを使い、フラッシュしてからアトミックリネームで公開します

予算・キャンセル・シリアライズ失敗は既存宛先を保存し、未公開のステージングファイルを削除します。ソースは読み取り専用のままです

ネイティブ注釈付きレビュー PDF は、認証済み注釈権限つきで実際の Unicode ハイライトと可視外観をエクスポートします。元の読み込み済みドキュメントと署名リビジョンは保持されます

フォーマット境界

現在のプロファイルは Standard AES-256 R5 / R6 暗号化に対応し、未対応のセキュリティーハンドラーとストリームフィルターを明示的に診断し、ライターで表現できない廃止済みフリーオブジェクト世代を拒否します

ブートストラップ xref ストリームは直接辞書値と直接の上限付き Length を要求します。不正な幅、サブセクション重複、Int64 超の符号なしオフセット、圧縮メンバー不一致、参照サイクル、設定された上限は型付き診断になります

デコードコンテンツは、対応する予測子と間接ストリーム長つきの Flate、ASCIIHex、ASCII85、LZW フィルターに対応します。画像ペイロードはテキスト抽出のためにデコードされません

ネイティブ署名ワークフローは署名フィールド、可視外観、証明書化をカバーします。認証済み署名フォームポリシー、タイムスタンプ、長期検証 API は明示的な完全性 / トラストオプションを保持します

受け入れ検証

名前付きリッチフォントファミリーは、SetRichTextFieldValueWithFamilies と ImportRichFormDataWithFamiliesToFile を通じて、既存のフィールド・セキュリティー・トランザクションポリシーのままで複数の実際の指定ファミリーを追加します

ネイティブリッチテキストフィールドは型付きスタイル run、実際の埋め込みスタイルフォント外観、同期された V / RV 値、暗号化インクリメンタル出力、上限付きトランザクション編集を提供します。GetRichTextFieldValue は保存済みまたは継承 XHTML を読み取ります

Tests/Linux/Run-HeadlessDocumentTests.sh はデスクトップ変数をクリアしてネイティブ ELF 実行ファイルをビルドし、GUI ライブラリー依存をチェックします。Run-HeadlessDocumentTests-Windows.cmd Win32 と Win64 は同じ共有ドキュメント API を演習します

戻り値と型付き診断は THPDFHeadlessFormField、EHPDFHeadlessDocumentError、THPDFHeadlessDiagnosticCode を参照してください

注釈削除

ページ注釈の削除は、SaveAnnotationRemovalsToFile による正確なページと Unicode NM の識別子で行います。popup と返信のカスケード、有界な準備、アトミックな独立出力が伴います

ロード済みドキュメントは変更されません。選択が無変更なら正確な現在リビジョンをコピーし、インクリメンタル削除は履歴バイトを保持します