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 pozwala programistom C# programowo dodawać, pobierać i usuwać załączniki plików z dokumentów PDF używając prostych metod C# takich jak AddAttachment() oraz RemoveAttachment(), pozwalając na bezpośrednie osadzanie dodatkowych plików w twoich PDFach.

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 swój istniejący 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. Z załadowanym plikiem jako byte[] użyj metody AddAttachment, aby dodać obiekt do 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 wyjmuje obiekt PdfAttachment, który możesz zachować do przyszłych odniesień lub usunąć, jeśli będzie to potrzebne. 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?

Kiedy wywołasz 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

Ten obiekt jest dodawany do wewnętrznej kolekcji załączników PDF i pozostaje dostępny przez właściwość Attachments, dopóki explicitnie nie zostanie usunięty.

Attachments

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

Załączniki w PDF mogą być odczytywane jako dane binarne poprzez uzyskanie dostępu 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ę, przez którą można iterować lub przeprowadzać zapytania 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: Zawartość binarna jako tablica bajtów
  • Description: Opcjonalne dane metadane opisu (jeśli 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

Icon Quote related to Jak mogę filtrować załączniki według nazwy lub typu?

Moją ulubioną biblioteką tego typu jest IronPDF. Umożliwia ona szybkie i efektywne manipulowanie plikami PDF. Posiada także wiele cennych funkcji, takich jak eksport do formatu PDF/A i cyfrowe podpisywanie dokumentów PDF.

Milan Jovanovic related to Jak mogę filtrować załączniki według nazwy lub typu?

Milan Jovanovic

Microsoft MVP

Zobacz studium przypadku
Icon Quote related to Jak mogę filtrować załączniki według nazwy lub typu?

IronOCR pozwala nam oszczędzić 40 000 USD rocznie na ręcznym przetwarzaniu, jednocześnie zwiększając produktywność i uwalniając zasoby do zadań o wysokim wpływie. Gorąco polecam.

Brent Matzelle related to Jak mogę filtrować załączniki według nazwy lub typu?

Brent Matzelle

Dyrektor technologiczny, OPYN

Zobacz studium przypadku
Icon Quote related to Jak mogę filtrować załączniki według nazwy lub typu?

IronSuite odgrywa kluczową rolę w naszej działalności. Są to narzędzia zwiększające wydajność w całej firmie, w tym tworzenie planów pięter i poprawa zarządzania zapasami.

David Jones related to Jak mogę filtrować załączniki według nazwy lub typu?

David Jones

Główny inżynier oprogramowania, Agorus Build

Zobacz studium przypadku

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

Aby usunąć załącznik, użyj funkcji RemoveAttachment. Metoda ta wymaga odniesienia do załącznika, które można uzyskać 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ć.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 19,936,792 | Wersja: 2026.7 właśnie wydany
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.