Cómo agregar y eliminar adjuntos en PDF C#

Cómo añadir y eliminar archivos PDF adjuntos en C# con IronPDF

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF le permite añadir, recuperar y eliminar mediante programación archivos adjuntos en documentos PDF utilizando métodos sencillos de C# como AddAttachment() y RemoveAttachment(), lo que le permite incrustar archivos suplementarios directamente en sus PDF.

Los adjuntos en un documento PDF se refieren a archivos o datos adicionales incrustados dentro del propio archivo PDF. Esto es distinto del contenido habitual del PDF, que incluye texto visible, imágenes y formato cuando se visualiza el PDF. Estos adjuntos pueden ser de varios tipos de archivo, incluidos imágenes, documentos, hojas de cálculo u otros formatos. Típicamente, los adjuntos se utilizan para proporcionar materiales de referencia adicionales o datos complementarios que los usuarios pueden acceder al abrir el PDF. Esta capacidad es especialmente útil cuando se crean informes completos en PDF o cuando se necesita fusionar varios PDF con documentación de apoyo.

como-encabezado:2(Inicio rápido: Añadir Adjuntos al PDF)

Añada archivos adjuntos a sus documentos PDF con IronPDF. Este ejemplo rápido demuestra cómo incrustar un archivo como adjunto en un PDF. Cargue el PDF existente, utilice el método AddAttachment y guarde el documento actualizado. Este proceso garantiza que los materiales complementarios se incluyan con el PDF, de modo que sean accesibles directamente desde cualquier visor de PDF.

Nuget IconEmpieza a crear PDF con NuGet ahora:

  1. Instalar IronPDF con el gestor de paquetes NuGet

    PM > Install-Package IronPdf

  2. Copie y ejecute este fragmento de código.

    var pdf = IronPdf.PdfDocument.FromFile("example.pdf");
    pdf.Attachments.AddAttachment("file.txt", System.IO.File.ReadAllBytes("file.txt"));
    pdf.SaveAs("updated.pdf");
  3. Despliegue para probar en su entorno real

    Empieza a utilizar IronPDF en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer


¿Cómo añado un archivo adjunto a un PDF?

Para añadir un archivo como adjunto, primero cárguelo como un byte[]. La manera más sencilla de hacerlo es usando el método File.ReadAllBytes. Con el archivo cargado como byte[], utilice el método AddAttachment para añadir el objeto a un PDF como archivo adjunto:

:path=/static-assets/pdf/content-code-examples/how-to/add-remove-attachments-add-attachment.cs
using IronPdf;
using System.IO;

// Import attachment file
byte[] fileData = File.ReadAllBytes(@"path/to/file");

// Open existing PDF
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Add attachment to the PDF
pdf.Attachments.AddAttachment("Example", fileData);

pdf.SaveAs("addAttachment.pdf");
$vbLabelText   $csharpLabel

La función AddAttachment genera un objeto PdfAttachment que puede guardarse para futuras referencias o eliminarse más tarde si es necesario. Este enfoque es similar al de añadir imágenes a los PDF o gestionar otros activos PDF.

Después de guardar el PDF, puedes abrir el adjunto desde la barra de herramientas de un visor de PDF. La siguiente imagen muestra dónde encontrar esta función en el visor de PDF de Google Chrome:

Visor de PDF que muestra el documento Hello World con controles de navegación y panel de barra lateral

A partir de ahí, puede hacer clic en él y guardar el archivo adjunto en su almacenamiento.

¿Qué tipos de archivos puedo adjuntar a un PDF?

IronPDF permite adjuntar prácticamente cualquier tipo de archivo a documentos PDF. Los tipos de archivos adjuntos más comunes son:

  • Documentos de Office (DOCX, XLSX, PPTX)
  • Imágenes (JPG, PNG, GIF, SVG)
  • Archivos de texto (TXT, CSV, XML)
  • Archivos (ZIP, RAR)
  • Otros PDF

El sistema de adjuntos funciona con datos binarios, por lo que puede adjuntarse cualquier archivo que pueda leerse como bytes. Cuando trabaje con tipos de documentos específicos, también puede considerar las funciones de conversión integradas en IronPDF, como convertir DOCX a PDF o convertir imágenes a PDF.

¿Dónde aparecen los archivos adjuntos en los visores de PDF?

Los distintos visores de PDF muestran los archivos adjuntos en distintos lugares:

  • Adobe Acrobat: muestra el icono de un clip en el panel de navegación
  • Visor de PDF de Chrome: Muestra los archivos adjuntos en la barra lateral izquierda al hacer clic
  • Firefox PDF Viewer: Muestra los archivos adjuntos en un panel específico
  • Microsoft Edge: similar a Chrome, con una vista adjunta de barra lateral

La mayoría de los visores de PDF modernos admiten archivos adjuntos, aunque la interfaz puede variar ligeramente de una aplicación a otra.

¿Qué ocurre con el objeto PdfAttachment después de añadirlo?

Cuando se llama a AddAttachment(), IronPDF crea un objeto PdfAttachment que contiene:

  • Nombre: El nombre para mostrar del archivo adjunto
  • Datos: El contenido binario del archivo adjunto
  • Descripción: Metadatos opcionales sobre el archivo adjunto

Este objeto se añade a la colección interna de archivos adjuntos del PDF y permanece accesible a través de la propiedad Attachments hasta que se elimina explícitamente.

¿Cómo puedo recuperar archivos adjuntos de un PDF existente?

Los archivos adjuntos de un PDF se pueden recuperar como datos binarios accediendo a la propiedad Attachments del objeto PdfDocument. Con los datos binarios, puedes exportar los adjuntos del PDF en sus respectivos formatos de archivo.

:path=/static-assets/pdf/content-code-examples/how-to/add-remove-attachments-retrieve-attachment.cs
using IronPdf;
using System.IO;

// Open existing PDF
PdfDocument pdf = PdfDocument.FromFile("addAttachment.pdf");

// Iterate through all attachments
foreach (var attachment in pdf.Attachments)
{
    if (attachment.Name.Contains("Example"))
    {
        // Save byte to file
        File.WriteAllBytes($"{attachment.Name}.doc", attachment.Data);
    }
}
$vbLabelText   $csharpLabel

Este proceso es especialmente útil cuando se necesita extraer contenido de PDF o procesar documentos adjuntos mediante programación.

¿Cómo acceder a varios archivos adjuntos en un PDF?

La propiedad Attachments devuelve una colección que se puede recorrer o consultar mediante LINQ:

// Get all attachments as a list
var allAttachments = pdf.Attachments.ToList();

// Filter attachments by size (e.g., files larger than 1MB)
var largeAttachments = pdf.Attachments
    .Where(a => a.Data.Length > 1024 * 1024)
    .ToList();

// Find specific attachment by exact name
var specificAttachment = pdf.Attachments
    .FirstOrDefault(a => a.Name == "report.xlsx");
// Get all attachments as a list
var allAttachments = pdf.Attachments.ToList();

// Filter attachments by size (e.g., files larger than 1MB)
var largeAttachments = pdf.Attachments
    .Where(a => a.Data.Length > 1024 * 1024)
    .ToList();

// Find specific attachment by exact name
var specificAttachment = pdf.Attachments
    .FirstOrDefault(a => a.Name == "report.xlsx");
$vbLabelText   $csharpLabel

¿Qué propiedades están disponibles en los archivos adjuntos recuperados?

Cada objeto PdfAttachment proporciona:

  • Nombre: El nombre para mostrar del archivo adjunto
  • Datos: Contenido binario como matriz de bytes
  • Descripción: Metadatos de descripción opcionales (si se han establecido)

Puede utilizar estas propiedades para identificar, filtrar y procesar archivos adjuntos en función de sus necesidades.

¿Cómo puedo filtrar archivos adjuntos por nombre o tipo?

Dado que los archivos adjuntos se almacenan con sus nombres para mostrar, puede filtrarlos mediante operaciones de cadena:

// Filter by file extension (assuming names include extensions)
var imageAttachments = pdf.Attachments
    .Where(a => a.Name.EndsWith(".jpg") || 
                a.Name.EndsWith(".png") || 
                a.Name.EndsWith(".gif"))
    .ToList();

// Filter by name pattern
var reportsOnly = pdf.Attachments
    .Where(a => a.Name.StartsWith("Report_"))
    .ToList();
// Filter by file extension (assuming names include extensions)
var imageAttachments = pdf.Attachments
    .Where(a => a.Name.EndsWith(".jpg") || 
                a.Name.EndsWith(".png") || 
                a.Name.EndsWith(".gif"))
    .ToList();

// Filter by name pattern
var reportsOnly = pdf.Attachments
    .Where(a => a.Name.StartsWith("Report_"))
    .ToList();
$vbLabelText   $csharpLabel

¿Cómo eliminar archivos adjuntos de un PDF?

Para eliminar un archivo adjunto, utilice la función RemoveAttachment. Este método requiere una referencia al adjunto, que puede recuperarse de la propiedad Attachments. A continuación te explicamos cómo hacerlo utilizando el archivo guardado de arriba:

:path=/static-assets/pdf/content-code-examples/how-to/add-remove-attachments-remove-attachment.cs
using IronPdf;
using System.Linq;

// Open existing PDF
PdfDocument pdf = PdfDocument.FromFile("addAttachment.pdf");

// Add attachment to the PDF
PdfAttachmentCollection retrieveAttachments = pdf.Attachments;

// Remove attachment from PDF
pdf.Attachments.RemoveAttachment(retrieveAttachments.First());

pdf.SaveAs("removeAttachment.pdf");
$vbLabelText   $csharpLabel

Después de eliminar el adjunto y abrir el archivo resultante en un visor de PDF, verás que el adjunto ya no aparece:

Visor de PDF con el panel de adjuntos abierto, mostrando el documento Hello World y el botón Show Attachments

¿Qué ocurre cuando elimino un archivo adjunto?

Al eliminar un archivo adjunto:

  1. Los datos adjuntos se eliminan por completo del archivo PDF
  2. El tamaño del archivo se reduce aproximadamente en el tamaño del archivo adjunto eliminado
  3. Se limpia cualquier referencia a dicho anexo en la estructura del PDF
  4. El cambio es permanente una vez guardado el PDF

Esto es similar a otras operaciones de modificación de PDF como eliminar páginas o redactar contenido.

¿Puedo eliminar varios archivos adjuntos a la vez?

Sí, puede eliminar varios archivos adjuntos en una sola operación. Aquí hay un ejemplo:

// Remove all attachments that match a pattern
var attachmentsToRemove = pdf.Attachments
    .Where(a => a.Name.StartsWith("temp_"))
    .ToList();

foreach (var attachment in attachmentsToRemove)
{
    pdf.Attachments.RemoveAttachment(attachment);
}

// Or remove all attachments at once
while (pdf.Attachments.Count > 0)
{
    pdf.Attachments.RemoveAttachment(pdf.Attachments.First());
}
// Remove all attachments that match a pattern
var attachmentsToRemove = pdf.Attachments
    .Where(a => a.Name.StartsWith("temp_"))
    .ToList();

foreach (var attachment in attachmentsToRemove)
{
    pdf.Attachments.RemoveAttachment(attachment);
}

// Or remove all attachments at once
while (pdf.Attachments.Count > 0)
{
    pdf.Attachments.RemoveAttachment(pdf.Attachments.First());
}
$vbLabelText   $csharpLabel

¿Cómo verifico que un archivo adjunto se ha eliminado correctamente?

Puede verificar la eliminación de archivos adjuntos de varias maneras:

// Check the attachment count
int attachmentCountBefore = pdf.Attachments.Count;
pdf.Attachments.RemoveAttachment(targetAttachment);
int attachmentCountAfter = pdf.Attachments.Count;

// Verify the count decreased
if (attachmentCountAfter < attachmentCountBefore)
{
    Console.WriteLine("Attachment successfully removed");
}

// Check if specific attachment exists
bool attachmentExists = pdf.Attachments
    .Any(a => a.Name == "specificFile.txt");
// Check the attachment count
int attachmentCountBefore = pdf.Attachments.Count;
pdf.Attachments.RemoveAttachment(targetAttachment);
int attachmentCountAfter = pdf.Attachments.Count;

// Verify the count decreased
if (attachmentCountAfter < attachmentCountBefore)
{
    Console.WriteLine("Attachment successfully removed");
}

// Check if specific attachment exists
bool attachmentExists = pdf.Attachments
    .Any(a => a.Name == "specificFile.txt");
$vbLabelText   $csharpLabel

Mejores prácticas para adjuntar archivos PDF

Cuando trabaje con archivos PDF adjuntos en IronPDF, tenga en cuenta estas prácticas recomendadas:

  1. Gestión del tamaño de los archivos: Ten en cuenta el tamaño de los archivos adjuntos, ya que aumentan directamente el tamaño del archivo PDF
  2. Convenciones de denominación: Utilice nombres claros y descriptivos para los archivos adjuntos para ayudar a los usuarios a identificarlos
  3. Consideraciones de seguridad: Cuando maneje archivos adjuntos sensibles, considere aplicar Contraseñas y permisos de PDF
  4. Rendimiento: Para archivos adjuntos de gran tamaño o muchos archivos, considere el uso de operaciones de sincronización para mantener la capacidad de respuesta de la aplicación

¿Listo para ver qué más puedes hacer? Consulte nuestra página de tutoriales aquí: Organizar PDFs

Preguntas Frecuentes

¿Cómo puedo añadir archivos adjuntos a un PDF mediante programación en C#?

IronPDF proporciona un sencillo método AddAttachment() para incrustar archivos en los PDF. Primero, cargue su archivo como una matriz de bytes utilizando File.ReadAllBytes(), luego utilice el método AddAttachment en su objeto PdfDocument. El método toma el nombre del archivo y la matriz de bytes como parámetros.

¿Qué tipos de archivos pueden adjuntarse a los PDF?

IronPDF permite adjuntar varios tipos de archivos a los PDF, como imágenes, documentos, hojas de cálculo y otros formatos. Estos archivos adjuntos se incrustan directamente en el archivo PDF y se puede acceder a ellos a través del panel de archivos adjuntos de cualquier visor de PDF estándar.

¿Cómo se carga un PDF existente para añadirle archivos adjuntos?

Puede cargar un PDF existente utilizando el método PdfDocument.FromFile() de IronPDF. Una vez cargado, puede utilizar la propiedad Attachments para gestionar los archivos adjuntos, incluyendo la adición de otros nuevos con AddAttachment() o la eliminación de los existentes.

¿Cuál es la diferencia entre contenido PDF y archivos adjuntos PDF?

El contenido de un PDF incluye el texto visible, las imágenes y el formato que se ven al visualizar el PDF. Los archivos adjuntos son archivos independientes incrustados en el PDF que no aparecen en la vista principal del documento. Con IronPDF, se accede a los archivos adjuntos a través del panel de archivos adjuntos del visor de PDF y sirven como material complementario.

¿Cómo puedo eliminar archivos adjuntos de un PDF?

IronPDF proporciona un método RemoveAttachment() para eliminar mediante programación los archivos incrustados de los PDF. La función AddAttachment devuelve un objeto PdfAttachment al que puede hacer referencia posteriormente para las operaciones de eliminación.

¿Dónde pueden encontrar los usuarios archivos adjuntos en un visor de PDF?

Después de utilizar IronPDF para añadir archivos adjuntos, los usuarios pueden acceder a ellos a través de la barra de herramientas del visor de PDF. La mayoría de los visores de PDF, incluido el visor integrado de Google Chrome, muestran un icono o panel de archivos adjuntos donde se pueden abrir o guardar los archivos incrustados.

Jordi Bardia
Ingeniero de Software
Jordi es más competente en Python, C# y C++. Cuando no está aprovechando sus habilidades en Iron Software, está programando juegos. Compartiendo responsabilidades para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más
¿Listo para empezar?
Nuget Descargas 17,012,929 | Versión: 2025.12 recién lanzado