function GetAttachmentDictionaryValue(Index: Integer; const Key: WString): TPdfDictionaryValue;
| Index | Integer. 내장 첨부 파일의 0 기반 인덱스로, 0 .. AttachmentCount - 1 범위입니다. 범위를 벗어난 인덱스는 EPdfError를 일으킵니다 |
| Key | WString. 첨부 파일의 파일 명세 딕셔너리에서 읽을 항목 이름입니다. 예를 들어 생성 애플리케이션이 기록한 사용자 지정 키가 있습니다 |
| Result | TPdfDictionaryValue. Kind는 항상 네이티브 값 유형을 담고, pdvkString과 pdvkName 값에는 StringValue가 채워지고 HasScalarValue가 True입니다 |
EmbeddedFiles 트리의 모든 항목은 PDF 파일 명세 딕셔너리이며, 첨부 파일의 전용 메타데이터가 바로 이 딕셔너리에 담깁니다. 이 호출은 그 딕셔너리의 키 하나를 조회해 TPdfDictionaryValue를 반환합니다. 값 유형은 네이티브 타입 조회에서 디코딩되고, 항목이 문자열이나 이름이면 텍스트를 읽어 HasScalarValue를 설정한 채 StringValue로 반환합니다
그 밖의 유형(숫자, 불리언, 배열, 중첩 딕셔너리, 스트림)은 Kind만으로 보고됩니다. 문자열과 이름 항목만 디코딩하므로 HasScalarValue는 False로 유지됩니다. 키가 존재하는지부터 확인하려면 AttachmentHasKey를 먼저 사용하세요
이 호출은 불려 온 문서와 유효한 첨부 파일 인덱스가 필요합니다. 문자열 항목의 평문만으로 충분하고 유형이 중요하지 않다면 GetAttachmentStringValue를, 문자열 항목을 다시 쓰려면 SetAttachmentStringValue를 사용하세요
Kind는 pdvkUnknown으로 해석됩니다. HasScalarValue = False와 함께 “값 없음”으로 취급하세요Desc와 DESC는 서로 다른 항목입니다
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;