IronPDF ile ASP.NET C#'ta PDF Nasıl Oluşturulur

Birden fazla PDF dosyasını tek bir belgeye birleştirmek iş uygulamalarında yaygın bir gereksinimdir. Birleştirilmiş mali raporlar oluşturuyor, arşiv için yasal sözleşmeleri bir araya getiriyor ya da çok parçalı faturalar düzenliyor olun, PDF'leri programlı olarak birleştirmek zaman kazandırır ve manuel adımları ortadan kaldırır. IronPDF, bu işlemi sadece birkaç satır C# kodu ile halleden basit bir API sağlar; dış araçlar veya komut satırı yardımcı programları gerekmez.
Bu kılavuz, her pratik senaryoyu kapsar: iki dosya birleşimi, çok dosyalı liste birleşimi, MemoryStream ile bellek içi işlem ve şifre koruması ve sıkıştırma gibi birleştirme sonrası işlemler.
Bugün .NET uygulamanıza PDF birleştirme yetenekleri eklemek için ücretsiz bir denemeye başlayın.
IronPDF'ye Nasıl Başlanır?
Herhangi bir birleştirme kodu yazmadan önce, IronPDF'yi NuGet üzerinden kurun. Paket, .NET Framework 4.6.2+ ve .NET 5/6/7/8/9/10 hedefliyor, bu yüzden konsol uygulamalarında, ASP.NET Core hizmetlerinde, Azure Fonksiyonlarında ve Windows Forms projelerinde ek çalışma zamanı bağımlılıkları olmadan çalışıyor.
NuGet Paket Yöneticisi Konsolu'nu açın ve şunu çalıştırın:
Install-Package IronPdf
Veya .NET CLI kullanın:
dotnet add package IronPdf
Lisans anahtarını uygulama dahil olmak üzere adım adım kurulum için IronPDF kurulum genel bakışına bakın. Paket kurulup lisans anahtarı uygulandıktan sonra, bu kılavuzdaki her örnek değişiklik yapılmadan çalışacaktır.
PDF Belgeleri Programlı Olarak Nasıl Birleştirilir?
PdfDocument.Merge yöntemi, iki PDF dosyasını tek bir PDF olarak birleştirmenin en doğrudan yolunu sağlar. Her kaynak belgeyi PdfDocument.FromFile ile yükleyin, her iki nesneyi Merge'a aktarın ve sonucu kaydedin.
Fatura Girişi Bir

Fatura Girişi İki

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 gelen tüm sayfaları sırayla içeren yeni bir belge döndürür. Sonuç dosyası, her girişten orijinal formatlama, görüntüler, yazı tipleri ve gömülü içeriği korur. Birleşmiş belgeye sahip olduğunuzda, diske kaydedebilir, web uç noktasından döndürebilir veya kullanıcılara teslim etmeden önce başlıklar ve altbilgiler ekleyebilirsiniz.
PdfDocument.FromFile'nin hem dosya yolları hem de URI dizeleri ile çalıştığını unutmayın, böylece bulut nesne depolama alanında depolanan belgeler URL ile doğrudan yüklenebilir. Birleştirme işlemi yıkıcı değildir: çağrı sonrasında iki kaynak nesne değişmeden kalır.
Birden Fazla PDF Dosyasını Aynı Anda Nasıl Birleştirirsiniz?
İkiden fazla belgenin birleştirilmesi gerektiğinde, aşırı yüklenmiş Merge yöntemine bir List<PdfDocument> (veya herhangi bir IEnumerable<PdfDocument>) aktarın. Bu yöntem üç dosyadan yüzlerce dosyaya kadar kod yapınızı değiştirmeden ö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> içindeki belgelerin sırası, çıktının sayfa sırasını doğrudan kontrol eder. Eğer birleşimden sonra sayfaları yeniden düzenlemeniz gerekiyorsa, sayfa yönetimi API'si herhangi bir PdfDocument'dan bireysel sayfaları kopyalayıp, taşıyıp veya silmenize olanak tanır.
Bu model, çalıştırma sırasında oluşturulan belgelerle de çalışır. Örneğin, bir raporun her bölümü için HTML'den PDF'ye dönüştürebilir ve ortaya çıkan PdfDocument nesnelerini ara dosyaları diske yazmadan birleştirebilirsiniz. Aynı şey, kaynak içeriğiniz Word belgelerinden geliyorsa DOCX'ten PDF'e dönüşümler için de geçerlidir.
MemoryStream Kullanarak PDF Dosyalarını Nasıl Birleştirirsiniz?
Disk yazımının mümkün olmadığı veya çok yavaş olduğu web hizmetleri ve sunucusuz fonksiyonlar için bellekte işleme gereklidir. IronPDF, byte dizilerinden PDF belgelerini yüklemeyi destekler ve birleştirilmiş 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, başlarken yerleştirilmiş bir MemoryStream döndürür, böylece bir HTTP yanıtına yazmak veya başka bir işlem adımına göndermek için hazırdır. ASP.NET Core deneticisinde, File(outputStream, "application/pdf", "merged.pdf")'yi doğrudan döndürebilirsiniz. Geçici dosyalar oluşturulmaz, bu da temizliği basitleştirir ve yüksek veri işleme senaryolarında disk yüklerini azaltır.
IronPDF, giriş kaynakları olarak dize dosya yolları, bayt dizileri ve akışları değişimli olarak kabul eder, böylece aynı birleştirme çağrısında karıştırıp eşleştirebilirsiniz. Veritabanı BLOB'undan yüklenen bir belge, arada bir dönüşüm adımı gerektirmeden bir URL'den alınan bir belge ile birleştirilebilir.
Birleştirilmiş Dosyalarda Yer İşaretleri ve Gezinme Nasıl Korunur?
Bir PDF dosyalarını birleştirirken, IronPDF her kaynak belgenin yer işareti yapısını taşır. Okuyucular, birleşmiş çıktının gezinme panelinde tüm birleştirilmiş dosyalardan tam içindekiler tablosunu görür, bu da kullanıcıların farklı kaynak belgelerden gelen bölümler arasında atlamasını kolaylaştırır. PDF spesifikasyonuindeki yer işaretleri, belge anahat sözlüğünde saklanır ve IronPDF, tüm birleşmiş kaynaklar için bu yapıyı doğru bir şekilde yeniden oluşturur.
Yer işareti koruma, ekstra yapılandırma gerekmeden otomatik olarak gerçekleşir. Kaynak dosyalar bölüm ve alt bölümler için iç içe yer işaretleri içeriyorsa, hiyerarşi birleşmiş çıktıda korunur. Birleşmiş belgeler için ayrı ayrı belge yer işareti ağaçları yerine birlik içindekiler tablosuna ihtiyaç duyan belgeler için, içindekiler tablosu API'si, birleştirmeden sonra özel bir gezinme yapısı oluşturmanıza olanak tanır.
Kaynak belge yer işareti verisi olmadan oluşturulmuşsa, birleşmiş çıktıda bu bölüm için herhangi bir anahat girişi olmayacaktır. Uyumluluk veya arşiv bağlamında birleştirilmiş bir dosyayı teslim etmeden önce, elde edilen PdfDocument üzerinde OutlineManager özelliğini inceleyerek hangi yer işaretlerinin taşındığını doğrulayın. Programlı olarak yer işareti etiketlerini yeniden adlandırabilir, girişlerin sırasını yeniden düzenleyebilir veya farklı kaynak belgelerden gelen içeriği mantıklı bir hiyerarşiye bağlayan yeni öğeler ekleyebilirsiniz. Ayrıca uzun süreli arşivleme için PDF/A dönüşümüne ihtiyaç duyan iş akışları için, her kaynağa ayrı ayrı değil birleşmiş belgenin sonunda uyum adımını uygulayın. Son birleşmiş belgeyi tek bir geçişte dönüştürmek daha etkilidir ve daha fazla düzenlemeye gereksinim duyabilecek çıktıları yeniden dönüştürmekten kaçınır.
Birleştirdikten sonra, birden fazla kaynaktan elde edilen onlarca sayfayı kapsayan çıktılarda yararlı olan sayfa numaralandırma özelliği kullanarak birleştirilmiş belgeye sayfa numaraları da ekleyebilirsiniz.
Birleşmiş PDF'ye Parola Koruması Nasıl Uygulanır?
Birleştirme işleminden sonra, elde edilen PdfDocument kullanıcı ve sahip şifreleri uygulamak, yazdırma, kopyalama ve düzenleme haklarını kısıtlamak için SecuritySettings sağlar.
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ı belgeyi görüntülemeden önce uyarırken, OwnerPassword izin değişikliklerini sınırlar. Parola korumasını baskı kısıtlamaları, kopya önleme bayrakları ve dijital imzalarla birleştirebilirsiniz. Tüm izin seçeneklerinin tam açıklaması için, PDF güvenlik kılavuzu mevcut tüm ayarları kapsar.
Kaynak belgeler kendileri parola korumasına sahipse, sahip belgelerine sahipseniz şifrelenmiş PDF'leri birleştirmeden önce IronPDF de-şifreleyebilir. Bu, manuel kilitleme işlemleri olmadan farklı satıcılar veya sistemlerden gelen güvenli belgeleri tek bir yeniden güvenli çıktı haline getirebileceğiniz anlamına gelir.
Birleşmiş PDF'nin Dosya Boyutu Nasıl Azaltılır?
Birçok resim içeren büyük belgeleri birleştirmek, saklamak veya göndermek için büyük sonuçlar üretebilir. IronPDF'nin PDF sıkıştırma API'si, katman içindeki gömülü resimleri daha düşük kalitede yeniden 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 için tam sayı argümanı bir kalite yüzdesidir: 50 ile 75 arasındaki değerler genellikle metin içeriğine görünür bir bozulma olmaksızın, görüntü ağırlıklı belgelerde dosya boyutunu %40-70 oranında azaltır. Vektör grafikleri içeren ve minimum raster görüntülere sahip belgeler için tasarruflar daha azdır, ancak çağrının güvenle dahil edilmesi her durumda zararsızdır.
PDF Birleştirme için Yaygın Kullanım Durumları Nelerdir?
PdfDocument.Merge API, .NET uygulamalarında üretim aşamasındaki geniş bir belge iş akışına uygundur:
| Kullanım Örneği | Giriş Kaynakları | Önerilen Yaklaşım |
|---|---|---|
| Yıllık mali rapor | Disk üzerinde dört çeyreklik PDF dosyası | Merge(List<PdfDocument>) ile liste birleştirme |
| Çok parçalı yasal sözleşme | Veritabanındaki temel sözleşme + eklemeler | Bayt dizisi yükleme + hafızada birleştirme |
| Fatura konsolidasyonu | Her satır kalemine göre HTML render edilmiş faturalar | Her madde için HTML'den PDF'e dönüşüm, ardından liste birleştirme |
| Otomatize rapor teslimi | Karışık DOCX ve PDF kaynak dosyaları | DOCX'ten PDF'e dönüşüm, ardından birleştirme |
| Güvenli belge arşivi | Birden çok departman raporu | Liste birleştirme + SecuritySettings |
Belgelerin seçici olarak çıkarılması gerektiği iş akışları için, PDF bölme API'si bir kaynak belgeden belirli sayfa aralıklarını çıkarabilir. Tek birleştirme çıktısında yalnızca büyük bir belgenin belirli kısımlarının görünmesi gerektiğinde, PDF dosyaları arasında sayfa kopyalama doğrudan yapabilirsiniz.
IronPDF, birleştirilmiş belgelerden metin ve resimlerin düşey işlemesi için de destek sunar, bu da onu daha büyük veri hatları içinde merkezi bir doküman oluşturma adımı olarak uygundur.
Sonraki Adımlarınız Neler?
IronPDF'in PdfDocument.Merge yöntemi, iki dosya birleşimi, çok dosyalı liste birleşimi, bellek içi işlem, şifre korumalı çıktılar ve birleştirme sonrası sıkıştırma ile kapsamlı .NET PDF birleştirme senaryolarını minimum kodla kapsar. Her yöntem, giriş kaynak türü ne olursa olsun aynı tutarlı API'yi kullanır.
Ücretsiz deneme başlat ve bu örnekleri kendi projenizde çalıştırın. Üretim dağıtımı için, ekibinizin büyüklüğüne ve kullanımına uygun lisanslama seçeneklerine bakın.
Birleştirme desteği eklendikten sonra ilgili belge işlemlerini keşfedin: çok sayfalı bir PDF'yi ayrı dosyalara ayırma, çok sayfalı çıktılara sayfa numarası ekleme veya tüm sayfalara filigran uygulama.
Sıkça Sorulan Sorular
C#'te iki PDF dosyası nasıl birleştirilir?
Her dosyayı PdfDocument.FromFile ile yükleyin, ardından PdfDocument.Merge(pdfA, pdfB) çağırın ve sonucu merged.SaveAs ile kaydedin.
.NET'te iki veya daha fazla PDF dosyasını nasıl birleştirirsiniz?
Tüm kaynak belgeleri içeren bir List<PdfDocument> oluşturun ve bunu PdfDocument.Merge(list)'e iletin. Çıktı liste sırasını korur.
Disk'e yazmadan bellek içinde PDF'leri birleştirebilir misiniz?
Evet. Belgeyi bayt dizislerinden yükleyin new PdfDocument(bytes) kullanarak, birleştirin ve sonucu disk yazmadan merged.Stream üzerinden erişin.
IronPDF, PDF'leri birleştirirken yer imlerini koruyor mu?
Evet. IronPDF, her kaynak belgeden (dış hat) yapı taşını birleşik çıktı içinde otomatik olarak taşır, yer imi hiyerarşilerini de dahil eder.
Birleşik bir PDF'yi C#'ta nasıl şifreli hale getirirsiniz?
Birleştirdikten sonra, okuyucu şifresi için merged.SecuritySettings.UserPassword ve izinler şifresi için merged.SecuritySettings.OwnerPassword ayarlayın, ardından SaveAs'i çağırın.
Birleşik bir PDF'nin dosya boyutunu nasıl azaltırsınız?
Kayd etmeden önce merged.CompressImages(quality) ile 50 ve 75 arasında kalite değeri çağırın. Bu, gömme'de piksel görüntülerini yeniden sıkıştırır ve genelde resim ağırlıklı belgeler için dosya boyutunu %40-70 oranında azaltır.
IronPDF, şifreli PDF dosyalarını birleştirebilir mi?
Evet. IronPDF, sahibi şifresine sahip olduğunuzda şifreli PDF'leri yükleyip birleştirebilir. Dosyayı birleştirmeden önce açmak için PdfDocument.FromFile(path, password) kullanın.
IronPDF'in birleştirme API'si ASP.NET Core'da çalışır mı?
Evet. Birleştirme sonucu herhangi bir ASP.NET Core denetleyici eyleminden File(merged.Stream, "application/pdf", "merged.pdf") olarak döndürülebilir.

