Como adicionar e remover anexos de PDF em C# com IronPDF
O IronPDF permite adicionar, recuperar e remover anexos de arquivos em documentos PDF programaticamente, usando métodos simples em C#, como AddAttachment() e RemoveAttachment(), possibilitando a incorporação de arquivos suplementares diretamente em seus PDFs.
Os anexos em um documento PDF referem-se a arquivos ou dados adicionais incorporados ao próprio arquivo PDF. Isso é diferente do conteúdo normal do PDF, que inclui texto visível, imagens e formatação quando você visualiza o PDF. Esses anexos podem assumir diversas formas de arquivo, incluindo imagens, documentos, planilhas ou outros formatos. Normalmente, os anexos são usados para fornecer materiais de referência adicionais ou dados suplementares que os usuários podem acessar ao abrir o PDF. Essa funcionalidade é especialmente útil para editar PDF com relatórios abrangentes ou quando é necessário mesclar vários PDFs com documentação complementar.
Início Rápido: Adicionar e Editar PDF com Anexos
Adicione anexos aos seus documentos PDF usando o IronPDF. Este exemplo rápido demonstra como incorporar um arquivo como anexo em um PDF. Carregue seu PDF existente, use o método AddAttachment e salve o documento atualizado. Esse processo garante que seus materiais complementares sejam incluídos no seu PDF, tornando-os acessíveis diretamente de qualquer visualizador de PDF.
-
Instale IronPDF com o Gerenciador de Pacotes NuGet
PM > Install-Package IronPdf -
Copie e execute este trecho 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"); -
Implante para testar em seu ambiente de produção.
Comece a usar IronPDF em seu projeto hoje com uma avaliação gratuita
Fluxo de trabalho mínimo (5 etapas)
- Baixe a biblioteca IronPDF C# do NuGet.
- Carregar um PDF existente ou gerar um novo.
- Importe o arquivo como **um array de bytes** usando File.ReadAllBytes
- Use `AddAttachment` para anexá-lo ao PDF.
- Remova anexos com `RemoveAttachment`
Como faço para adicionar um arquivo como anexo a um PDF?
Para adicionar um arquivo como anexo, primeiro carregue-o como um byte[]. A maneira mais fácil de fazer isso é usar o método File.ReadAllBytes. Com o arquivo carregado como um array de bytes (byte[]) , use o método AddAttachment para adicionar o objeto a um PDF como anexo:
: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");
Imports IronPdf
Imports System.IO
' Import attachment file
Private fileData() As Byte = File.ReadAllBytes("path/to/file")
' Open existing PDF
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")
' Add attachment to the PDF
pdf.Attachments.AddAttachment("Example", fileData)
pdf.SaveAs("addAttachment.pdf")
A função AddAttachment gera um objeto PdfAttachment que você pode guardar para referência futura ou remover posteriormente, se necessário. Essa abordagem é semelhante à forma como você adicionaria imagens a PDFs ou gerenciaria outros recursos de PDF .
Após salvar o PDF, você pode abrir o anexo na barra de ferramentas de um visualizador de PDF. A imagem abaixo demonstra onde encontrar esse recurso no visualizador de PDF do Google Chrome:

A partir daí, você pode clicar nele e salvar o anexo no seu armazenamento.
Que tipos de arquivo posso anexar a um PDF?
O IronPDF permite anexar praticamente qualquer tipo de arquivo a documentos PDF. Os tipos de fixação mais comuns incluem:
- Documentos do Office (DOCX, XLSX, PPTX)
- Imagens (JPG, PNG, GIF, SVG)
- Arquivos de texto (TXT, CSV, XML)
- Arquivos (ZIP, RAR)
- Outros PDFs
O sistema de anexos funciona com dados binários, portanto, qualquer arquivo que possa ser lido como bytes pode ser anexado. Ao trabalhar com tipos de documentos específicos, você também pode considerar os recursos de conversão integrados do IronPDF, como a conversão de DOCX para PDF ou a conversão de imagens para PDF .
Onde os anexos aparecem nos visualizadores de PDF?
Diferentes visualizadores de PDF exibem os anexos em locais diferentes:
- Adobe Acrobat : Exibe um ícone de clipe de papel no painel de navegação.
- Visualizador de PDF do Chrome : Exibe os anexos na barra lateral esquerda ao clicar neles.
- Visualizador de PDF do Firefox : Exibe anexos em um painel dedicado.
- Microsoft Edge : Semelhante ao Chrome, com uma visualização de anexos na barra lateral.
A maioria dos visualizadores de PDF modernos suporta anexos, embora a interface possa variar ligeiramente entre os aplicativos.
O que acontece ao objeto PdfAttachment após a adição?
Ao chamar AddAttachment(), o IronPDF cria um objeto PdfAttachment que contém:
- Nome : O nome de exibição do anexo
- Dados : O conteúdo binário do arquivo anexado
- Descrição : Metadados opcionais sobre o anexo
Este objeto é adicionado à coleção de anexos internos do PDF e permanece acessível através da propriedade Attachments até ser explicitamente removido.
Como posso recuperar anexos de um PDF existente?
Os anexos em um PDF podem ser recuperados como dados binários acessando a propriedade Attachments do objeto PdfDocument . Com os dados binários, você pode exportar os anexos do PDF em seus respectivos formatos de arquivo.
: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);
}
}
Imports IronPdf
Imports System.IO
' Open existing PDF
Private pdf As PdfDocument = PdfDocument.FromFile("addAttachment.pdf")
' Iterate through all attachments
For Each attachment In pdf.Attachments
If attachment.Name.Contains("Example") Then
' Save byte to file
File.WriteAllBytes($"{attachment.Name}.doc", attachment.Data)
End If
Next attachment
Esse processo é particularmente útil quando você precisa extrair conteúdo de PDFs ou processar documentos anexados programaticamente.
Como faço para acessar vários anexos em um PDF?
A propriedade Attachments retorna uma coleção que você pode percorrer ou consultar usando 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");
' Get all attachments as a list
Dim allAttachments = pdf.Attachments.ToList()
' Filter attachments by size (e.g., files larger than 1MB)
Dim largeAttachments = pdf.Attachments _
.Where(Function(a) a.Data.Length > 1024 * 1024) _
.ToList()
' Find specific attachment by exact name
Dim specificAttachment = pdf.Attachments _
.FirstOrDefault(Function(a) a.Name = "report.xlsx")
Quais propriedades estão disponíveis nos anexos recuperados?
Cada objeto PdfAttachment fornece:
- Nome : O nome de exibição do anexo
- Dados : Conteúdo binário como matriz de bytes
- Descrição : Metadados de descrição opcionais (se definidos)
Você pode usar essas propriedades para identificar, filtrar e processar anexos com base em suas necessidades.
Como posso filtrar anexos por nome ou tipo?
Como os anexos são armazenados com seus nomes de exibição, você pode filtrá-los usando operações de string:
// 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();
' Filter by file extension (assuming names include extensions)
Dim imageAttachments = pdf.Attachments _
.Where(Function(a) a.Name.EndsWith(".jpg") OrElse _
a.Name.EndsWith(".png") OrElse _
a.Name.EndsWith(".gif")) _
.ToList()
' Filter by name pattern
Dim reportsOnly = pdf.Attachments _
.Where(Function(a) a.Name.StartsWith("Report_")) _
.ToList()
Como faço para remover anexos de um PDF?
Para remover um anexo, use a função RemoveAttachment. Este método requer uma referência ao anexo, que pode ser obtida a partir da propriedade Anexos . Veja como fazer isso usando o arquivo salvo acima:
: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");
Imports IronPdf
Imports System.Linq
' Open existing PDF
Private pdf As PdfDocument = PdfDocument.FromFile("addAttachment.pdf")
' Add attachment to the PDF
Private retrieveAttachments As PdfAttachmentCollection = pdf.Attachments
' Remove attachment from PDF
pdf.Attachments.RemoveAttachment(retrieveAttachments.First())
pdf.SaveAs("removeAttachment.pdf")
Após remover o anexo e abrir o arquivo resultante em um visualizador de PDF, você verá que o anexo não aparece mais:

O que acontece quando eu removo um anexo?
Ao remover um anexo:
- Os dados do anexo foram completamente removidos do arquivo PDF.
- O tamanho do arquivo diminui aproximadamente no mesmo tamanho do anexo removido.
- Todas as referências a esse anexo na estrutura do PDF são removidas.
- A alteração é permanente assim que você salva o PDF.
Isso é semelhante a outras operações de modificação de PDF, como remover páginas ou ocultar conteúdo .
Posso remover vários anexos de uma só vez?
Sim, você pode remover vários anexos em uma única operação. Eis um exemplo:
// 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());
}
Imports System.Linq
' Remove all attachments that match a pattern
Dim attachmentsToRemove = pdf.Attachments _
.Where(Function(a) a.Name.StartsWith("temp_")) _
.ToList()
For Each attachment In attachmentsToRemove
pdf.Attachments.RemoveAttachment(attachment)
Next
' Or remove all attachments at once
While pdf.Attachments.Count > 0
pdf.Attachments.RemoveAttachment(pdf.Attachments.First())
End While
Como posso verificar se um anexo foi removido com sucesso?
Você pode verificar a remoção do anexo de diversas maneiras:
// 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");
' Check the attachment count
Dim attachmentCountBefore As Integer = pdf.Attachments.Count
pdf.Attachments.RemoveAttachment(targetAttachment)
Dim attachmentCountAfter As Integer = pdf.Attachments.Count
' Verify the count decreased
If attachmentCountAfter < attachmentCountBefore Then
Console.WriteLine("Attachment successfully removed")
End If
' Check if specific attachment exists
Dim attachmentExists As Boolean = pdf.Attachments _
.Any(Function(a) a.Name = "specificFile.txt")
Melhores práticas para anexos em PDF
Ao trabalhar com anexos PDF no IronPDF, considere estas boas práticas:
- Gerenciamento do tamanho do arquivo : esteja atento ao tamanho dos anexos, pois eles aumentam diretamente o tamanho do arquivo PDF.
- Convenções de nomenclatura : Use nomes claros e descritivos para os anexos, a fim de ajudar os usuários a identificá-los.
- Considerações de segurança : Ao lidar com anexos confidenciais, considere aplicar senhas e permissões aos PDFs.
- Desempenho : Para anexos grandes ou muitos arquivos, considere usar operações assíncronas para manter a capacidade de resposta do aplicativo.
Pronto para ver o que mais você pode fazer? Confira nossa página de tutoriais aqui: Organizar PDFs
Perguntas frequentes
Como posso adicionar anexos de arquivos a um PDF programaticamente em C#?
O IronPDF oferece um método simples, AddAttachment(), para incorporar arquivos em PDFs. Primeiro, carregue seu arquivo como uma matriz de bytes usando File.ReadAllBytes(), depois use o método AddAttachment no seu objeto PdfDocument. O método recebe o nome do arquivo e a matriz de bytes como parâmetros.
Que tipos de arquivos podem ser anexados a PDFs?
O IronPDF permite anexar diversos tipos de arquivos a PDFs, incluindo imagens, documentos, planilhas e outros formatos. Esses anexos são incorporados diretamente ao arquivo PDF e podem ser acessados por meio do painel de anexos de qualquer visualizador de PDF padrão.
Como faço para carregar um PDF existente e adicionar anexos?
Você pode carregar um PDF existente usando o método PdfDocument.FromFile() do IronPDF. Depois de carregado, você pode usar a propriedade Attachments para gerenciar anexos, incluindo adicionar novos com AddAttachment() ou remover os existentes.
Qual a diferença entre o conteúdo de um PDF e seus anexos?
O conteúdo de um PDF inclui texto visível, imagens e formatação que você vê ao visualizar o documento. Anexos são arquivos separados, incorporados ao PDF, que não aparecem na visualização principal do documento. Com o IronPDF, os anexos são acessados pelo painel de anexos do visualizador de PDF e servem como materiais suplementares.
Como posso remover anexos de um PDF?
O IronPDF fornece um método RemoveAttachment() para remover arquivos incorporados de PDFs programaticamente. A função AddAttachment retorna um objeto PdfAttachment que você pode referenciar posteriormente para operações de remoção.
Onde os usuários podem encontrar anexos em um visualizador de PDF?
Após usar o IronPDF para adicionar anexos, os usuários podem acessá-los através da barra de ferramentas do visualizador de PDF. A maioria dos visualizadores de PDF, incluindo o visualizador integrado do Google Chrome, exibe um ícone ou painel de anexos onde os arquivos incorporados podem ser abertos ou salvos.

