PDFium Delphi Component Docs

GetAnnotationDictionaryValue metódus

Komponens: TPdf  ·  Egység: PDFium
Egy kulcsot olvas ki közvetlenül az aktuális oldal egy jegyzetének szótárából, és a dekódolt skalárral együtt jelenti az érték fajtáját

Syntax

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

AnnotIndexInteger. A jegyzet nulla alapú indexe az aktuális oldalon, a 0 .. AnnotationCount - 1 tartományban. A tartományon kívüli index EPdfError kivételt vált ki
KeyWString. Az olvasandó szótárbejegyzés neve, a natív hívás előtt UTF-8 kódolással
ResultTPdfDictionaryValue. A Kind hordozza a natív értéktípust; a sztring-, név- és számértékek HasScalarValue = True mellett StringValue / NumberValue formában dekódolódnak

Description

Minden jegyzetet egy PDF-szótár támogat, és a komponens rekordmodellje csak a gyakori bejegyzéseket képezi le. Ez a hívás közvetlenül a nyers szótárba nyúl és egyetlen kulcsot olvas ki, így az alkalmazás által definiált bejegyzések (átvizelési állapot, csoportosító azonosító, szállítói kiterjesztés) az objektumgráf bejárása nélkül is láthatóvá válnak

Az értékfajta natívan kérdeződik le, és TPdfDictionaryValueKind értékké dekódolódik: pdvkUnknown, pdvkBoolean, pdvkNumber, pdvkString, pdvkName, pdvkArray, pdvkDictionary, pdvkStream, pdvkNull vagy pdvkReference. Csak a skaláris fajták töltődnek le: a sztringek és nevek StringValue-ként, a számok NumberValue-ként dekódolódnak (a natív API egyszeres pontossággal olvassa őket), a HasScalarValue pedig a sikeres letöltést jelzi. A skaláris adatot nem hordozó értékek — logikai értékek, tömbök, beágyazott szótárak, streamek — kizárólag a Kind mezőn keresztül jelennek meg

Azoknál a kulcsoknál, amelyeket a rekordmodell már felfed, részesítse előnyben az Annotation tulajdonságot: az normalizálja és ellenőrzi a gyakori mezőket. Csak akkor nyúljon ehhez a híváshoz, ha a kulcs a modellen kívül esik

Remarks

Example

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;

See Also

Annotation, AnnotationCount, GetAttachmentDictionaryValue