property SignatureCount: Integer; // read only
SignatureCount は文書に現在存在する署名辞書の数を返します。PDFium は AcroForm 署名フィールド(PDF 1.7 仕様 12.8 節)を列挙します。各エントリは /Contents 16 進文字列と /ByteRange カバレッジを持つ署名辞書(/Type /Sig)を /V 値とする /Sig フィールドに対応します
Active が False のとき、PDF がまだ埋められていない空の署名プレースホルダーのみを持つとき、またはファイルが単に署名されていないとき、値は 0 です。これは文書レベルのカウントであることに注意してください。署名フィールドは視覚的に任意のページに配置できますが、カウント自体はグローバルです
Signature[Index] を使って、生の PKCS#7 Content バイト、Encoding 文字列(adbe.pkcs7.detached、ETSI.CAdES.detached など)、署名者が提供した Reason / Time 文字列、Permission レベルを含む単一の TPdfSignature レコードを取得します。PDFium Delphi Component は検査データのみを公開します。署名の検証には、文書バイト範囲に対して PKCS#7 blob を検証するサードパーティの暗号ライブラリが必要です
n は署名時の状態を検証し、必ずしも現在の状態ではありませんSaveToFile を通じて一定です。外部で署名して FPDF_SaveAsCopy 経由で保存すると、既存の署名がバイト単位で保持されますFormFieldCount と組み合わせて、文書に署名以外の対話型フィールドが追加であるかを確認します
var I: Integer;
var Sig: TPdfSignature;
for I := 0 to Pdf1.SignatureCount - 1 do
begin
Sig := Pdf1.Signature[I];
Memo1.Lines.Add(Format('Signer reason: %s, time: %s',
[Sig.Reason, Sig.Time]));
end;