function GetAttachmentDictionaryValue(Index: Integer; const Key: WString): TPdfDictionaryValue;
| Index | Integer. Chỉ số của attachment nhúng, đánh số từ 0, trong khoảng 0 .. AttachmentCount - 1. Chỉ số ngoài khoảng làm phát sinh EPdfError |
| Key | WString. Tên của mục cần đọc từ dictionary file specification của attachment, ví dụ một key tùy chỉnh do ứng dụng tạo tệp ghi vào |
| Result | TPdfDictionaryValue. Kind luôn mang kiểu giá trị native; với các giá trị pdvkString và pdvkName, StringValue được điền và HasScalarValue là True |
Mọi mục trong cây EmbeddedFiles đều là một dictionary file specification PDF, và dictionary đó chính là nơi metadata riêng của attachment nằm. Lời gọi này thăm một key của dictionary đó và trả về một TPdfDictionaryValue: loại giá trị được giải mã từ truy vấn kiểu native, và khi mục chứa một string hoặc name, văn bản được đọc và trả về trong StringValue với HasScalarValue được đặt
Các giá trị loại khác — number, boolean, array, dictionary lồng nhau, stream — chỉ được báo qua Kind; HasScalarValue giữ nguyên False vì chỉ các mục string và name được giải mã. Hãy dùng AttachmentHasKey trước để kiểm tra key có tồn tại hay không
Lời gọi yêu cầu một tài liệu đã tải và một chỉ số attachment hợp lệ. Dùng GetAttachmentStringValue khi văn bản thuần của một mục string là đủ và loại giá trị không quan trọng, còn SetAttachmentStringValue để ghi ngược một mục string
Kind của key không tồn tại phân giải thành pdvkUnknown; hãy hiểu tổ hợp đó cùng HasScalarValue = False là “không có giá trị”Desc và DESC là hai mục khác nhau
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;