property AttachmentName[Index: Integer]: WString; // read only
PDF のファイル添付はどれも、file specification 辞書に関連するファイル名を持ちます。多くは作成者のディスク上にあった元のファイル名(例: contract.docx や source-data.csv)です。AttachmentName はその名前を WString として公開するので、UI への表示、保存先パスの候補、拡張子による振り分けに使えます
返される文字列は PDF の UTF-16BE または PDFDocEncoding からデコードされるため、ASCII 外の名前(中国語、キリル文字、アクセント付きラテン文字)も正しく往復します。作成者が /F や /UF の明示的なファイル名を残さずキー entry だけの場合は、空文字列が返ります
このプロパティは読み取り専用です。添付のリネームはこの API では行えません。ファイル名を変えたい場合は、DeleteAttachment で slot を削除し CreateAttachment で作り直したうえで、Attachment 経由でバイトを再代入してください
| Index | Integer。添付の 0 基準位置。[0, AttachmentCount - 1] の範囲内である必要があります。範囲外のインデックスを渡すと空文字列が返ります |
\, /)を取り除いてください。相対パスを名前に格納する作成ツールもあります
var
I: Integer;
FileName: string;
begin
Pdf1.LoadFromFile('package.pdf');
ListBox1.Items.BeginUpdate;
try
ListBox1.Items.Clear;
for I := 0 to Pdf1.AttachmentCount - 1 do
begin
FileName := Pdf1.AttachmentName[I];
if FileName = '' then
FileName := Format('(unnamed #%d)', [I]);
ListBox1.Items.AddObject(FileName, TObject(I));
end;
finally
ListBox1.Items.EndUpdate;
end;
end;