EmbedFileA

Document properties

Description

Il suffisso A indica il punto di ingresso ANSI (char) della DLL; la superficie ActiveX/COM espone solo la forma Unicode. Il comportamento è identico a EmbedFile e gli argomenti stringa vengono interpretati utilizzando la tabella codici SetAnsiMode corrente

Embeds an external file inside the PDF and registers it as a document-level attachment. Acrobat and other readers show document-level attachments in their Attachments side panel. The call is shorthand for AddEmbeddedFile followed by AddToFileList: the file is stored as an embedded file stream, and an entry referencing it is added to the Catalog's /Names /EmbeddedFiles name tree under the supplied title.

PDF version behavior: embedded file streams and file specification dictionaries require PDF 1.3, while the document-level /Names /EmbeddedFiles name tree used by this convenience call requires PDF 1.4. If the current document version is lower and the save version is not locked, EmbedFile automatically raises the document to PDF 1.4 and records /EmbeddedFiles name tree in AutoBumpedFeatures. If the caller locks a lower save version, the compatibility gate rejects the save with LastErrorCode 602.

Syntax

Delphi

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

DLL

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

Parameters

TitleThe display name shown in the reader's attachments panel and used as the key in the /EmbeddedFiles name tree. Must be unique within the document; if a file with this title already exists the call fails.
FileNameThe full path of the source file on disk. The bytes of this file are copied into the PDF.
MIMETypeMIME type identifying the file's content (for example image/jpeg, text/csv, application/xml). Pass an empty string when the MIME type is unknown; viewers will fall back to the file extension.

Return values

0The file could not be embedded — the source file is missing, the title is already used, or no document is open.
1The file was embedded and listed in the document attachments name tree.

Remarks

This call only creates a document-level attachment. To draw a clickable paper-clip annotation on a specific page that points at the embedded file, use AddEmbeddedFile followed by AddFileAttachment (or AddLinkToEmbeddedFile) instead.

PDF/A compatibility:

When SetPDFUAMode is active the library writes AFRelationship=Unspecified automatically for any embedded file that has no explicit relationship; override it with SetEmbeddedFileAFRelationship to satisfy ISO 14289-1 §7.11.

Example

// 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');

See also

AddEmbeddedFile, AddFileAttachment, AddLinkToEmbeddedFile, SetEmbeddedFileAFRelationship, EmbeddedFileCount, SetPDFAMode