function GetAttachmentDictionaryValue(Index: Integer; const Key: WString): TPdfDictionaryValue;
| Index | Integer. Indeks załącznika osadzonego liczony od zera, w zakresie 0 .. AttachmentCount - 1. Indeks poza zakresem zgłasza EPdfError |
| Key | WString. Nazwa wpisu do odczytania ze słownika specyfikacji pliku załącznika, na przykład własny klucz zapisany przez aplikację produkującą |
| Result | TPdfDictionaryValue. Kind zawsze niesie natywny typ wartości; dla wartości pdvkString i pdvkName wypełniane jest StringValue, a HasScalarValue ma wartość True |
Każdy wpis drzewa EmbeddedFiles to słownik specyfikacji pliku PDF i właśnie tam mieszkają prywatne metadane załącznika. To wywołanie odpytuje jeden klucz tego słownika i zwraca TPdfDictionaryValue: rodzaj wartości jest dekodowany z natywnego zapytania o typ, a gdy wpis przechowuje string lub nazwę, tekst jest odczytywany i zwracany w StringValue z ustawionym HasScalarValue
Wartości innych rodzajów — liczby, booleany, tablice, zagnieżdżone słowniki, strumienie — są raportowane wyłącznie przez Kind; HasScalarValue pozostaje False, ponieważ dekodowane są tylko wpisy string i name. Najpierw użyj AttachmentHasKey, aby sprawdzić, czy klucz w ogóle istnieje
Wywołanie wymaga załadowanego dokumentu i poprawnego indeksu załącznika. Użyj GetAttachmentStringValue, gdy wystarczy zwykły tekst wpisu string, a rodzaj nie ma znaczenia, oraz SetAttachmentStringValue, aby zapisać wpis string z powrotem
Kind brakującego klucza daje pdvkUnknown; traktuj to razem z HasScalarValue = False jako “brak wartości”Desc i DESC to różne wpisy
var
Value: TPdfDictionaryValue;
begin
if Pdf1.AttachmentHasKey(0, 'SourceApp') then
begin
Value := Pdf1.GetAttachmentDictionaryValue(0, 'SourceApp');
if Value.HasScalarValue then
Memo1.Lines.Add('Source: ' + Value.StringValue);
end;
end;