EmbedFileA

Свойства документа

Описание

Завершающая A обозначает точку входа DLL типа ANSI (char); интерфейс ActiveX/COM предоставляет только форму Unicode. Поведение идентично EmbedFile, а строковые аргументы интерпретируются с использованием текущей кодовой страницы SetAnsiMode

Встраивает внешний файл в PDF и регистрирует его как вложение уровня документа; Acrobat и другие читалки показывают такие вложения в боковой панели Attachments. Вызов — сокращение для AddEmbeddedFile и следующего за ним AddToFileList: файл сохраняется потоком встроенного файла, а ссылающаяся на него запись под переданным заголовком добавляется в дерево имён Catalog /Names /EmbeddedFiles

Поведение версий PDF: потоки встроенных файлов и словари файловых спецификаций требуют PDF 1.3, а дерево имён уровня документа /Names /EmbeddedFiles, используемое этим удобным вызовом, — PDF 1.4. Если версия документа ниже, а версия сохранения не зафиксирована, EmbedFile автоматически поднимает документ до PDF 1.4 и записывает /EmbeddedFiles name tree в AutoBumpedFeatures. Если вызывающий зафиксировал более низкую версию сохранения, шлюз совместимости отклоняет сохранение с LastErrorCode 602

Синтаксис

Delphi

Function DLEmbedFileA(InstanceID: Integer; Title, FileName, MIMEType: PAnsiChar): Integer;

DLL

int DLEmbedFileA(int InstanceID, const char * Title, const char * FileName, const char * MIMEType);

Параметры

TitleОтображаемое имя в панели вложений читалки и ключ в дереве имён /EmbeddedFiles; должно быть уникальным в документе — если файл с таким заголовком уже есть, вызов завершится ошибкой
FileNameПолный путь исходного файла на диске; байты файла копируются в PDF
MIMETypeТип MIME, определяющий содержимое файла (например, image/jpeg, text/csv, application/xml). Передайте пустую строку, если тип MIME неизвестен; средства просмотра будут ориентироваться на расширение файла.

Возвращаемые значения

0Не удалось встроить файл — файл-источник отсутствует, заголовок уже используется либо не открыт ни один документ.
1Файл встроен и внесён в дерево имён вложений документа

Примечания

Этот вызов лишь создаёт вложение уровня документа. Чтобы нарисовать на конкретной странице кликабельную аннотацию-скрепку, указывающую на встроенный файл, используйте связку AddEmbeddedFile и AddFileAttachment (или AddLinkToEmbeddedFile)

PDF/A compatibility:

Когда активен SetPDFUAMode, библиотека автоматически записывает AFRelationship=Unspecified для любого встроенного файла без явной связи; чтобы выполнить ISO 14289-1 §7.11, переопределите её через SetEmbeddedFileAFRelationship.

Пример

// Embed a CSV of the source data as a document attachment
PDF.NewDocument;
PDF.AddStandardFont('Helvetica');
PDF.AddPage;
PDF.PrintText(50, 750, 'Sales summary, Q1 2026');

if PDF.EmbedFile('Source data — sales-Q1.csv', 'C:\reports\sales-Q1.csv', 'text/csv') = 1 then
  WriteLn('Attachment added')
else
  WriteLn('Failed to embed file');

PDF.SaveToFile('Q1-Summary.pdf');

См. также

AddEmbeddedFile, AddFileAttachment, AddLinkToEmbeddedFile, SetEmbeddedFileAFRelationship, EmbeddedFileCount, SetPDFAMode