C# .NET'te Nasıl PDF Dosyaları Birleştirirsiniz

Birden fazla PDF dosyasını tek bir belgede birleştirmek, iş uygulamalarında yaygın bir gerekliliktir. Birleştirilmiş finansal raporlar oluşturmak, arşivleme için yasal sözleşmeleri toplamak veya çok parçalı faturaları monte etmek gibi amaçlarla, PDF'leri programatik olarak birleştirmek, zaman kazandırır ve manuel adımları ortadan kaldırır. IronPDF, sadece birkaç satır C# ile bu işlemi gerçekleştiren dolambaçsız bir API sağlar ve bu, harici araçlara veya komut satırı yardımcı programlarına ihtiyaç duymaz.
Bu rehber, her pratik senaryoyu kapsar: iki dosya birleşimleri, çoklu dosya listesi birleşimleri, MemoryStream ile bellekte işleme ve parola koruma ve sıkıştırma gibi birleşme sonrası işlemleri.
.NET uygulamanıza bugün PDF birleştirme yetenekleri eklemek için ücretsiz deneme ile başlayın.
IronPDF ile Nasıl Başlanır?
Herhangi bir birleştirme kodu yazmadan önce, IronPDF'i NuGet üzerinden yükleyin. Paket .NET Framework 4.6.2+ ve .NET 5/6/7/8/9/10 ile uyumludur, bu nedenle konsol uygulamaları, ASP.NET Core hizmetleri, Azure Fonksiyonları ve Windows Forms projelerinde ek bir çalışma zamanı bağımlılığı olmadan çalışır.
NuGet Paket Yöneticisi Konsolu'nu açın ve çalıştırın:
Install-Package IronPdf
Install-Package IronPdf
Ya da .NET CLI kullanın:
dotnet add package IronPdf
dotnet add package IronPdf
Lisans anahtarı uygulaması da dahil olmak üzere adım adım kurulum yürüyüşü için IronPDF kurulum genel bakışına bakın. Paket kurulduktan ve lisans anahtarı uygulandıktan sonra, bu kılavuzdaki her örnek herhangi bir değişiklik yapmadan çalışacaktır.
PDF Belgelerini Programatik Olarak Nasıl Birleştirirsiniz?
PdfDocument.Merge yöntemi, iki PDF dosyasını tek bir PDF'de birleştirmenin en doğrudan yolunu sağlar. Her kaynak dokümanı PdfDocument.FromFile ile yükleyin, her iki nesneyi Merge'e iletin ve sonucu kaydedin.
Fatura Girişi Bir

Fatura Girişi Iki

using IronPdf;
// Load two input PDF files from disk
PdfDocument pdfA = PdfDocument.FromFile("invoice_one.pdf");
PdfDocument pdfB = PdfDocument.FromFile("invoice_two.pdf");
// Merge PDF documents into a single PDF
PdfDocument merged = PdfDocument.Merge(pdfA, pdfB);
// Save the merged document
merged.SaveAs("combined_invoices.pdf");
using IronPdf;
// Load two input PDF files from disk
PdfDocument pdfA = PdfDocument.FromFile("invoice_one.pdf");
PdfDocument pdfB = PdfDocument.FromFile("invoice_two.pdf");
// Merge PDF documents into a single PDF
PdfDocument merged = PdfDocument.Merge(pdfA, pdfB);
// Save the merged document
merged.SaveAs("combined_invoices.pdf");
Imports IronPdf
' Load two input PDF files from disk
Dim pdfA As PdfDocument = PdfDocument.FromFile("invoice_one.pdf")
Dim pdfB As PdfDocument = PdfDocument.FromFile("invoice_two.pdf")
' Merge PDF documents into a single PDF
Dim merged As PdfDocument = PdfDocument.Merge(pdfA, pdfB)
' Save the merged document
merged.SaveAs("combined_invoices.pdf")
Çıktı

Merge yöntemi, iki PdfDocument örneğini kabul eder ve her iki kaynaktan bütün sayfaları içeren yeni bir belge döndürür. Elde edilen dosya, her girdi için orijinal biçimlendirmeyi, görüntüleri, yazı tiplerini ve gömülü içeriği korur. Birleştirilmiş belgeyi aldıktan sonra, onu diske kaydedebilir, bir web uç noktasından döndürebilir veya kullanıcıya teslim etmeden önce başlıklar ve alt bilgiler ekleyebilirsiniz.
PdfDocument.FromFile yönteminin hem dosya yolları hem de URI dizeleriyle çalıştığını unutmayın, bu nedenle bulut depolama birimi içinde saklanan belgeler URL aracılığıyla doğrudan yüklenebilir. Birleştirme işlemi tahribatsızdır: çağrıdan sonra iki kaynak nesne değişmeden kalır.
Birden Fazla PDF Dosyasını Aynı Anda Nasıl Birleştirirsiniz?
İkiden fazla belgeyi birleştirmeniz gerektiğinde, aşırı yüklenmiş Merge yöntemine bir List<PdfDocument> (veya herhangi bir IEnumerable<PdfDocument>) iletin. Bu yaklaşım, kod yapınızı değiştirmeden üç dosyadan yüzlercesine kadar ölçeklenir.
using IronPdf;
// Build a list of quarterly reports
List<PdfDocument> pdfsToMerge = new()
{
PdfDocument.FromFile("report_q1.pdf"),
PdfDocument.FromFile("report_q2.pdf"),
PdfDocument.FromFile("report_q3.pdf"),
PdfDocument.FromFile("report_q4.pdf")
};
// Combine into one annual report
PdfDocument merged = PdfDocument.Merge(pdfsToMerge);
// Save the final document
merged.SaveAs("annual_report.pdf");
using IronPdf;
// Build a list of quarterly reports
List<PdfDocument> pdfsToMerge = new()
{
PdfDocument.FromFile("report_q1.pdf"),
PdfDocument.FromFile("report_q2.pdf"),
PdfDocument.FromFile("report_q3.pdf"),
PdfDocument.FromFile("report_q4.pdf")
};
// Combine into one annual report
PdfDocument merged = PdfDocument.Merge(pdfsToMerge);
// Save the final document
merged.SaveAs("annual_report.pdf");
Imports IronPdf
' Build a list of quarterly reports
Dim pdfsToMerge As New List(Of PdfDocument) From {
PdfDocument.FromFile("report_q1.pdf"),
PdfDocument.FromFile("report_q2.pdf"),
PdfDocument.FromFile("report_q3.pdf"),
PdfDocument.FromFile("report_q4.pdf")
}
' Combine into one annual report
Dim merged As PdfDocument = PdfDocument.Merge(pdfsToMerge)
' Save the final document
merged.SaveAs("annual_report.pdf")
Birleştirilmiş PDF Belgesi

IronPDF, sayfaları liste sırasına göre işler, bu nedenle List<PdfDocument>'inizdeki belgelerin sırası, çıktının sayfa sırasını doğrudan kontrol eder. Birleştirmeden sonra sayfaları yeniden sıralamanız gerektiğinde, sayfa yönetimi API'si herhangi bir PdfDocument'den bireysel sayfaları kopyalayıp, taşıyıp veya silebilmenizi sağlar.
Bu model, çalışma zamanında oluşturulan belgelerle de çalışır. Örneğin, bir raporun her bölümü için HTML'yi PDF'ye dönüştürebilir ve oluşan PdfDocument nesnelerini hiçbir ara dosya diske yazılmaksızın birleştirebilirsiniz. Aynısı, kaynak içeriğiniz Word belgelerinden geldiğinde DOCX'yi PDF'ye dönüştürme işlemleri için geçerlidir.
Birleştirilmiş PDF Dosyalarını Nasıl Hafızada Birleştirirsiniz?
Yazılıma veya sunucusuz işlevlere yazmanın mümkün olmadığı veya çok yavaş olduğu web hizmetleri ve sunucusuz işlevler için bellek içi işlemler gereklidir. IronPDF, PDF belgelerini byte dizilerinden yüklemeyi destekler ve birleşmiş sonucu Stream özelliği aracılığıyla bir MemoryStream olarak sunar.
using IronPdf;
using System.IO;
// Load PDF content as byte arrays (e.g., from database or HTTP response)
byte[] firstFileBytes = File.ReadAllBytes("contract_part1.pdf");
byte[] secondFileBytes = File.ReadAllBytes("contract_part2.pdf");
// Create PdfDocument objects from byte arrays
PdfDocument doc1 = new PdfDocument(firstFileBytes);
PdfDocument doc2 = new PdfDocument(secondFileBytes);
// Merge and access the result as a stream
PdfDocument merged = PdfDocument.Merge(doc1, doc2);
MemoryStream outputStream = merged.Stream;
// Optionally save to disk as well
merged.SaveAs("merged_contract.pdf");
using IronPdf;
using System.IO;
// Load PDF content as byte arrays (e.g., from database or HTTP response)
byte[] firstFileBytes = File.ReadAllBytes("contract_part1.pdf");
byte[] secondFileBytes = File.ReadAllBytes("contract_part2.pdf");
// Create PdfDocument objects from byte arrays
PdfDocument doc1 = new PdfDocument(firstFileBytes);
PdfDocument doc2 = new PdfDocument(secondFileBytes);
// Merge and access the result as a stream
PdfDocument merged = PdfDocument.Merge(doc1, doc2);
MemoryStream outputStream = merged.Stream;
// Optionally save to disk as well
merged.SaveAs("merged_contract.pdf");
Imports IronPdf
Imports System.IO
' Load PDF content as byte arrays (e.g., from database or HTTP response)
Dim firstFileBytes As Byte() = File.ReadAllBytes("contract_part1.pdf")
Dim secondFileBytes As Byte() = File.ReadAllBytes("contract_part2.pdf")
' Create PdfDocument objects from byte arrays
Dim doc1 As New PdfDocument(firstFileBytes)
Dim doc2 As New PdfDocument(secondFileBytes)
' Merge and access the result as a stream
Dim merged As PdfDocument = PdfDocument.Merge(doc1, doc2)
Dim outputStream As MemoryStream = merged.Stream
' Optionally save to disk as well
merged.SaveAs("merged_contract.pdf")
Birleştirilmiş Sözleşme Dosyası

Stream özelliği, yazmaya veya başka bir işlem adımına gönderilmeye hazır konumda olan bir MemoryStream döndürür. Bir ASP.NET Core denetleyicisinde, File(outputStream, "application/pdf", "merged.pdf")'i doğrudan döndürebilirsiniz. Hiçbir geçici dosya oluşturulmaz, bu da temizlemeyi basitleştirir ve yüksek throughput senaryolarında disk yükünü azaltır.
IronPDF, dize dosya yollarını, bayt dizilerini ve akışları giriş kaynakları olarak değişimli bir şekilde kabul eder, böylece aynı birleştirme çağrısında karışık ve eşleşik kullanabilirsiniz. Bir URL'den alınmış olanla birleştirilmiş veritabanı BLOB'dan yüklenmiş bir belge, herhangi bir ara dönüşüm adımı olmaksızın birleşebilir.
Birleşik Dosyalarda Yer İşaretleri ve Gezinme Nasıl Korunur?
PDF dosyalarını birleştirdiğinizde, IronPDF her kaynak belgeden yer işareti yapısını ileri taşır. Okuyucular, birleştirilmiş çıktının gezinme bölmesinde tüm birleştirilmiş dosyalardan tam tabloyu görür ve bu, kullanıcıların farklı kaynak belgelerden gelen bölümler arasında gezinmeyi kolaylaştırır. PDF spesifikasyonundaki yer işaretleri, belge ana hat sözlüğünde saklanır ve IronPDF bu yapıyı tüm birleşik kaynaklar için doğru bir şekilde yeniden oluşturur.
Yer işareti korunumu, ekstra bir yapılandırma olmadan otomatik olarak gerçekleşir. Kaynak dosyalar iç içe yer işaretleri (bölümler ve alt bölümler) içeriyorsa, hiyerarşi birleşik çıktıda korunur. Birleşik belgeler için ayrı belge yer işareti ağaçları yerine birleşik bir içerik tablosu gerektiren durumlar için, içindekiler tablosu API'si, birleştirdikten sonra özel bir gezinme yapısı oluşturmanıza olanak tanır.
Kaynak belge yer işareti meta verisi olmadan oluşturulmuşsa, birleşik çıktı o bölüm için ana hat girdileri içermeyecektir. Uyum sağlama veya arşivleme bağlamında birleştirilmiş bir dosyayı teslim etmeden önce, oluşan PdfDocument üzerindeki OutlineManager özelliğini inceleyerek hangi yer işaretlerinin ileri taşındığını doğrulayın. Programatik olarak yer işareti etiketlerini yeniden adlandırabilir, girişleri yeniden sıralayabilir veya farklı kaynak belgelerden içeriği mantıklı bir hiyerarşiye köprüleyen yeni öğeler ekleyebilirsiniz. Aynı zamanda PDF/A dönüşümünü uzun süreli arşivleme için gerektiren iş akışları için, birleşimden sonra uyum dönüşüm adımını uygulayın, her bir kaynağa ayrı ayrı uygulamak yerine. Nihai birleşik belgeyi tek geçişte dönüştürmek daha verimlidir ve daha fazla düzenleme gerektirebilecek çıktıları yeniden dönüştürmekten kaçınır.
Birleştirdikten sonra, çıktı birçok kaynaktan gelen düzinelerce sayfaya yayılırsa faydalı olan sayfa numaralandırma özelliği kullanarak birleşik belgeye de sayfa numaraları ekleyebilirsiniz.
Birleştirilmiş PDF'ye Şifre Korumasını Nasıl Uygularsınız?
Birleştirmeden sonra, oluşan PdfDocument, kullanıcı ve sahip parolalarını uygulamak, yazdırma, kopyalama ve düzenleme haklarını kısıtlamak için SecuritySettings sunar.
using IronPdf;
PdfDocument pdfA = PdfDocument.FromFile("part1.pdf");
PdfDocument pdfB = PdfDocument.FromFile("part2.pdf");
PdfDocument merged = PdfDocument.Merge(pdfA, pdfB);
// Require a password to open the document
merged.SecuritySettings.UserPassword = "reader123";
// Owner password controls permissions such as printing and editing
merged.SecuritySettings.OwnerPassword = "admin456";
merged.SaveAs("secured_merged.pdf");
using IronPdf;
PdfDocument pdfA = PdfDocument.FromFile("part1.pdf");
PdfDocument pdfB = PdfDocument.FromFile("part2.pdf");
PdfDocument merged = PdfDocument.Merge(pdfA, pdfB);
// Require a password to open the document
merged.SecuritySettings.UserPassword = "reader123";
// Owner password controls permissions such as printing and editing
merged.SecuritySettings.OwnerPassword = "admin456";
merged.SaveAs("secured_merged.pdf");
Imports IronPdf
Dim pdfA As PdfDocument = PdfDocument.FromFile("part1.pdf")
Dim pdfB As PdfDocument = PdfDocument.FromFile("part2.pdf")
Dim merged As PdfDocument = PdfDocument.Merge(pdfA, pdfB)
' Require a password to open the document
merged.SecuritySettings.UserPassword = "reader123"
' Owner password controls permissions such as printing and editing
merged.SecuritySettings.OwnerPassword = "admin456"
merged.SaveAs("secured_merged.pdf")
UserPassword, okuyucuların belgeyi görüntülemeye başlamadan önce uyarır, @OwnerPassword ise izin değişikliklerini sınırlar. Şifre korumasını yazdırma kısıtlamaları, kopyalama önleme bayrakları ve dijital imzalar ile birleştirebilirsiniz. İzin seçeneklerinin tam bir turu için, PDF güvenlik öğreticisi mevcut tüm ayarları kapsar.
Kaynak belgelerinin kendileri şifre korumalıysa, IronPDF, şifrelenmiş PDF'leri siz sahip kimlik bilgilerine sahipseniz şifrelerini çözebilir yine de. Bu, farklı satıcılar veya sistemlerden gelen güvenli belgeleri manuel kilit açma adımları olmadan tek bir yeniden güvenli çıktı halinde birleştirmenize olanak tanır.
Birleştirilmiş PDF'nin Dosya Boyutunu Nasıl Küçültürsünüz?
Büyük belgeleri birçok görüntü ile birleştirmek, saklanması veya gönderilmesi zor çıkanlar üretebilir. IronPDF'nin PDF sıkıştırma API'si, gömülü görüntüleri daha düşük kalite ayarında tekrar sıkıştırarak dosya boyutunu önemli ölçüde azaltabilirken, metin keskinliğini korur.
using IronPdf;
PdfDocument pdfA = PdfDocument.FromFile("report_section1.pdf");
PdfDocument pdfB = PdfDocument.FromFile("report_section2.pdf");
PdfDocument merged = PdfDocument.Merge(pdfA, pdfB);
// Compress embedded images to reduce output file size
merged.CompressImages(60); // quality 0–100
merged.SaveAs("compressed_merged.pdf");
using IronPdf;
PdfDocument pdfA = PdfDocument.FromFile("report_section1.pdf");
PdfDocument pdfB = PdfDocument.FromFile("report_section2.pdf");
PdfDocument merged = PdfDocument.Merge(pdfA, pdfB);
// Compress embedded images to reduce output file size
merged.CompressImages(60); // quality 0–100
merged.SaveAs("compressed_merged.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
CompressImages'a verilen tamsayı argümanı bir kalite yüzdesidir: 50 ile 75 arasındaki değerler tipik olarak, metin içeriğinde görünür bir bozulma olmaksızın, görsel olarak yoğun belgelerde dosya boyutunu %40-70 oranında azaltır. Vektör grafikler ve minimal raster görüntüler içeren belgeler için tasarruflar daha azdır, ancak çağrı yine de dahildir.
PDF Birleştirme için Yaygın Kullanım Durumları Nelerdir?
PdfDocument.Merge API'si, üretim .NET uygulamalarındaki geniş bir belge iş akışına uygundur:
| Kullanım Durumu | Giriş Kaynakları | Önerilen Yaklaşım |
|---|---|---|
| Yıllık mali rapor | Diskte dört çeyreklik PDF dosyası | Liste birleştirme Merge(List ile |
| Çok parçalı hukuki sözleşme | Veritabanından baz sözleşme + ekler | Bayt dizisi yükleme + bellek içi birleştirme |
| Fatura konsolidasyonu | Her satır öğesi için HTML olarak oluşturulmuş faturalar | Her öğe için HTML'den PDF'ye, ardından liste birleştirme |
| Otomatik rapor teslimi | Karışık DOCX ve PDF kaynak dosyaları | DOCX'ten PDF'ye dönüşüm, ardından birleştirme |
| Güvenli belge arşivi | Birden fazla departman raporu | Liste birleştirme + SecuritySettings |
Belgelerin birleştirilmeden önce seçici olarak çıkarılması gerekiyorsa iş akışları için, PDF ayırma API'si, kaynak belgeden belirli sayfa aralıklarını çıkarabilir. Büyük bir belgenin sadece belirli bölümlerinin birleştirilmiş çıktı da görünmesi gerektiğinde bu yararlıdır; doğrudan PDF dosyaları arasında sayfaları kopyayabilirsiniz.
IronPDF ayrıca, birleşik belgelerden metin ve görüntü çekmeyi destekleyerek, daha büyük veri hatlarında merkezi bir belge montaj adımı olarak uygun hale getirir.
Sıradaki Adımlarınız Neler?
IronPDF'in PdfDocument.Merge yöntemi, minimum kod ile tam kapsamlı .NET PDF birleştirme senaryolarını kapsar: iki dosya birleşimleri, çok dosya liste birleşimleri, bellekte işleme, parola korumalı çıktı ve birleşmeden sonra sıkıştırma. Her yaklaşım, giriş kaynak türüne bakılmaksızın aynı tutarlı API'yi kullanır.
Ücretsiz deneme başlatın ve bu örnekleri kendi projenizde çalıştırın. Üretim dağıtımı için, ekibinizin boyutu ve kullanımı için uygun lisans seçeneklerine bakın.
Birleştirme desteği ekledikten sonra, ilgili belge işlemlerini keşfedin: bir PDF'yi ayrı dosyalara ayırmak, çok sayfalı çıktılara sayfa numarası eklemek veya birleşik belgedeki tüm sayfalara filigran uygulamak.
Sıkça Sorulan Sorular
C# dilinde iki PDF dosyasını nasıl birleştirirsiniz?
PdfDocument.FromFile ile her dosyayı yükleyin, ardından PdfDocument.Merge(pdfA, pdfB) çağırın ve sonucu merged.SaveAs ile kaydedin.
.NET'te iki PDF dosyasından fazlasını nasıl birleştirirsiniz?
Tüm kaynak belgeleri içeren bir List oluşturun ve bunu PdfDocument.Merge(list) öğesine iletin. Çıktı liste sırasını korur.
Disk yazmadan bellekte PDF'leri birleştirebilir misiniz?
Evet. Belgeleri new PdfDocument(bytes) kullanarak bayt dizilerinden yükleyin, birleştirin ve herhangi bir disk yazımından kaçınmak için sonuca merged.Stream üzerinden erişin.
IronPDF PDF'leri birleştirirken yer imlerini korur mu?
Evet. IronPDF, her kaynak belgeden gelen yer imi (ana hat) yapısını, iç içe geçmiş yer imi hiyerarşileri de dahil olmak üzere, birleştirilmiş çıktıya otomatik olarak aktarır.
Birleştirilmiş bir PDF'yi C#'ta nasıl parolayla koruyorsunuz?
Birleştirdikten sonra okuyucu parolası için merged.SecuritySettings.UserPassword ve izin parolası için merged.SecuritySettings.OwnerPassword ayarlayın, ardından SaveAs çağırın.
Birleştirilmiş bir PDF'nin dosya boyutunu nasıl küçültürsünüz?
Kaydetmeden önce merged.CompressImages(quality) çağırarak kalite değerini 50 ile 75 arasında belirleyin. Bu, gömülü raster görüntüleri yeniden sıkıştırır ve genellikle görüntü yoğun belgelerin dosya boyutunu %40-70 oranında azaltır.
IronPDF şifrelenmiş PDF dosyalarını birleştirebilir mi?
Evet. IronPDF, sahip parolası olduğunda şifrelenmiş PDF'leri yükleyip birleştirebilir. Dosyayı birleştirmeden önce açmak için PdfDocument.FromFile(path, password) kullanın.
IronPDF'nin birleştirme API'si ASP.NET Core ile çalışıyor mu?
Evet. Birleştirme sonucu, herhangi bir ASP.NET Core denetleyici eyleminden File(merged.Stream, "application/pdf", "merged.pdf") olarak döndürülebilir.




