EmbedFileA
Propiedades del documento
Descripción
La A final indica el punto de entrada ANSI (char) de la DLL; la interfaz 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 actual de SetAnsiMode
Incrusta un archivo externo dentro del PDF y lo registra como adjunto a nivel de documento Acrobat y otros lectores muestran los adjuntos a nivel de documento en su panel lateral Adjuntos La llamada es una abreviatura de AddEmbeddedFile seguida de AddToFileList: el archivo se almacena como flujo de archivo incrustado y se agrega una entrada que hace referencia a él al árbol de nombres /Names /EmbeddedFiles del Catalog bajo el título proporcionado
Comportamiento de versión PDF: los flujos de archivos incrustados y los diccionarios de especificación de archivo requieren PDF 1.3, mientras que el árbol de nombres /Names /EmbeddedFiles de nivel de documento que utiliza esta llamada de conveniencia requiere PDF 1.4. Si la versión actual del documento es inferior y la versión de guardado no está bloqueada, EmbedFile eleva automáticamente el documento a PDF 1.4 y registra /EmbeddedFiles name tree en AutoBumpedFeatures. Si el llamador bloquea una versión de guardado inferior, la puerta de compatibilidad rechaza el guardado 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
| Title | El nombre mostrado en el panel de archivos adjuntos del lector y usado como clave en el árbol de nombres /EmbeddedFiles. Debe ser único dentro del documento; si ya existe un archivo con este título, la llamada falla |
|---|---|
| FileName | La ruta completa del archivo de origen en el disco. Los bytes de este archivo se copian en el PDF |
| MIMEType | Tipo MIME que identifica el contenido del archivo (por ejemplo image/jpeg, text/csv, application/xml). Pase una cadena vacía cuando se desconozca el tipo MIME; los visores recurrirán a la extensión de archivo |
Valores devueltos
| 0 | No se pudo incorporar el archivo — falta el archivo de origen, el título ya está en uso o no hay ningún documento abierto |
|---|---|
| 1 | El archivo se incrustó y se incluyó en el árbol de nombres de adjuntos del documento |
Observaciones
Esta llamada solo crea un archivo adjunto a nivel de documento. Para dibujar en una página específica una anotación de clip de papel seleccionable que apunte al archivo incrustado, use AddEmbeddedFile seguido de AddFileAttachment (o AddLinkToEmbeddedFile)
Compatibilidad con PDF/A:
- PDF/A-1, PDF/A-2 (modos 1–4 de SetPDFAMode) prohíben archivos incrustados arbitrarios La protección de PDF/A bloquea
EmbedFileen esos modos - PDF/A-3 (modos 5, 6 y 7) permite archivos incrustados de cualquier tipo MIME. ISO 19005-3 también exige que cada archivo incrustado declare su relación con el documento mediante la clave
AFRelationship— establézcala explícitamente con SetEmbeddedFileAFRelationship
Cuando SetPDFUAMode está activo, la biblioteca escribe AFRelationship=Unspecified automáticamente para todo archivo incrustado que no tenga una relación explícita; reemplácelo con SetEmbeddedFileAFRelationship para cumplir 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