function GetAnnotationDictionaryValue(AnnotIndex: Integer; const Key: WString): TPdfDictionaryValue;
| AnnotIndex | Integer. Geçerli sayfadaki ek açıklamanın sıfır tabanlı indeksi; 0 .. AnnotationCount - 1 aralığındadır. Aralık dışı bir indeks EPdfError fırlatır |
| Key | WString. Okunacak sözlük girişinin adı; yerel çağrı öncesinde UTF-8 olarak kodlanır |
| Result | TPdfDictionaryValue. Kind, yerel değer türünü taşır; dize, ad ve sayı değerleri HasScalarValue = True ile StringValue / NumberValue içine çözülür |
Her ek açıklama bir PDF sözlüğü tarafından desteklenir ve bileşenin kayıt modeli yalnızca yaygın girişleri eşler. Bu çağrı ham sözlüğe ulaşır ve tek bir anahtar okur; böylece uygulama tanımlı girişler (bir inceleme durumu, bir gruplandırma kimliği, bir satıcı uzantısı) nesne grafiğinde dolaşmadan görünür olur
Değer türü yerel olarak sorgulanır ve bir TPdfDictionaryValueKind içine çözülür: pdvkUnknown, pdvkBoolean, pdvkNumber, pdvkString, pdvkName, pdvkArray, pdvkDictionary, pdvkStream, pdvkNull veya pdvkReference. Yalnızca skaler türler getirilir: dizeler ve adlar StringValue içine, sayılar NumberValue içine çözülür (yerel API tarafından tek duyarlıkla okunur) ve HasScalarValue başarılı bir getirmeyi işaretler. Skaler yükü olmayan değerler — boole değerleri, diziler, iç içe sözlükler, akışlar — yalnızca Kind üzerinden bildirilir
Kayıt modelinin halihazırda açığa çıkardığı anahtarlar için Annotation özelliğini tercih edin: yaygın alanları normalleştirir ve doğrular. Bu çağrıya yalnızca bir anahtar modelin dışında kaldığında başvurun
HasScalarValue = False ile pdvkUnknown olarak çözümlenir; bu birleşim “değer yok” anlamına gelirT (alt tür) ile t farklı girişlerdir
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;