C# PDF'de Dosya Ekleri Nasıl Eklenir ve Çıkarılır

IronPDF ile C#'te PDF Eklerini Ekleme ve Kaldırma

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

IronPDF, AddAttachment() ve RemoveAttachment() gibi basit C# yöntemlerini kullanarak PDF belgelerine programlı olarak dosya ekleri eklemenizi, almanızı ve kaldırmanızı sağlar, böylece ek dosyaları doğrudan PDF'lerinize gömebilirsiniz.

PDF belgesindeki ekler, PDF dosyasının kendisine gömülmüş dosyalara veya ek verilere atıfta bulunur. Bu, PDF'yi görüntülediğinizde görünen metin, resim ve formatlamayı içeren normal PDF içeriğinden farklıdır. Bu ekler genellikle resimler, belgeler, e-tablolar veya diğer formatlar dahil olmak üzere çeşitli dosya türlerinde olabilir. Genellikle ekler, kullanıcıların PDF açıldığında erişebilecekleri ek referans materyalleri veya ek veriler sağlamak için kullanılır. Bu yetenek, özellikle kapsamlı PDF raporları oluşturmak veya birden fazla PDF'yi destekleyici belgelerle birleştirmek gerektiğinde faydalıdır.

Hızlı Başlangıç: PDF'ye Ek Ekleme

IronPDF kullanarak PDF belgelerinize ekler ekleyin. Bu hızlı örnek, bir dosyayı PDF'ye ek olarak nasıl gömeteceğinizi gösterir. Mevcut PDF'nizi yükleyin, AddAttachment yöntemini kullanın ve güncellenen belgeyi kaydedin. Bu süreç, ek materyallerinizin PDF'nizle birlikte eklendiğinden emin olur, onları doğrudan herhangi bir PDF görüntüleyicisinden erişilebilir kılar.

  1. IronPDF aşağıdaki NuGet Paket Yöneticisi ile yükleyin

    PM > Install-Package IronPdf
  2. Bu kod parçacığını kopyalayın ve ç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 için dağıtım yapın

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

    arrow pointer


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

Bir dosyayı ek olarak eklemek için, önce dosyayı byte[] olarak yükleyin. Bunu yapmanın en kolay yolu File.ReadAllBytes yöntemini kullanmaktır. Dosya byte[] olarak yüklendiğinde, AddAttachment yöntemini kullanarak nesneyi bir PDF'ye ek olarak ekleyin:

: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 işlevi, ileride başvurmak üzere saklayabileceğiniz veya gerekirse daha sonra kaldırabileceğiniz bir PdfAttachment nesnesi üretir. Bu yaklaşım, PDF'lere resim eklemek veya diğer PDF varlıklarını yönetmek ile benzerdir.

PDF'yi kaydettikten sonra, PDF görüntüleyicinin 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österir:

Navigasyon kontrolleri ve kenar çubuğu paneli içeren Hello World belgesini gösteren PDF görüntüleyici

Buradan üzerine tıklayarak eki depolama alanınıza kaydedebilirsiniz.

Hangi Dosya Türlerini Bir PDF'ye Ek Olarak Ekleyebilirim?

IronPDF, neredeyse her türlü dosya türünü PDF belgelerine eklemeyi destekler. Yaygın ek türleri şunları içerir:

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

Ek sistemi ikili verilerle çalışır, bu nedenle bayt olarak okunabilen herhangi bir dosya eklenebilir. Belirli belge türleriyle çalışırken, IronPDF'in yerleşik dönüşüm özelliklerini de göz önünde bulundurabilirsiniz, örneğin DOCX'i PDF'ye dönüştürmek veya resimleri PDF'ye dönüştürmek

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: Gezinti penceresinde bir ataş simgesi gösterir
  • Chrome PDF Görüntüleyici: Tıklandığında ekleri sol yan panelde görüntüler
  • Firefox PDF Görüntüleyici: Ekleri özel bir panelde gösterir
  • Microsoft Edge: Chrome'a benzer şekilde, bir kenar çubuğu ek görünümü vardır

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

Bir Ek Ekledikten Sonra PdfAttachment Nesnesine Ne Olur?

AddAttachment() çağrıldığında, IronPDF aşağıdakileri içeren bir PdfAttachment nesnesi oluşturur:

  • Ad: Ekin gösterim adı
  • Veri: Eklenmiş dosyanın ikili içeriği
  • Açıklama: Ek hakkında isteğe bağlı metadata

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.

Attachments

Mevcut Bir PDF'den Ekleri Nasıl Alabilirim?

PDF'deki ekler, Attachments nesnesinin PdfDocument özelliğine erişilerek ikili veri olarak alınabilir. İkili verilerle, ekleri PDF'den kendi dosya formatları olarak 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 süreç, PDF'lerden içerik çıkarma veya programlı olarak ekli belgeleri işleme gereği duyduğunuzda özellikle faydalıdır.

Bir PDF'deki Birden Fazla Eke Nasıl Erişim Sağlarım?

Attachments özelliği, LINQ kullanarak yineleme yapabileceğiniz veya 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 Ekler Üzerindeki Hangi Özellikler Mevcuttur?

Her bir PdfAttachment nesnesi şunları sağlar:

  • Name: Ekin görüntü adı
  • Data: Bayt dizisi olarak ikili içerik
  • Description: İsteğe bağlı açıklama meta verileri (ayarlanmışsa)

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

Ekleri İsim veya Tiplere Göre Nasıl Filtreleyebilirim?

Ekler gösterim adlarıyla saklandığı için, string işlemleri kullanarak onları 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 işlevini kullanın. Bu yöntem, Attachments özelliğinden alınabilen eke bir referans gerektirir. Bunu, yukarıda kaydedilmiş dosyayı kullanarak nasıl yapacağınızı gösteririz:

: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üleyicisine açtıktan sonra, ekin artık görünmediğini göreceksiniz.

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

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

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

  1. Ek verileri PDF dosyasından tamamen kaldırılır Dosya boyutu, kaldırılan ekin boyutu kadar azalır
  2. PDF yapısındaki bu eke referanslar temizlenir
  3. Değişiklik, PDF'yi kaydettiğinizde kalıcı hale gelir

Bu, diğer PDF düzenleme operasyonlarına benzer, sayfaları kaldırmak veya içerik sansürü gibi.

Birden Fazla Eki Aynı Anda Kaldırabilir miyim?

Evet, tek seferde 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?

Birçok şekilde ek kaldırmayı doğrulayabilirsiniz:

// 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'de PDF ekleriyle çalışırken şu en iyi uygulamaları göz önünde bulundurun:

  1. Dosya Boyutu Yönetimi: Ek boyutlarına dikkat edin, çünkü bunlar doğrudan PDF dosyası boyutunu artırır
  2. Adlandırma Kuralları: Kullanıcıların ekleri tanımlamalarını sağlamak için açık, açıklayıcı adlar kullanın
  3. Güvenlik Düşünceleri: Hassas eklerle çalışırken PDF parolaları ve izinleri uygulamayı düşünün
  4. Performans: Büyük ekler veya birçok dosya için, uygulama tepki yeteneğini korumak amacıyla async işlemlerini kullanmayı düşünün

Başka neler yapabileceğinizi görmek için hazır mısınız? Derli toplu Öğretici sayfamızı kontrol edin: PDF'leri Düzenleyin

Sıkça Sorulan Sorular

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

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

PDF'lere hangi tür dosyalar eklenebilir?

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

Ek eklemek için mevcut bir PDF'yi nasıl yüklerim?

IronPDF'nin PdfDocument.FromFile() yöntemini kullanarak mevcut bir PDF'yi yükleyebilirsiniz. Yüklendikten sonra, Ekler özelliğini kullanarak ekleri yönetebilir, AddAttachment() ile yeni ekler ekleyebilir veya var olanları kaldırabilirsiniz.

PDF içeriği ile 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 içindeki ayrı dosyalardır. IronPDF ile ekler, PDF görüntüleyicisinin ek paneli aracılığıyla erişilir ve tamamlayıcı materyaller olarak hizmet eder.

Bir PDF'den ekleri nasıl kaldırabilirim?

IronPDF, PDF'lerden programlı olarak gömülmüş dosyaları kaldırmak için bir RemoveAttachment() yöntemi sağlar. AddAttachment işlevi, ileride yapılacak kaldırma işlemleri için referans olarak kullanabileceğiniz bir PdfAttachment nesnesi döndürür.

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

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

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 19,014,616 | Sürüm: 2026.5 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronPdf
bir örnek çalıştır HTML'nizi bir PDF'ye dönüştüğünü izleyin.