C# Kullanarak PDF'deki Ekleri Ekleme ve Kaldırma

IronPDF ile C#'da PDF Ekleri Nasıl Eklenir ve Kaldırılır

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

IronPDF, C# dilindeki basit yöntemler olan AddAttachment() ve RemoveAttachment()'i kullanarak PDF belgelerine programatik olarak dosya ekleri eklemenizi, almanızı ve kaldırmanızı sağlar, böylece tamamlayıcı dosyaları PDF'lerinize doğrudan gömebilirsiniz.

Bir PDF belgesindeki ekler, PDF dosyasının içinde yer alan dosyaları veya ek verileri ifade eder. Bu, PDF'yi görüntülediğinizde görünen metin, resimler ve biçimlendirmelerden farklıdır. Bu ekler, görüntüler, belgeler, elektronik tablolar veya diğer formatlar dahil olmak üzere çeşitli dosya türlerinde olabilir. Tipik olarak, ekler kullanıcılara açıldıklarında PDF'yi açarken erişebilecekleri ek referans materyalleri veya destekleyici veriler sağlamak için kullanılır. Bu yetenek, özellikle kapsamlı PDF raporları oluştururken veya destek dokümantasyonu ile birden fazla PDF'yi birleştirirken faydalıdır.

Kısa Başlangıç: PDF'ye Ekler Ekleme

IronPDF kullanarak PDF belgelerinize ekler ekleyin. Bu hızlı örnek, bir dosyayı nasıl ek olarak bir PDF'ye gömeceğinizi gösterir. Mevcut PDF dosyanızı yükleyin, AddAttachment yöntemini kullanın ve güncellenen belgeyi kaydedin. Bu işlem, ek materyallerinizin PDF'nizle birlikte ekli olduğundan emin olur, böylece bunlar herhangi bir PDF görüntüleyicisinden doğrudan erişilebilir hale gelir.

  1. NuGet Paket Yöneticisi ile https://www.nuget.org/packages/IronPdf yükleyin

    PM > Install-Package IronPdf
  2. Bu kod parçasını kopyalayıp çalıştırın.

    var pdf = IronPdf.PdfDocument.FromFile("example.pdf");
    pdf.Attachments.AddAttachment("file.txt", System.IO.File.ReadAllBytes("file.txt"));
    pdf.SaveAs("updated.pdf");
  3. Canlı ortamınızda test etmek için dağıtın

    Bugün projenizde IronPDF kullanmaya başlayın ücretsiz deneme ile

    arrow pointer


Bir Dosyayı PDF'ye Ek Olarak Nasıl Eklerim?

Bir dosyayı ek olarak eklemek için önce onu byte[] olarak yükleyin. Bunun en kolay yolu, File.ReadAllBytes yöntemini kullanmaktır. byte[] olarak yüklenmiş dosya ile, nesneyi bir ek olarak PDF'ye eklemek için AddAttachment yöntemini kullanın:

: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

AddAttachment fonksiyonu, gelecekte referans için saklayabileceğiniz veya gerekirse daha sonra kaldırabileceğiniz bir PdfAttachment nesnesi çıkışı verir. Bu yaklaşım, PDF'lere görüntü eklemek veya diğer PDF varlıklarını yönetmek ile benzerdir.

PDF'yi kaydettikten sonra, bir PDF görüntüleyicisinin araç çubuğundan eki açabilirsiniz. Aşağıdaki resim, bu özelliği Google Chrome'un PDF Görüntüleyicisinde nerede bulacağınızı göstermektedir:

Gezinme kontrolleri ve yan paneli ile Hello World belgesi gösteren PDF görüntüleyici

Oradan tıklayarak eki depolamanıza kaydedebilirsiniz.

PDF'ye Hangi Dosya Türlerini Ekleyebilirim?

IronPDF, PDF belgelerine neredeyse tüm dosya türlerini eklemeyi destekler. Yaygın eklenti türleri şunlardır:

  • Ofis belgeleri (DOCX, XLSX, PPTX)
  • Görüntüler (JPG, PNG, GIF, SVG)
  • Metin dosyaları (TXT, CSV, XML)
  • Arşivler (ZIP, RAR)
  • Diğer PDF'ler

Eklenti sistemi ikili verilerle çalışır, bu nedenle bayt olarak okunabilen herhangi bir dosya eklenebilir. Belirli belge türleriyle çalışırken, DOCX'i PDF'ye dönüştürme veya görüntüleri PDF'ye dönüştürme gibi IronPDF'in yerleşik dönüştürme özelliklerini de düşünebilirsiniz.

Ekler PDF Görüntüleyicilerde Nerede Görünür?

Farklı PDF görüntüleyiciler ekleri çeşitli konumlarda gösterir:

  • Adobe Acrobat: Navigasyon panelinde bir ataş simgesi gösterir
  • Chrome PDF Görüntüleyici: Tıklanıldığında sol kenar çubuğunda ekleri gösterir
  • Firefox PDF Görüntüleyici: Eklere ayrılmış bir panelde gösterir
  • Microsoft Edge: Chrome'a benzer şekilde, bir kenar çubuğu ek görünümüyle

Çoğu modern PDF görüntüleyici ekleri destekler, ancak arayüz uygulamalar arasında biraz farklılık gösterebilir.

PdfAttachment Nesnesine Ekleme Sonrası Ne Olur?

AddAttachment() çağırdığınızda, IronPDF şu içeriğe sahip bir PdfAttachment nesnesi oluşturur:

  • Ad: Ekin gösterilen adı
  • Veri: Eklenen dosyanın ikili içeriği
  • Açıklama: Ekle ilgili isteğe bağlı meta veriler

Bu nesne, PDF'nin dahili ek koleksiyonuna eklenir ve açıkça kaldırılana kadar Attachments özelliği aracılığıyla erişilebilir kalır.

Var Olan Bir PDF'den Ekleri Nasıl Alabilirim?

Bir PDF'deki ekler, PdfDocument nesnesinin Ekler özelliğine erişilerek ikili veriler olarak alınabilir. İkili verilerle, eklentileri PDF'den kendi dosya formatlarında dışa aktarabilirsiniz.

: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

Bu işlem, özellikle PDF'lerden içerik çıkartmanız veya ek belgeleri programatik olarak işlemeniz gerektiğinde faydalıdır.

Bir PDF'de Birden Çok Eke Nasıl Erişebilirim?

Ekler özelliği, üstünde döngü yapabileceğiniz veya LINQ kullanarak sorgulayabileceğiniz bir koleksiyon döndürür:

// 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

Alınan Eklerde Hangi Özellikler Mevcuttur?

Her PdfAttachment nesnesi şunları sağlar:

  • Ad: Ekin gösterilen adı
  • Veri: Bayt dizisi olarak ikili içerik
  • Açıklama: İsteğe bağlı açıklama meta verisi (ayarlanmışsa)

Bu özellikleri kullanarak ekleri tanımlayabilir, filtreleyebilir ve gereksinimlerinize göre işleyebilirsiniz.

Ekleri Ada veya Türüne Göre Nasıl Filtreleyebilirim?

Ekler görüntü adlarıyla saklandığından, bunları string işlemleri kullanarak filtreleyebilirsiniz:

// 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

PDF'den Ekleri Nasıl Kaldırırım?

Bir eki kaldırmak için RemoveAttachment fonksiyonunu kullanın. Bu yöntem, Ekler özelliğinden alınabilecek ekin referansını gerektirir. Üstteki kaydedilen dosyayı kullanarak bunu nasıl yapacağınızı burada gösteriyoruz:

: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

Eki kaldırdıktan ve ortaya çıkan dosyayı bir PDF görüntüleyicide açtıktan sonra, ekin artık görüntülenmediğini göreceksiniz:

Ek paneli açık, Hello World belgesini ve Ekleri Göster düğmesini gösteren PDF görüntüleyici

Bir Eki Kaldırdığımda Ne Olur?

Bir eki kaldırdığınızda:

  1. Ek verisi PDF dosyasından tamamen kaldırılır
  2. Dosya boyutu, kaldırılan ekin boyutu kadar azalır
  3. PDF yapısındaki o eke yapılan referanslar temizlenir
  4. PDF'yi kaydettiğinizde değişiklik kalıcı olur

Bu, sayfaları kaldırmak veya içeriği kısıtlamak gibi diğer PDF değiştirme işlemlerine benzer.

Birden Fazla Eki Aynı Anda Kaldırabilir miyim?

Evet, tek bir işlemde birden fazla ek kaldırabilirsiniz. İşte bir örnek:

// 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

Bir Ekin Başarıyla Kaldırıldığını Nasıl Doğrularım?

Ek kaldırmayı doğrulamak için birkaç yol kullanabilirsiniz:

// 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

PDF Ekleri için En İyi Uygulamalar

IronPDF ile PDF ekleri üzerinde çalışırken bu en iyi uygulamaları göz önünde bulundurun:

  1. Dosya Boyutu Yönetimi: Ek boyutlarına dikkat edin, çünkü bunlar doğrudan PDF dosya boyutunu artırır
  2. Adlandırma Kuralları: Kullanıcıların ekleri tanımlamalarına yardımcı olmak için açık ve açıklayıcı adlar kullanın
  3. Güvenlik Hususları: Hassas ekleri işlerken, PDF şifreleri ve izinleri uygulamayı düşünün
  4. Performans: Büyük ekler veya birçok dosya için, uygulama yanıt verebilirliğini sürdürmek için asenkron işlemleri kullanmayı düşünün

Başka neler yapabileceğinizi görmek için hazır mısınız? Eğitim sayfamızı buradan inceleyin: PDF'leri Düzenle

Sıkça Sorulan Sorular

C#'ta bir PDF'ye dosya eklerini programlı olarak nasıl eklerim?

IronPDF, dosyaları PDF'lere gömmek için basit bir AddAttachment() yöntemi sağlar. Önce dosyanızı File.ReadAllBytes() kullanarak bir bayt dizisine yükleyin, ardından PdfDocument nesnenizde AddAttachment yöntemi ile kullanın. Yöntem, dosya adını ve bayt dizisini parametreler olarak alır.

PDF'lere ne tür dosyalar eklenebilir?

IronPDF, resimler, belgeler, elektronik tablolar ve diğer formatlar dahil olmak üzere çeşitli dosya türlerini PDF'lere eklemenize izin verir. Bu ekler doğrudan PDF dosyasına gömülür ve herhangi bir standart PDF görüntüleyicinin ek paneli aracılığıyla erişilebilir.

Eklentiler eklemek için var olan bir PDF'yi nasıl yüklerim?

Var olan bir PDF'yi IronPDF'nin PdfDocument.FromFile() yöntemiyle yükleyebilirsiniz. Yüklendikten sonra, yeni ekler eklemek için Attachments özelliğini veya mevcut ekleri kaldırmak için Attachment() yöntemini kullanarak ekleri yönetebilirsiniz.

PDF içeriği ve PDF ekleri arasındaki fark nedir?

PDF içeriği, PDF'yi görüntülerken gördüğünüz metin, resimler ve biçimlendirmeyi içerir. Ekler, ana belge görünümünde görünmeyen PDF'ye gömülü ayrı dosyalardır. IronPDF ile, eklere PDF görüntüleyicinin ek paneli aracılığıyla erişilir ve ek materyal olarak hizmet eder.

PDF'den ekleri nasıl kaldırabilirim?

IronPDF, PDF'lerden gömülü dosyaları programlı olarak kaldırmak için bir RemoveAttachment() yöntemine sahiptir. AddAttachment fonksiyonu, daha sonra kaldırma işlemleri için referans alabileceğiniz bir PdfAttachment nesnesi döndürür.

Kullanıcılar PDF görüntüleyicide ekleri nerede bulabilir?

IronPDF kullanarak ekler ekledikten sonra, kullanıcılar bunlara PDF görüntüleyicisinin araç çubuğundan erişebilirler. Çoğu PDF görüntüleyici, Google Chrome'un yerleşik görüntüleyicisi dahil, gömülü dosyaların açılabileceği veya kaydedilebileceği bir ek simgesi veya paneli gösterir.

Jordi Bardia
Yazılım Mühendisi
Jordi Python, C# ve C++ konularında en yetkin, Iron Software'deki yeteneklerini kullanmadığı zamanlarda; oyun programlıyor. Ürün testi, ürün geliştirme ve araştırma sorumluluklarını paylaşan Jordi, sürekli ürün gelişimine büyük değer katıyor. Çeşitli deneyimleri onu ...
Daha Fazlasını Oku
Başlamaya Hazır mısınız?
Nuget Indirmeler 18,332,619 | Sürüm: 2026.4 yeni yayınlandı
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package IronPdf
bir örnek çalıştır HTML'nizin PDF olduğunu izleyin.