C# Kullanarak PDF'ye Sayfa Numaraları Eklemek
"Taşınabilir Belge Formatı" veya PDF, Adobe tarafından oluşturulmuş bir dosya formatıdır. PDF'ler, metin ve fotoğrafların biçimlendirilmesi gereken belgeleri sunarken işe yarar. Günümüz dünyasında, PDF dosyaları oldukça önemlidir ve tüm kurumsal sektörlerde belge oluşturma ve faturalandırmada kullanılmaktadır. Şu anda piyasada olan birkaç PDF kütüphanesi sayesinde, PDF oluşturma neredeyse içgüdüsel hale gelmiştir. Projeniz için kullanmadan önce sizin için uygun PDF kütüphanesini seçmek amacıyla her birinin fayda ve özelliklerini değerlendirmek önemlidir.
Bu makalede, iTextSharp C# kullanarak PDF'ye sayfa numaralarını nasıl ekleyeceğimizi göreceğiz. Ayrıca, iTextSharp ile IronPDF'yi karşılaştıracağız.
iTextSharp C# kullanarak PDF'ye Sayfa Numaraları Ekleme
- Herhangi bir IDE kullanarak yeni bir C# projesi oluşturun.
- Yeni bir PDF nesnesi oluşturun.
- HTML alt başlığına sayfa numaraları ekleyin.
- HTML içeriğinden bir PDF oluşturun.
- Bilgisayarınıza bir PDF dosyası kaydedin.
IronPDF Nedir
IronPDF, geliştiricilerin kolayca PDF üretmek, görüntülemek ve düzenlemek için kullandığı sağlam bir PDF .NET Framework'tür. IronPDF, içsel olarak bir krom motoru üzerinde çalışan gelişmiş bir araçtır. HTML5, JavaScript, CSS ve resim dosyalarını PDF'ye dönüştürebilir, özel Başlıklar ve Alt Bilgiler ekleyebilir ve PDF'leri bir tarayıcıda göründüğü şekilde tam olarak oluşturabilir. HTML, ASPX, Razor View ve MVC dahil olmak üzere birçok çevrimiçi ve net formatı, IronPDF tarafından desteklenir.
IronPDF Özellikleri
- .NET C# kodu kullanılarak PDF dosyalarını oluşturma, okuma ve basitçe düzenleme.
- HTML giriş formlarını kullanarak oturum açmayı sağlamak için Kullanıcı Temsilcileri, Proxy'ler, Çerezler, HTTP başlıkları ve form değişkenlerini yönetirken bir web sitesi URL linkinden PDF'ler oluşturma süreci.
- Zaten mevcut olan PDF dosyalarından resimlerin kaldırılması.
- Bir PDF öğeleri eklemek: tablo, metin, fotoğraflar, yer imleri, filigranlar, başlıklar, alt bilgilendirmeler ve diğerleri.
- Birçok PDF belgesinin sayfalarını kolayca ayırma ve birleştirme yeteneği.
IronPDF dökümantasyonu hakkında daha fazla bilgi için buraya bakın.
IronPDF Kurulumu
Visual Studio Araçları içinde, NuGet Paket Yöneticisini seçin ve Visual Komut Satırı arayüzünü Araçlar altında bulabilirsiniz. Aşağıdaki komut, paket yönetimi terminal sekmesine girilmelidir.
Install-Package IronPdf
Veya Paket yöneticisi yöntemini kullanabiliriz. Paketi doğrudan çözüm içine yüklemek Visual Studio'nun NuGet Paket Yöneticisi seçeneği ile mümkündür. NuGet websitesinde paketleri bulmak için bir arama kutusu mevcuttur. Aşağıdaki ekran görüntüsünde görüldüğü gibi, paket yöneticisinde yalnızca 'IronPDF' aramamız yeterli:

İlgili arama sonuçlarının listesi yukarıda görüntülenmektedir. Paketin sisteminize yüklenmesi için gerekli seçimleri yapın.
Paket şimdi indirildi ve yüklendi olduğuna göre, mevcut projede kullanılabilir.
iTextSharp Nedir
iTextSharp, C#'ta PDF belgeleri üretmek ve değiştirmek için esnek bir kütüphanedir. Şifreleme, PDF birleştirme, metin ve resim çıkarma gibi birçok özellik sunar. iTextSharp, PDF'lere sayfa numarası eklemek gibi birçok görev için etkili bir araçtır.
iTextSharp özellikleri
- Bir API aracılığıyla PDF belgeleri oluşturmak için iText kütüphanesi kullanılabilir.
- iText programı ile hem HTML hem de XML dizeleri PDF dosyalarına dönüştürülebilir.
- iText kütüphanesi kullanarak PDF belgelerimize yer imleri, sayfa numaraları ve işaretleyiciler ekleyebiliriz.
- Ayrıca, iText kütüphanesi kullanarak bir PDF belgesini birçok PDF'ye bölebilir veya birden fazla PDF belgesini tek bir PDF'de birleştirebiliriz.
- iText ile PDF formlarını değiştirebiliriz.
iTextSharp Yükleme
iText'i aramak için NuGet paket yöneticisini kullanın. iText işlevsellikleri birçok pakete ayrıldığından, iText7 ve iText.pdfhtml yüklenmesi gerekir.
Visual Komut Satırı arabirimini seçerseniz, aşağıdaki paketlerin yüklenmesi gerekir:
Install-Package iTextSharp
iText 7 en son sürüm olduğundan, çözümümüzde kullandığımız budur.
Sayfa Numaralarını Eklemek için IronPDF Kullanma
IronPDF'in kapsamlı kütüphanesi sayesinde PDF dosyalarına sayfa numaraları eklemek basit hale getirilmiştir. Örneği görmek için aşağıdaki koda bakınız.
using IronPdf;
class Program
{
static void Main(string[] args)
{
// Create a new HtmlToPdf renderer instance
var renderer = new HtmlToPdf();
// Define the HTML content with a header
string header = "<h1>Hello IronPDF!</h1>";
// Render the HTML as a PDF document
PdfDocument pdf = renderer.RenderHtmlAsPdf(header);
// Define the HTML footer with page numbers
HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"
};
// Add footer to the PDF
pdf.AddHtmlFooters(htmlFooter);
// Save the PDF document to a file
pdf.SaveAs("output.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
// Create a new HtmlToPdf renderer instance
var renderer = new HtmlToPdf();
// Define the HTML content with a header
string header = "<h1>Hello IronPDF!</h1>";
// Render the HTML as a PDF document
PdfDocument pdf = renderer.RenderHtmlAsPdf(header);
// Define the HTML footer with page numbers
HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"
};
// Add footer to the PDF
pdf.AddHtmlFooters(htmlFooter);
// Save the PDF document to a file
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Create a new HtmlToPdf renderer instance
Dim renderer = New HtmlToPdf()
' Define the HTML content with a header
Dim header As String = "<h1>Hello IronPDF!</h1>"
' Render the HTML as a PDF document
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(header)
' Define the HTML footer with page numbers
Dim htmlFooter As New HtmlHeaderFooter() With {.HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"}
' Add footer to the PDF
pdf.AddHtmlFooters(htmlFooter)
' Save the PDF document to a file
pdf.SaveAs("output.pdf")
End Sub
End Class
İlk olarak, bir PDF'ye dönüştürülmesi gereken HTML metnini tanımlarız. Bu HTML içeriği, tek bir HTML paragrafından veya tam bir HTML sayfasından oluşabilir. Sonraki adım olarak, HTML'yi PDF'e dönüştürme işlevini sunan RenderHtmlAsPdf'u içeren HtmlToPdf sınıfının bir örneğini oluşturuyoruz.
HTML içeriği, RenderHtmlAsPdf işlevine bir argüman olarak aktarılır. Bir PDF'ye dönüştürülmesi gereken HTML materyali belirtiriz. Sayfa numaraları, bu HTML metninin altbilgi kısmındaki yer tutucular veya {page} of {total-pages} olarak temsil edilir.
Bu yöntem tarafından döndürülen oluşturulmuş PDF belgesi, bir PdfDocument nesnesi olarak döner. SaveAs yöntemi kullanılarak, PDF belgesini 'output.pdf' adıyla bir dosyaya kaydediyoruz. Alternatif olarak, oluşturulan PDF belgesini sistemin varsayılan PDF okuyucusu ile açmak için OpenInDefaultPDFViewer işlevini kullanabiliriz. Yukarıdaki yöntemi mevcut bir PDF dosyasına sayfa numaraları eklemek için de kullanabiliriz.

IronPDF kodu hakkında daha fazla bilgi için buraya bakın.
iTextSharp Kullanarak Sayfa Numaraları Ekleme
Öncelikle, iTextSharp kullanarak yeni bir PDF belgesi oluşturalım. Sayfa numarası içeren yeni bir PDF belgesi oluşturmanın basit bir örneği burada:
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
// Create a new PDF document
Document doc = new Document();
PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream("output.pdf", FileMode.Create));
// Open the document to add content
doc.Open();
doc.Add(new Paragraph("Hello, world!"));
// Attach page number event to PDF writer
writer.PageEvent = new PageNumberEventHandler();
// Close the document
doc.Close();
}
}
public class PageNumberEventHandler : PdfPageEventHelper
{
public override void OnOpenDocument(PdfWriter writer, Document document)
{
base.OnOpenDocument(writer, document);
}
public override void OnEndPage(PdfWriter writer, Document document)
{
base.OnEndPage(writer, document);
// Create a table to hold the page number
PdfPTable table = new PdfPTable(1);
table.TotalWidth = 300f;
table.HorizontalAlignment = Element.ALIGN_CENTER;
PdfPCell cell = new PdfPCell(new Phrase($"Page {writer.PageNumber}"));
cell.Border = 0;
table.AddCell(cell);
// Write the table at the bottom of the page
table.WriteSelectedRows(0, -1, 150f, document.Bottom, writer.DirectContent);
}
public override void OnCloseDocument(PdfWriter writer, Document document)
{
base.OnCloseDocument(writer, document);
}
}
}
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
// Create a new PDF document
Document doc = new Document();
PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream("output.pdf", FileMode.Create));
// Open the document to add content
doc.Open();
doc.Add(new Paragraph("Hello, world!"));
// Attach page number event to PDF writer
writer.PageEvent = new PageNumberEventHandler();
// Close the document
doc.Close();
}
}
public class PageNumberEventHandler : PdfPageEventHelper
{
public override void OnOpenDocument(PdfWriter writer, Document document)
{
base.OnOpenDocument(writer, document);
}
public override void OnEndPage(PdfWriter writer, Document document)
{
base.OnEndPage(writer, document);
// Create a table to hold the page number
PdfPTable table = new PdfPTable(1);
table.TotalWidth = 300f;
table.HorizontalAlignment = Element.ALIGN_CENTER;
PdfPCell cell = new PdfPCell(new Phrase($"Page {writer.PageNumber}"));
cell.Border = 0;
table.AddCell(cell);
// Write the table at the bottom of the page
table.WriteSelectedRows(0, -1, 150f, document.Bottom, writer.DirectContent);
}
public override void OnCloseDocument(PdfWriter writer, Document document)
{
base.OnCloseDocument(writer, document);
}
}
}
Imports System.IO
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Namespace ConsoleApp1
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Create a new PDF document
Dim doc As New Document()
Dim writer As PdfWriter = PdfWriter.GetInstance(doc, New FileStream("output.pdf", FileMode.Create))
' Open the document to add content
doc.Open()
doc.Add(New Paragraph("Hello, world!"))
' Attach page number event to PDF writer
writer.PageEvent = New PageNumberEventHandler()
' Close the document
doc.Close()
End Sub
End Class
Public Class PageNumberEventHandler
Inherits PdfPageEventHelper
Public Overrides Sub OnOpenDocument(ByVal writer As PdfWriter, ByVal document As Document)
MyBase.OnOpenDocument(writer, document)
End Sub
Public Overrides Sub OnEndPage(ByVal writer As PdfWriter, ByVal document As Document)
MyBase.OnEndPage(writer, document)
' Create a table to hold the page number
Dim table As New PdfPTable(1)
table.TotalWidth = 300F
table.HorizontalAlignment = Element.ALIGN_CENTER
Dim cell As New PdfPCell(New Phrase($"Page {writer.PageNumber}"))
cell.Border = 0
table.AddCell(cell)
' Write the table at the bottom of the page
table.WriteSelectedRows(0, -1, 150F, document.Bottom, writer.DirectContent)
End Sub
Public Overrides Sub OnCloseDocument(ByVal writer As PdfWriter, ByVal document As Document)
MyBase.OnCloseDocument(writer, document)
End Sub
End Class
End Namespace
İlk olarak, boş bir PDF dosyası oluşturmamıza olanak tanıyan Document ve PdfWriter için yeni bir nesne oluşturuyoruz. PDF belgenize metin, fotoğraflar, tablolar ve diğer türdeki malzemeler dahil edebilirsiniz. Demo amacıyla biraz örnek metin eklemek için bir Paragraph kullanalım. Şimdi önemli adım, PDF belgesine sayfa numaraları eklemektir. Bunun için iTextSharp'ın sayfa olaylarını kullanacağız. PDF oluşturma sürecinde belirli olaylar gerçekleştiğinde çağrılan yöntemleri geçersiz kılabilmek için PdfPageEventHelper sınıfından türeyen bir sınıf tanımlayarak başlıyoruz.
Bu sınıfta OnEndPage işlevi geçersiz kılınır ve mevcut sayfa numarasını içeren tek hücreli bir tablo eklenir. Son olarak, belgeyi kapatmadan önce, PdfWriter nesnesine PageNumberEventHandler sınıfımızın bir örneğini bağlamamız gerekir. Bu yapılandırma ile, PDF belgesine her yeni sayfa eklendiğinde OnEndPage işlevi PageNumberEventHandler sınıfında çağrılacak ve her sayfanın altına sayfa numarası eklenecektir. Mevcut bir PDF belgesi kullanarak sayfa numaraları da ekleyebiliriz.

Sonuç
Özetle, iTextSharp halen C# PDF işleme kütüphanelerinde güçlü bir rakip olsa da, IronPDF'nin uzmanlığı, kullanılabilirliği ve .NET ortamlarıyla kesintisiz entegrasyonu, HTML'den PDF'ye dönüşüm ve ilgili işlevler gerektiren senaryolar için en iyi seçenek olarak konumlandırmaktadır. IronPDF ile, modern geliştirme ortamında başarılı olmak için gereken kolaylık, etkinlik ve uyarlanabilirlikle HTML içeriğinden faturalar, raporlar ve dinamik olarak üretilmiş belgeler oluşturabilirsiniz.
IronPDF'nin Lite sürümünde daimi lisans, yükseltme seçenekleri ve bir yıllık yazılım bakımı dahildir. Filigranlı deneme süresi, kullanıcılara ürünü pratik ayarlarda değerlendirme imkanı tanır. Daha fazla ayrıntı için lisans sayfasını ziyaret edin. Iron Software hakkında daha fazla bilgi edinmek için bu web sitesini ziyaret edin.
Sıkça Sorulan Sorular
C# kullanarak bir PDF dosyasına sayfa numaraları nasıl ekleyebilirim?
HTML içeriği sayfa numarası yer tutucuları ile tanımlayarak ve AddHtmlFooters yöntemi ile bu içeriği PDF'nizde alt bilgi olarak uygulayarak IronPDF kullanarak bir PDF'ye sayfa numaraları ekleyebilirsiniz.
IronPDF kullanarak PDF yönetiminin faydaları nelerdir?
IronPDF, HTML5, JavaScript, CSS ve resimden PDF'ye dönüşümleri destekleyen güçlü PDF.NET framework yetenekleri sunar, bu da özel başlıklar ve alt bilgiler ile PDF'leri manipüle etmeyi kolaylaştırır.
iTextSharp, sayfa numaralari ekleme konusunda IronPDF ile nasıl karsilastirilir?
iTextSharp, sayfa numaralarını işlemek için PdfPageEventHelper sınıfını kullanırken IronPDF, sayfa numarası yer tutucuları ile HTML alt bilgilerini tanımlamanıza olanak tanıyarak daha basit bir yaklaşım sunar.
Mevcut PDF dosyalarını manipüle ederek sayfa numaraları ekleyebilir miyim?
Evet, IronPDF kullanarak, mevcut PDF dosyalarına HTML alt bilgi ile sayfa numarası yer tutucuları oluşturup bunları orijinal belge ile birleştirerek sayfa numaraları ekleyebilirsiniz.
HTML'yi PDF'ye dönüştürmenin tercih edilen yöntemi nedir?
IronPDF, HTML5, JavaScript ve CSS'yi işleme becerisi ve .NET ortamları ile sorunsuz entegrasyonu nedeniyle HTML'yi PDF'ye dönüştürmek için tercih edilir.
C# projesinde IronPDF'yi kullanmak için kurulum adımları nelerdir?
IronPDF'yi Visual Studio'da NuGet Paket Yöneticisini kullanarak aratarak ve projenize ekleyerek bir C# projesine yükleyebilirsiniz.
C# kullanarak PDF'lerimin doğru sayfa numaralarına sahip olmasını nasıl sağlayabilirim?
IronPDF kullanarak, sayfa numarası yer tutucularıyla bir HTML şablonu tanımlayarak ve bunu tüm PDF sayfalarına tutarlı bir şekilde uygulayarak sayfa numaralarınızın doğru olmasını sağlayabilirsiniz.
IronPDF için lisanslama seçenekleri mevcut mu?
IronPDF, süresiz bir lisans, yükseltme seçenekleri ve bir yıllık yazılım bakımı ile birlikte bir 'Lite' sürümü ve değerlendirme için su damgalı bir deneme süresi sunar.
IronPDF kullanımı için ayrıntılı örnekleri ve belgeleri nerede bulabilirim?
IronPDF'yi kullanmak için kapsamlı belgeler ve örnekler, resmi web sitelerinde, ironpdf.com adresinde bulunabilir.
IronPDF, .NET 10 ile tamamen uyumlu mu ve bir .NET 10 projesinde sayfa numaralandırma özelliklerini kullanabilir miyim?
Evet, IronPDF, .NET 10'u destekler ve tüm özellikleri—başlık veya alt bilgilerdeki yer tutucular aracılığıyla sayfa numaralandırma dahil—.NET 10 projelerinde özel bir yapılandırma veya çözüme gerek kalmadan sorunsuz bir şekilde çalışır.




