function GetAnnotationDictionaryValue(AnnotIndex: Integer; const Key: WString): TPdfDictionaryValue;
| AnnotIndex | Integer. Indeks anotacije na trenutačnoj stranici od nule, u rasponu 0 .. AnnotationCount - 1. Indeks izvan raspona podiže EPdfError |
| Key | WString. Naziv unosa rječnika koji treba pročitati, kodiran u UTF-8 prije nativnog poziva |
| Result | TPdfDictionaryValue. Kind nosi nativnu vrstu vrijednosti; vrijednosti stringova, naziva i brojeva dekodiraju se u StringValue / NumberValue s HasScalarValue = True |
Svaka anotacija počiva na PDF rječniku, a zapisni model komponente preslikava samo uobičajene unose. Ovaj poziv ulazi u sirovi rječnik i čita jedan ključ, pa unosi definirani aplikacijom (status recenzije, id grupiranja, ekstenzija proizvođača) postaju vidljivi bez obilaska grafa objekata
Vrsta vrijednosti ispituje se nativno i dekodira u TPdfDictionaryValueKind: pdvkUnknown, pdvkBoolean, pdvkNumber, pdvkString, pdvkName, pdvkArray, pdvkDictionary, pdvkStream, pdvkNull ili pdvkReference. Dohvaćaju se samo skalarni tipovi: stringovi i nazivi dekodiraju se u StringValue, brojevi u NumberValue (koje nativni API čita jednostrukom preciznošću), a HasScalarValue označava uspješan dohvat. Vrijednosti bez skalarnog tereta — booleani, polja, ugniježđeni rječnici, tokovi — izvještavaju se samo kroz Kind
Za ključeve koje zapisni model već izlaže, dajte prednost Annotation: ona normalizira i provjerava uobičajena polja. Ovaj poziv koristite samo kada se ključ nalazi izvan modela
pdvkUnknown s HasScalarValue = False; ta kombinacija znači “nema vrijednosti”T (potip) i t različiti unosi
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;