PDFium Delphi Component Docs

GetAnnotationDictionaryValue Methode

Komponente: TPdf  ·  Unit: PDFium
Liest einen Schlüssel direkt aus dem Wörterbuch einer Anmerkung auf der aktuellen Seite und meldet seine Wertart zusammen mit dem dekodierten Skalar

Syntax

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

AnnotIndexInteger. Nullbasierter Index der Anmerkung auf der aktuellen Seite, im Bereich 0 .. AnnotationCount - 1. Ein Index außerhalb des Bereichs löst einen EPdfError aus
KeyWString. Name des zu lesenden Wörterbucheintrags, vor dem nativen Aufruf UTF-8-kodiert
ResultTPdfDictionaryValue. Kind trägt den nativen Werttyp; String-, Name- und Zahlenwerte werden in StringValue / NumberValue mit HasScalarValue = True dekodiert

Beschreibung

Jede Anmerkung ist von einem PDF-Wörterbuch unterlegt, und das Record-Modell der Komponente bildet nur die gängigen Einträge ab. Dieser Aufruf greift in das rohe Wörterbuch und liest einen einzelnen Schlüssel, sodass anwendungsdefinierte Einträge (ein Review-Status, eine Gruppen-ID, eine Anbieter-Erweiterung) sichtbar werden, ohne den Objektgraph zu durchlaufen

Die Wertart wird nativ abgefragt und in einen TPdfDictionaryValueKind dekodiert: pdvkUnknown, pdvkBoolean, pdvkNumber, pdvkString, pdvkName, pdvkArray, pdvkDictionary, pdvkStream, pdvkNull oder pdvkReference. Nur die skalaren Arten werden geholt: Strings und Namen werden in StringValue dekodiert, Zahlen in NumberValue (vom nativen API in einfacher Genauigkeit gelesen), und HasScalarValue markiert einen erfolgreichen Abruf. Werte ohne skalare Nutzlast — Booleans, Arrays, verschachtelte Wörterbücher, Streams — werden allein über Kind gemeldet

Für Schlüssel, die das Record-Modell bereits bereitstellt, ziehen Sie Annotation vor: Es normalisiert und validiert die gängigen Felder. Greifen Sie zu diesem Aufruf nur, wenn ein Schlüssel außerhalb des Modells liegt

Hinweise

Beispiel

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;

Siehe auch

Annotation, AnnotationCount, GetAttachmentDictionaryValue