PDFium Delphi Component Docs

GetAnnotationDictionaryValue metod

Component: TPdf  ·  Unit: PDFium
Läser en nyckel direkt ur en annoteringens ordbok på den aktuella sidan och rapporterar dess värdetyp tillsammans med den avkodade skalären

Syntax

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

AnnotIndexInteger. Nollbaserat index för annoteringen på den aktuella sidan, i intervallet 0 .. AnnotationCount - 1. Ett index utanför intervallet utlöser en EPdfError.
KeyWString. Namnet på ordboksposten som ska läsas, UTF-8-kodad före det nativa anropet.
ResultTPdfDictionaryValue. Kind bär den nativa värdetypen; sträng-, namn- och talvärden avkodas till StringValue / NumberValue med HasScalarValue = True.

Description

Varje annotering backas av en PDF-ordlista, och komponentens postmodell mappar bara de vanliga posterna. Det här anropet går rakt in i råordlistan och läser en enda nyckel, så applikationsdefinierade poster (en granskningsstatus, ett grupperings-id, ett leverantörstillägg) blir synliga utan att behöva vandra genom objektgrafen

Värdetypen frågas nativt och avkodas till en TPdfDictionaryValueKind: pdvkUnknown, pdvkBoolean, pdvkNumber, pdvkString, pdvkName, pdvkArray, pdvkDictionary, pdvkStream, pdvkNull eller pdvkReference. Bara de skalära typerna hämtas: strängar och namn avkodas till StringValue, tal till NumberValue (lästa med enkel precision av det nativa API:et), och HasScalarValue markerar en lyckad hämtning. Värden utan skalärnyttolast — booleska värden, arrayer, nästlade ordböcker, strömmar — rapporteras bara via Kind

För nycklar som postmodellen redan exponerar, använd hellre Annotation: den normaliserar och validerar de vanliga fälten. Gå till det här anropet först när en nyckel ligger utanför modellen

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