PDFium Delphi Component Docs

GetAnnotationDictionaryValue metodă

Component: TPdf  ·  Unit: PDFium
Citește direct o cheie din dicționarul unei adnotări de pe pagina curentă și raportează felul valorii ei împreună cu scalarele decodat

Syntax

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

AnnotIndexInteger. Indice cu bază zero al adnotării pe pagina curentă, în intervalul 0 .. AnnotationCount - 1. Un indice în afara intervalului ridică un EPdfError
KeyWString. Numele intrării din dicționar de citit, codificat UTF-8 înaintea apelului nativ
ResultTPdfDictionaryValue. Kind poartă tipul nativ al valorii; valorile de tip string, name și number sunt decodate în StringValue / NumberValue cu HasScalarValue = True

Description

Fiecare adnotare este susținută de un dicționar PDF, iar modelul de înregistrări al componentei mapează doar intrările comune. Acest apel pătrunde în dicționarul brut și citește o singură cheie, astfel încât intrările definite de aplicație (o stare de revizuire, un id de grupare, o extensie de furnizor) devin vizibile fără a parcurge graful de obiecte

Felul valorii este interogat nativ și decodat într-un TPdfDictionaryValueKind: pdvkUnknown, pdvkBoolean, pdvkNumber, pdvkString, pdvkName, pdvkArray, pdvkDictionary, pdvkStream, pdvkNull sau pdvkReference. Sunt aduse doar felurile scalare: șirurile și numele sunt decodate în StringValue, numerele în NumberValue (citite la precizie simplă de API-ul nativ), iar HasScalarValue marchează o aducere reușită. Valorile fără sarcină utilă scalară — booleene, vectori, dicționare imbricate, fluxuri — sunt raportate doar prin Kind

Pentru cheile pe care modelul de înregistrări le expune deja, preferați Annotation: el normalizează și validează câmpurile comune. Recurați la acest apel doar când o cheie se află în afara modelului

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