PDFium Component Docs

GetAnnotationDictionaryValue methode

Component: TPdf  ·  Unit: PDFium
Leest één sleutel rechtstreeks uit de dictionary van een annotatie op de huidige pagina en rapporteert het soort waarde samen met de gedecodeerde scalar

Syntax

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

AnnotIndexInteger. Op nul gebaseerde index van de annotatie op de huidige pagina, in het bereik 0 .. AnnotationCount - 1. Een index buiten het bereik verhoogt een EPdfError
KeyWString. Naam van de te lezen dictionary-entry, UTF-8 gecodeerd vóór de native aanroep
ResultTPdfDictionaryValue. Kind draagt het native waardetype; string-, name- en number-waarden worden gedecodeerd naar StringValue / NumberValue met HasScalarValue = True

Description

Elke annotatie is gebaseerd op een PDF-dictionary en het recordmodel van de component mapped alleen de gangbare entries. Deze aanroep gaat naar de ruwe dictionary en leest één enkele sleutel, zodat applicatiegedefinieerde entries (een reviewstatus, een grouping-id, een leveranciersextensie) zichtbaar worden zonder de objectgrafiek te doorlopen

Het soort waarde wordt native opgevraagd en gedecodeerd naar een TPdfDictionaryValueKind: pdvkUnknown, pdvkBoolean, pdvkNumber, pdvkString, pdvkName, pdvkArray, pdvkDictionary, pdvkStream, pdvkNull of pdvkReference. Alleen de scalaire soorten worden opgehaald: strings en names worden gedecodeerd naar StringValue, numbers naar NumberValue (door de native API met single precision gelezen), en HasScalarValue markeert een geslaagde ophaal. Waarden zonder scalaire payload — booleans, arrays, geneste dictionaries, streams — worden alleen via Kind gerapporteerd

Voor sleutels die het recordmodel al blootlegt heeft Annotation de voorkeur: het normaliseert en valideert de gangbare velden. Grijp alleen naar deze aanroep wanneer een sleutel buiten het model ligt

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