Attachments

Attachments

Esta página describe la inserción de archivos dentro de un PDF. Existen dos mecanismos distintos: adjuntos a nivel de documento, que son archivos incrustados sin presencia visible en ninguna página, y anotaciones de adjunto de archivo ancladas a una página, que colocan un icono clicable en una página específica.


Adjuntos a nivel de documento

Document.AddAttachment() incrusta bytes bajo un name, insertándolo en el árbol de nombres de archivos incrustados del documento — volver a añadirlo con el mismo nombre sobrescribe la entrada existente. Devuelve un identificador Attachment. Document.GetAttachments() devuelve cada adjunto a nivel de documento como una matriz de identificadores Attachment, ordenados por nombre, y Document.RemoveAttachment() elimina uno por nombre.

El identificador Attachment expone Name, Description, MimeType, Size, CreationDate y ModDate como propiedades, GetBytes() para leer el contenido bruto del archivo incrustado, y GetField() / SetField() / RemoveField() para acceso de bajo nivel a campos individuales /Filespec. El AttachmentOptions opcional pasado a AddAttachment() acepta mimeType, description, compress, creationDate y modDate.

No hay un ejemplo de código verificado disponible para este API en la captura de conocimiento actual para esta plataforma — consulte el Resumen de API Reference a continuación para obtener los nombres exactos de métodos y propiedades.


Adjuntos de archivo anclados a la página

Page.AddFileAttachment() incrusta un archivo y coloca una anotación de ícono /FileAttachment en un rect determinado de una página específica, devolviendo un FileAttachmentAnnotation. A diferencia de un adjunto a nivel de documento, este es visible y clickeable en un visor PDF. FileAttachmentAnnotation comparte las propiedades comunes de anotación (Rect, Color, Contents, Name, Flags, Print, Hidden, Opacity) además de sus propios Icon y FileName, y admite GetBytes() para leer el contenido incrustado y Flatten() para incorporar su ícono al contenido estático de la página.


Consejos y buenas prácticas

  • Utilice un adjunto a nivel de documento (Document.AddAttachment()) para un archivo que debe acompañar al PDF sin aparecer en ninguna página; use Page.AddFileAttachment() cuando el archivo debe representarse mediante un ícono clickeable en una ubicación específica.
  • Document.AddAttachment() sobrescribe un adjunto existente con el mismo name — verifique Document.GetAttachments() primero si necesita evitar reemplazarlo accidentalmente.
  • Lea el contenido de un adjunto con GetBytes() en cualquier tipo de controlador — el método está disponible tanto en Attachment como en FileAttachmentAnnotation.

Problemas comunes

ProblemaCausaSolución
Un archivo adjunto recién añadido reemplazó a uno existenteDocument.AddAttachment() se llamó con un name ya en usoLlame a Document.GetAttachments() primero para comprobar una colisión de nombres
El archivo adjunto no tiene icono visible en la páginaDocument.AddAttachment() se utilizó, lo que es de nivel de documento y no tiene presencia en la página por diseñoUse Page.AddFileAttachment() en su lugar para un ícono visible y anclado a la página
Document.RemoveAttachment() devuelve falseNo existe ningún adjunto con el name proporcionado en el árbol de nombresConfirme el nombre exacto mediante Document.GetAttachments() antes de eliminar

FAQ

¿Cuál es la diferencia entre Document.AddAttachment y Page.AddFileAttachment?

Document.AddAttachment() inserta un archivo en el nivel del documento sin ningún icono visible en ninguna página. Page.AddFileAttachment() inserta un archivo y coloca una anotación de icono /FileAttachment clicable en una ubicación específica de una página.

¿Cómo puedo enumerar cada archivo adjunto ya insertado en un documento?

Llame a Document.GetAttachments(), que devuelve todos los adjuntos del documento como una matriz de manejadores Attachment ordenados por nombre.

¿Cómo puedo leer el contenido del archivo de un adjunto?

Llame a GetBytes() sobre el manejador Attachment (o FileAttachmentAnnotation); está disponible en ambos.

¿Puedo eliminar un adjunto?

Sí — Document.RemoveAttachment(name) elimina un adjunto del documento por nombre y devuelve si se encontró y eliminó alguno.


API Reference Resumen

Clase/MétodoDescripción
Document.AddAttachment()Incruste bytes como un adjunto nombrado dentro del documento
Document.GetAttachments()Enumera todos los adjuntos del documento
Document.RemoveAttachment()Elimina un adjunto del documento por nombre
AttachmentGestiona más de un archivo incrustado; Name, Description, MimeType, Size, GetBytes()
Page.AddFileAttachment()Incrusta un archivo como una anotación de icono clicable anclada a la página
FileAttachmentAnnotationEl controlador de anotación del adjunto anclado a la página; agrega Icon, FileName

Ver también

 Español