AddEmbeddedFile
Propiedades del documento
Descripción
Incorpora un archivo dentro del PDF como un flujo de archivo incrustado, pero por sí solo no registra el archivo en ninguna lista del catálogo ni dibuja una anotación seleccionable La función devuelve un identificador EmbeddedFileID que se puede pasar a AddFileAttachment (para adjuntar un icono de clip en una página) o AddLinkToEmbeddedFile (para crear una zona activa seleccionable que abre el archivo) Para incorporar un archivo y enumerarlo como adjunto de nivel de documento en una sola llamada, use EmbedFile
Sintaxis
Delphi
Function TPDFlib.AddEmbeddedFile(Const FileName, MIMEType: WideString): Integer;
ActiveX
Function PDFlib::AddEmbeddedFile(FileName As String, MIMEType As String) As Long
DLL
int DLAddEmbeddedFile(int InstanceID, const wchar_t * FileName, const wchar_t * MIMEType);
Parámetros
| FileName | La ruta completa y el nombre del archivo fuente en disco Sus bytes se copian literalmente en un flujo de archivo PDF incrustado |
|---|---|
| MIMEType | El tipo MIME del archivo, por ejemplo image/jpeg o application/xml. Puede ser una cadena vacía cuando se desconoce el tipo MIME |
Valores devueltos
| 0 | No se pudo abrir el archivo o no hay ningún documento activo |
|---|---|
| Non-zero | Un handle EmbeddedFileID para usar con AddFileAttachment, AddLinkToEmbeddedFile o SetEmbeddedFileStrProperty |
Observaciones
Comportamiento de versión de PDF: los flujos de archivos incrustados y los diccionarios de especificación de archivos requieren PDF 1.3. Si la versión actual del documento es inferior y la versión de guardado no está bloqueada, AddEmbeddedFile eleva automáticamente el documento a PDF 1.3. Las llamadas que registran el archivo como adjunto de nivel de documento pueden requerir una versión superior: AddFileAttachment y EmbedFile usan el árbol de nombres /Names /EmbeddedFiles de PDF 1.4, y AddLinkToEmbeddedFile usa la transparencia de opacidad/apariencia de anotaciones de PDF 1.4
Un archivo incrustado solo con AddEmbeddedFile forma parte del PDF, pero no es visible en la interfaz del lector hasta que se registra en la lista de adjuntos del documento o se referencia mediante una anotación de página. Reutilizar el mismo EmbeddedFileID con AddFileAttachment y AddLinkToEmbeddedFile permite exponer un archivo incrustado a través de la interfaz tanto del documento como de la página sin duplicar los bytes incrustados
Compatibilidad con PDF/A:
- PDF/A-1, PDF/A-2 (modos 1–4 de SetPDFAMode) — los archivos incrustados están prohibidos; la llamada se rechaza
- PDF/A-3 (modos 5, 6 y 7 de SetPDFAMode) permite archivos incrustados de cualquier tipo MIME Establezca la relación del archivo mediante SetEmbeddedFileAFRelationship antes de guardar
Ejemplo
// Expose the same embedded file through the document attachment list and a page annotation
var
FileID: Integer;
begin
PDF.NewDocument;
PDF.AddStandardFont('Helvetica');
FileID := PDF.AddEmbeddedFile('C:\reports\sales.csv', 'text/csv');
if FileID = 0 then Exit;
PDF.AddFileAttachment('Source data', FileID);
PDF.AddPage;
PDF.PrintText(50, 750, 'See attached source data');
PDF.AddLinkToEmbeddedFile(50, 720, 16, 16, FileID, 'Source data', 'Open source CSV', 4, 0);
PDF.SaveToFile('with-attachment.pdf');
end;Véase también
AddFileAttachment, AddLinkToEmbeddedFile, EmbedFile, SetEmbeddedFileAFRelationship, SetEmbeddedFileStrProperty, EmbeddedFileCount