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 umożliwia programowe dodawanie, pobieranie i usuwanie załączników w dokumentach PDF przy użyciu prostych metod C#, takich jak AddAttachment() i RemoveAttachment(), co pozwala na osadzanie plików uzupełniających bezpośrednio w plikach 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. Załaduj istniejący plik PDF, użyj 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 dodać plik jako załącznik, najpierw załaduj go jako byte[]. Najłatwiejszym sposobem na to jest użycie metody File.ReadAllBytes. Po załadowaniu pliku jako byte[] użyj metody AddAttachment, aby dodać obiekt do pliku PDF jako załącznik:

: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, który można zachować do wykorzystania w przyszłości lub usunąć później, jeśli 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:

Przeglądarka PDF wyświetlająca dokument

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?

Po wywołaniu AddAttachment(), IronPDF tworzy obiekt PdfAttachment, który zawiera:

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

Obiekt ten jest dodawany do wewnętrznej kolekcji załączników pliku PDF i pozostaje dostępny poprzez właściwość Attachments, dopóki nie zostanie wyraźnie usunięty.

Attachments

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

Załączniki w formacie 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:

  • Name: Nazwa wyświetlana załącznika
  • Data: Treść binarna jako tablica bajtów
  • Description: 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 usunąć załącznik, użyj 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:

Przeglądarka plików PDF z otwartym panelem załączników, pokazująca dokument

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: Zwróć uwagę na rozmiary załączników, ponieważ one bezpośrednio zwiększają rozmiar pliku PDF
  2. Konwencje nazewnictwa: Stosuj jasne, opisowe nazwy załączników, które pomogą użytkownikom je zidentyfikować
  3. Rozważania dotyczące bezpieczeństwa: Przy obsłudze wrażliwych załączników rozważ zastosowanie hasła i uprawnienia PDF
  4. Wydajność: Przy dużych załącznikach lub wielu plikach rozważ użycie operacji asynchronicznych w celu utrzymania responsywności 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

Jak programowo dodawać załączniki plików do PDF w C#?

IronPDF zapewnia prostą metodę AddAttachment() do osadzenia plików w PDF. Najpierw załaduj plik jako tablicę bajtów, używając File.ReadAllBytes(), a następnie użyj metody AddAttachment na swoim obiekcie PdfDocument. Metoda przyjmuje nazwę pliku i tablicę bajtów jako parametry.

Jakie rodzaje plików można załączyć do PDF?

IronPDF pozwala załączać do PDF różnorodne formaty plików, w tym obrazy, dokumenty, arkusze kalkulacyjne i inne formaty. Te załączniki są osadzone bezpośrednio w pliku PDF i można uzyskać do nich dostęp za pomocą panelu załączników w każdym standardowym przeglądarce PDF.

Jak załadować istniejący PDF do dodania załączników?

Możesz załadować istniejący PDF, używając metody PdfDocument.FromFile() IronPDF. Po załadowaniu możesz użyć właściwości Attachments do zarządzania załącznikami, w tym dodawania nowych poprzez AddAttachment() lub usuwania już istniejących.

Jaka jest różnica między zawartością PDF a załącznikami PDF?

Zawartość PDF to widoczny tekst, obrazy i formatowanie, które widzisz przy przeglądaniu PDF. Załączniki to oddzielne pliki osadzone w PDF, które nie pojawiają się w głównym widoku dokumentu. W IronPDF załączniki są dostępne poprzez panel załączników przeglądarki PDF i służą jako materiały uzupełniające.

Jak można usunąć załączniki z PDF?

IronPDF zapewnia metodę RemoveAttachment() do programowego usuwania osadzonych plików z PDF. Funkcja AddAttachment zwraca obiekt PdfAttachment, który można później zreferować do operacji usunięcia.

Gdzie użytkownicy mogą znaleźć załączniki w przeglądarce PDF?

Po użyciu IronPDF do dodania załączników, użytkownicy mogą uzyskać do nich dostęp poprzez pasek narzędzi przeglądarki PDF. Większość przeglądarek PDF, w tym wbudowana przeglądarka Google Chrome, wyświetla ikonę załącznika lub panel, w którym osadzone pliki można otworzyć lub zapisać.

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,926,724 | Wersja: 2026.5 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.