EmbedFileA

Propiedades del documento

Descripción

El sufijo A indica el punto de entrada ANSI (char) de la DLL; la superficie ActiveX/COM expone únicamente la forma Unicode. El comportamiento es idéntico a EmbedFile y los argumentos de cadena se interpretan utilizando la página de códigos SetAnsiMode actual

Incrusta un archivo como adjunto de documento visible en el panel. Equivale a AddEmbeddedFile seguido de AddToFileList, con referencia en el árbol /Names /EmbeddedFiles de Catalog

Los flujos y FileSpec requieren PDF 1.3 y el árbol /Names /EmbeddedFiles de esta llamada PDF 1.4. EmbedFile eleva automáticamente y registra /EmbeddedFiles name tree en AutoBumpedFeatures; una versión inferior bloqueada falla con LastErrorCode 602

Sintaxis

Delphi

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

DLL

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

Parámetros

TitleEl nombre para mostrar en el panel de adjuntos del lector y utilizado como clave en el árbol de nombres /EmbeddedFiles. Debe ser único en el documento; si ya existe un archivo con ese título, la llamada falla
FileNameLa ruta completa del archivo de origen en disco. Los bytes de este archivo se copian en el PDF
MIMETypeTipo MIME del contenido, por ejemplo image/jpeg, text/csv, application/xml. Pase una cadena vacía si se desconoce; los visores usarán la extensión

Valores devueltos

0No se ha podido incrustar el archivo — falta el archivo de origen, el título ya está en uso o no hay ningún documento abierto
1El archivo se incrustó y se incluyó en el árbol de nombres de archivos adjuntos del documento

Observaciones

Esta llamada solo crea un archivo adjunto en el nivel del documento. Para dibujar en una página concreta una anotación de clip en la que se pueda hacer clic y que apunte al archivo incrustado, utilice AddEmbeddedFile seguido de AddFileAttachment (o AddLinkToEmbeddedFile)

Compatibilidad con PDF/A:

Cuando SetPDFUAMode está activo, la biblioteca escribe automáticamente AFRelationship=Unspecified para cualquier archivo incrustado que no tenga una relación explícita; sobrescríbalo con SetEmbeddedFileAFRelationship para satisfacer ISO 14289-1 §7.11

Ejemplo

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

Véase también

AddEmbeddedFile, AddFileAttachment, AddLinkToEmbeddedFile, SetEmbeddedFileAFRelationship, EmbeddedFileCount, SetPDFAMode