Документация PDFiumPas

AttachmentName Свойство

Эта запись API сохраняет идентификаторы, сигнатуры, блоки кода и термины PDF в исходном виде.
Компонент: TPdf  ·  Модуль: PDFium
Возвращает имя файла в Unicode, зарегистрированное для встроенного файла по заданному индексу с нуля в дереве имён EmbeddedFiles документа

Синтаксис

property AttachmentName[Index: Integer]: WString; // read only

Описание

Каждое файловое вложение PDF имеет связанное имя файла в словаре спецификации файла — обычно это исходное имя файла, как оно выглядело на диске автора, например contract.docx или source-data.csv. AttachmentName отдаёт это имя как WString, чтобы его можно было показать в интерфейсе, использовать как предложенный путь сохранения или сопоставлять по расширению

Возвращаемая строка декодируется из хранилища PDF в формате UTF-16BE или PDFDocEncoding, поэтому имена вне ASCII, такие как китайские, кириллические и латиница с диакритикой, корректно проходят туда и обратно. Если автор оставил только ключевую запись без явного имени файла /F или /UF, возвращается пустая строка

Свойство доступно только для чтения. Переименование вложения этим API не предусмотрено; если нужно изменить имя файла, удалите ячейку через DeleteAttachment и создайте её заново через CreateAttachment, а затем повторно присвойте байты через Attachment

Параметры

IndexInteger. Позиция вложения с нулевой индексацией. Должна находиться в [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;

См. также

Attachment, AttachmentCount, AttachmentType, CreateAttachment, DeleteAttachment