PDFium Delphi Component Docs

GetAnnotationDictionaryValue metoda

Komponenta: TPdf  ·  Jednotka: PDFium
Přečte jeden klíč přímo ze slovníku anotace na aktuální stránce a hlásí druh hodnoty spolu s dekódovaným skalárem

Syntaxe

function GetAnnotationDictionaryValue(AnnotIndex: Integer; const Key: WString): TPdfDictionaryValue;

AnnotIndexInteger. Index anotace na aktuální stránce počítaný od nuly, v rozsahu 0 .. AnnotationCount - 1. Index mimo rozsah vyvolá EPdfError
KeyWString. Název čtené položky slovníku, před nativním voláním kódovaný v UTF-8
ResultTPdfDictionaryValue. Kind nese nativní typ hodnoty; řetězcové, name a číselné hodnoty se dekódují do StringValue / NumberValue s HasScalarValue = True

Popis

Každá anotace je podložena slovníkem PDF a recordový model komponenty mapuje jen běžné položky. Toto volání zajde do surového slovníku a přečte jeden klíč, takže aplikačně definované položky (stav revize, skupinové id, rozšíření dodavatele) se stanou viditelnými bez procházení grafu objektů

Druh hodnoty se dotazuje nativně a dekóduje do TPdfDictionaryValueKind: pdvkUnknown, pdvkBoolean, pdvkNumber, pdvkString, pdvkName, pdvkArray, pdvkDictionary, pdvkStream, pdvkNull nebo pdvkReference. Stahují se jen skalární druhy: řetězce a name se dekódují do StringValue, čísla do NumberValue (čtená nativním API v jednoduché přesnosti) a HasScalarValue značí úspěšné stažení. Hodnoty bez skalárního payloadu — booleany, pole, vnořené slovníky, streamy — se hlásí jen přes Kind

Pro klíče, které recordový model už vystavuje, upřednostněte Annotation: ta normalizuje a validuje běžná pole. Sáhněte po tomto volání, jen když klíč leží mimo model

Poznámky

Příklad

var
  Value: TPdfDictionaryValue;
begin
  // read a vendor-specific review status from annotation 2
  Value := Pdf1.GetAnnotationDictionaryValue(2, 'ReviewStatus');
  if (Value.Kind = pdvkName) and Value.HasScalarValue then
    Memo1.Lines.Add('Status: ' + Value.StringValue);
end;

Viz také

Annotation, AnnotationCount, GetAttachmentDictionaryValue