property SignatureCount: Integer; // read only
SignatureCount возвращает количество словарей подписи, которые в данный момент присутствуют в документе PDFium перечисляет поля подписи AcroForm (раздел 12.8 спецификации PDF 1.7) — каждая запись соответствует полю /Sig, чьё значение /V является словарем подписи (/Type /Sig) с охватом по шестнадцатеричной строке /Contents и диапазону /ByteRange
Значение равно 0, когда Active имеет значение False, когда PDF содержит только пустые заполнители подписи, которые еще не заполнены, или когда файл просто не был подписан Это значение относится ко всему документу: поля подписи могут быть визуально размещены на любой странице, но сам счет глобален
Используйте Signature[Index], чтобы получить одну запись TPdfSignature, содержащую необработанные байты PKCS#7 Content, строку Encoding (adbe.pkcs7.detached, ETSI.CAdES.detached и т. д.), строки Reason / Time, заданные подписантом, и уровень Permission PDFiumPas предоставляет только данные для просмотра; проверка подписи требует сторонней криптографической библиотеки для валидации блока PKCS#7 относительно диапазона байт документа
n подтверждает состояние на момент подписания, а не обязательно текущее состояниеSignatureCount остается постоянным между вызовами 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;