PDFium Delphi Component Docs

μέθοδος GetAnnotationDictionaryValue

Component: TPdf  ·  Unit: PDFium
Διαβάζει ένα κλειδί απευθείας από το λεξικό ενός σχολίου στην τρέχουσα σελίδα και αναφέρει το είδος τιμής μαζί με το αποκωδικοποιημένο scalar

Syntax

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

AnnotIndexInteger. Zero-based index του σχολίου στην τρέχουσα σελίδα, στο εύρος 0 .. AnnotationCount - 1. Index εκτός εύρους εγείρει EPdfError.
KeyWString. Όνομα της εγγραφής λεξικού προς ανάγνωση, κωδικοποιημένο σε UTF-8 πριν την native κλήση
ResultTPdfDictionaryValue. Το Kind μεταφέρει τον native τύπο τιμής· οι τιμές string, name και number αποκωδικοποιούνται σε StringValue / NumberValue με HasScalarValue = True.

Description

Κάθε σχόλιο υποστηρίζεται από ένα λεξικό PDF, και το μοντέλο εγγραφών του component αντιστοιχίζει μόνο τις συνηθισμένες εγγραφές. Αυτή η κλήση φτάνει στο ακατέργαστο λεξικό και διαβάζει ένα μοναδικό κλειδί, ώστε εγγραφές που ορίζει η εφαρμογή (κατάσταση ανασκόπησης, id ομαδοποίησης, επέκταση προμηθευτή) να γίνονται ορατές χωρίς διάσχιση του γραφήματος αντικειμένων

Το είδος της τιμής ερωτάται native και αποκωδικοποιείται σε TPdfDictionaryValueKind: pdvkUnknown, pdvkBoolean, pdvkNumber, pdvkString, pdvkName, pdvkArray, pdvkDictionary, pdvkStream, pdvkNull ή pdvkReference. Ανακτώνται μόνο τα scalar είδη: strings και names αποκωδικοποιούνται σε StringValue, numbers σε NumberValue (αναγιγνόμενα σε απλή ακρίβεια από το native API), και το HasScalarValue σηματοδοτεί επιτυχή ανάκτηση. Τιμές χωρίς scalar περιεχόμενο — booleans, πίνακες, εμφωλευμένα λεξικά, streams — αναφέρονται μόνο μέσω του Kind

Για κλειδιά που το μοντέλο εγγραφών ήδη εκθέτει, προτιμήστε το Annotation: κανονικοποιεί και επικυρώνει τα συνηθισμένα πεδία. Καταφύγετε σε αυτή την κλήση μόνο όταν ένα κλειδί βρίσκεται εκτός του μοντέλου

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