Jak dodawać i usuwać załączniki w plikach PDF w języku C#

Jak dodawać i usuwać załączniki PDF w języku C# za pomocą IronPDF

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

IronPDF umozliwia programistyczne dodawanie, pobieranie i usuwanie zalacznikow plikow w dokumentach PDF przy uzyciu prostych metod C# takich jak AddAttachment() i RemoveAttachment(), pozwalajac na osadzenie dodatkowych plikow bezposrednio w dokumentach PDF.

Załączniki w dokumencie PDF odnoszą się do plików lub dodatkowych danych osadzonych w samym pliku PDF. Różni się to od zwykłej zawartości pliku PDF, która obejmuje widoczny tekst, obrazy i formatowanie podczas przeglądania pliku. Załączniki te mogą mieć postać różnych typów plików, w tym obrazów, dokumentów, arkuszy kalkulacyjnych lub innych formatów. Zazwyczaj załączniki służą do dostarczania dodatkowych materiałów referencyjnych lub danych uzupełniających, do których użytkownicy mają dostęp po otwarciu pliku PDF. Ta funkcja jest szczególnie przydatna podczas tworzenia kompleksowych raportów PDF lub gdy trzeba połączyć wiele plików PDF z dokumentacją uzupełniającą.

Szybki start: Dodawanie załączników do plików PDF

Dodawaj załączniki do dokumentów PDF za pomocą IronPDF. Ten krótki przykład pokazuje, jak osadzić plik jako załącznik w pliku PDF. Zaladuj istniejacy PDF, uzyj metody AddAttachment i zapisz zaktualizowany dokument. Ten proces gwarantuje, że materiały dodatkowe zostaną dołączone do pliku PDF, dzięki czemu będą dostępne bezpośrednio w dowolnej przeglądarce plików PDF.

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf
  2. Skopiuj i uruchom ten fragment kodu.

    var pdf = IronPdf.PdfDocument.FromFile("example.pdf");
    pdf.Attachments.AddAttachment("file.txt", System.IO.File.ReadAllBytes("file.txt"));
    pdf.SaveAs("updated.pdf");
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer


Jak dodać plik jako załącznik do pliku PDF?

Aby dodac plik jako zalacznik, najpierw zaladuj go jako byte[]. Najlatwiejszym sposobem na to jest uzycie metody File.ReadAllBytes. Gdy plik jest zaladowany jako byte[], uzyj metody AddAttachment, aby dodac obiekt do dokumentu PDF jako zalacznik:

: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")
$vbLabelText   $csharpLabel

Funkcja AddAttachment zwraca obiekt PdfAttachment, ktory mozna zachowac do przyszlego uzycia lub usunac, jesli zajdzie taka potrzeba. To podejście jest podobne do tego, w jaki sposób dodaje się obrazy do plików PDF lub zarządza innymi zasobami PDF.

Po zapisaniu pliku PDF można otworzyć załącznik z paska narzędzi przeglądarki PDF. Poniższy obrazek pokazuje, gdzie znaleźć tę funkcję w przeglądarce plików PDF w przeglądarce Google Chrome:

PDF viewer pokazujacy dokument Hello World z kontrolkami nawigacyjnymi i panelem bocznym

Następnie można na niego kliknąć i zapisać załącznik w swojej pamięci.

Jakie typy plików można dołączyć do pliku PDF?

IronPDF obsługuje dołączanie praktycznie każdego typu pliku do dokumentów PDF. Typowe typy załączników to:

  • Dokumenty pakietu Office (DOCX, XLSX, PPTX)
  • Obrazy (JPG, PNG, GIF, SVG)
  • Pliki tekstowe (TXT, CSV, XML)
  • Archiwa (ZIP, RAR)
  • Inne pliki PDF

System załączników obsługuje dane binarne, więc można załączyć każdy plik, który można odczytać jako bajty. Podczas pracy z określonymi typami dokumentów warto również rozważyć wbudowane funkcje konwersji IronPDF, takie jak konwersja plików DOCX do formatu PDF lub konwersja obrazów do formatu PDF.

Gdzie pojawiają się załączniki w przeglądarkach plików PDF?

Różne przeglądarki plików PDF wyświetlają załączniki w różnych miejscach:

  • Adobe Acrobat: Wyświetla ikonę spinacza w panelu nawigacyjnym
  • Przeglądarka PDF w Chrome: po kliknięciu wyświetla załączniki w lewym pasku bocznym
  • Przeglądarka PDF w przeglądarce Firefox: Wyświetla załączniki w dedykowanym panelu
  • Microsoft Edge: Podobna do przeglądarki Chrome, z widokiem załączników w pasku bocznym

Większość nowoczesnych przeglądarek plików PDF obsługuje załączniki, choć interfejs może się nieco różnić w zależności od aplikacji.

Co dzieje się z obiektem PdfAttachment po dodaniu?

Gdy wywolujesz AddAttachment(), IronPDF tworzy obiekt PdfAttachment, ktory zawiera:

  • Nazwa: Nazwa wyświetlana załącznika
  • Dane: zawartość binarna załączonego pliku
  • Opis: Opcjonalne metadane dotyczące załącznika

Ten obiekt jest dodawany do wewnetrznej kolekcji zalacznikow PDF i pozostaje dostepny poprzez wlasciwosc Attachments, az do momentu jego jednoznacznego usuniecia.

Jak mogę pobrać załączniki z istniejącego pliku PDF?

Załączniki w pliku PDF można pobrać jako dane binarne, uzyskując dostęp do właściwości Attachments obiektu PdfDocument. Dzięki danym binarnym można eksportować załączniki z pliku PDF w ich odpowiednich formatach plików.

: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
$vbLabelText   $csharpLabel

Proces ten jest szczególnie przydatny, gdy trzeba wyodrębnić treść z plików PDF lub programowo przetwarzać załączone dokumenty.

Jak uzyskać dostęp do wielu załączników w pliku PDF?

Właściwość Attachments zwraca kolekcję, którą można przeglądać lub przeszukiwać za pomocą 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")
$vbLabelText   $csharpLabel

Jakie właściwości są dostępne dla pobranych załączników?

Każdy obiekt PdfAttachment zapewnia:

  • Nazwa: Nazwa wyświetlana załącznika
  • Dane: zawartość binarna w postaci tablicy bajtów
  • Opis: Opcjonalne metadane opisu (jeśli zostały ustawione)

Możesz użyć tych właściwości do identyfikacji, filtrowania i przetwarzania załączników zgodnie z własnymi wymaganiami.

Jak mogę filtrować załączniki według nazwy lub typu?

Ponieważ załączniki są przechowywane wraz z ich nazwami wyświetlanymi, można je filtrować za pomocą operacji na ciągach znaków:

// 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()
$vbLabelText   $csharpLabel

Jak usunąć załączniki z pliku PDF?

Aby usunac zalacznik, uzyj funkcji RemoveAttachment. Ta metoda wymaga odwołania do załącznika, który można pobrać z właściwości Attachments. Oto jak to zrobić, korzystając z zapisanego powyżej pliku:

: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")
$vbLabelText   $csharpLabel

Po usunięciu załącznika i otwarciu wynikowego pliku w przeglądarce PDF zobaczysz, że załącznik już się nie wyświetla:

PDF viewer z otwartym panelem zalacznikow, pokazujacy dokument Hello World i przycisk Pokaż załączniki

Co się stanie, gdy usunę załącznik?

Po usunięciu załącznika:

  1. Dane załącznika zostały całkowicie usunięte z pliku PDF
  2. Rozmiar pliku zmniejsza się mniej więcej o rozmiar usuniętego załącznika
  3. Wszelkie odniesienia do tego załącznika w strukturze pliku PDF zostały usunięte
  4. Zmiana jest trwała po zapisaniu pliku PDF

Jest to podobne do innych operacji modyfikacji plików PDF, takich jak usuwanie stron lub redagowanie treści.

Czy mogę usunąć wiele załączników jednocześnie?

Tak, można usunąć wiele załączników w ramach jednej operacji. Oto przykład:

// 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
$vbLabelText   $csharpLabel

Jak sprawdzić, czy załącznik został pomyślnie usunięty?

Możesz sprawdzić usunięcie załączników na kilka sposobów:

// 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")
$vbLabelText   $csharpLabel

Najlepsze praktyki dotyczące załączników PDF

Podczas pracy z załącznikami PDF w IronPDF należy wziąć pod uwagę następujące najlepsze praktyki:

  1. Zarządzanie rozmiarem plików: Należy zwracać uwagę na rozmiary załączników, ponieważ bezpośrednio zwiększają one rozmiar pliku PDF
  2. Konwencje nazewnictwa: Należy stosować jasne, opisowe nazwy plików załączonych, aby ułatwić użytkownikom ich identyfikację
  3. Kwestie bezpieczeństwa: Podczas pracy z poufnymi załącznikami warto rozważyć zastosowanie haseł i uprawnień do plików PDF
  4. Wydajność: W przypadku dużych załączników lub wielu plików warto rozważyć użycie operacji asynchronicznych, aby zachować responsywność aplikacji

Gotowy, aby sprawdzić, co jeszcze możesz zrobić? Zapoznaj się z naszą stroną z samouczkami tutaj: Organizowanie plików PDF

Często Zadawane Pytania

How do I add file attachments to a PDF programmatically in C#?

IronPDF provides a simple AddAttachment() method to embed files into PDFs. First, load your file as a byte array using File.ReadAllBytes(), then use the AddAttachment method on your PdfDocument object. The method takes the filename and byte array as parameters.

What types of files can be attached to PDFs?

IronPDF allows you to attach various file types to PDFs, including images, documents, spreadsheets, and other formats. These attachments are embedded directly into the PDF file and can be accessed through any standard PDF viewer's attachment panel.

How do I load an existing PDF to add attachments?

You can load an existing PDF using IronPDF's PdfDocument.FromFile() method. Once loaded, you can use the Attachments property to manage attachments, including adding new ones with AddAttachment() or removing existing ones.

What is the difference between PDF content and PDF attachments?

PDF content includes visible text, images, and formatting that you see when viewing the PDF. Attachments are separate files embedded within the PDF that don't appear in the main document view. With IronPDF, attachments are accessed through the PDF viewer's attachment panel and serve as supplementary materials.

How can I remove attachments from a PDF?

IronPDF provides a RemoveAttachment() method to programmatically remove embedded files from PDFs. The AddAttachment function returns a PdfAttachment object that you can reference later for removal operations.

Where can users find attachments in a PDF viewer?

After using IronPDF to add attachments, users can access them through the PDF viewer's toolbar. Most PDF viewers, including Google Chrome's built-in viewer, display an attachment icon or panel where embedded files can be opened or saved.

Jordi Bardia
Inżynier oprogramowania
Jordi jest najbardziej biegły w Pythonie, C# i C++. Kiedy nie wykorzystuje swoich umiejętności w Iron Software, programuje gry. Dzieląc odpowiedzialność za testowanie produktów, rozwój produktów i badania, Jordi wnosi ogromną wartość do ciągłej poprawy produktów. Różnorodne doświadczenia ...
Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 18,135,201 | Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronPdf
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.