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
| Title | El 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 |
|---|---|
| FileName | La ruta completa del archivo de origen en disco. Los bytes de este archivo se copian en el PDF |
| MIMEType | Tipo 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
| 0 | No 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 |
|---|---|
| 1 | El 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:
- PDF/A-1 y PDF/A-2 (modos 1–4 de SetPDFAMode) prohíben archivos incrustados arbitrarios. La protección bloquea
EmbedFile - PDF/A-3 (modos 5, 6 y 7) permite archivos incrustados de cualquier tipo MIME. ISO 19005-3 también exige que cada archivo declare su relación con el documento mediante la clave
AFRelationship— establézcala explícitamente con SetEmbeddedFileAFRelationship
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