IRONSOFTWAREHOME
PDF ARAÇLARI

iPhone İçin En İyi PDF Okuyucu (Ücretsiz ve Ücretli Araçlar Karşılaştırması)

Curtis Chau
Curtis Chau
Updated: 20 Haziran 2026

.NET, Chrome renderlaması kullanarak tam CSS3 ve JavaScript desteği ile mükemmel HTML'den PDF'e dönüştürme sağlar. Buna karşılık, iText programatik PDF oluşturma sunar ancak modern HTML dönüşümüyle mücadele eder, bu da web standartlarında PDF gerekiyor ASP.NET MVC uygulamaları için .NET'yi daha iyi bir seçenek yapar.

ASP.NET MVC uygulamalarında PDF belgeleri oluşturmak, raporlar, faturalar ve indirilebilir içerik oluşturmak için yaygın bir gereksinimdir. iText yıllardır popüler bir seçenek olmasına rağmen, .NET HTML render yetenekleri ile üstün bir modern alternatif sunar. Bu makale, .NET PDF oluşturma ihtiyaçlarınız için bilinçli bir karar vermenize yardımcı olmak amacıyla her iki yaklaşımı da inceler.

Her iki kütüphane de aynı temel problemi çözer -- .NET web ortamında PDF oluşturma -- ancak temelde farklı yaklaşımlar benimserler. iText, PDF'leri bir nesne modeli üzerinden programatik olarak oluştururken, .NET, HTML'yi tam bir Chrome render motoru kullanarak PDF'ye dönüştürür. Bu mimari farkı anlamak, doğru aracı seçmenin anahtarıdır. Microsoft'un ASP.NET MVC framework'ü, her iki entegrasyon modelini de destekler ve her iki kütüphane de standart controller-action hattına bağlanabilir.

Her Kütüphane Nasıl Kurulur?

Herhangi bir kod yazmadan önce her kütüphaneyi projenize dahil etmelisiniz. NuGet, .NET için standart paket yöneticisidir ve her iki kurulumu da sorunsuz bir şekilde gerçekleştirir. iText için, NuGet aracılığıyla eski paketi yükleyin:

dotnet add package iTextSharp
SHELL

IronPDF için, NuGet üzerinden de yükleyin:

dotnet add package IronPdf

IronPDF, Chrome render motorunu paketle birlikte bir araya getirir, bu nedenle sunucunuzda ek bir tarayıcı kurulumu gerektirmez. Kütüphane, Windows, Linux, macOS ve konteyner ortamlarını kutudan çıktığı gibi destekler. Yükledikten sonra, uygulama başlangıcında IronPDF lisans anahtarınızı ekleyin.

MVC'de iText Kullanarak PDF Nasıl Oluşturulur?

iText'i ASP.NET MVC uygulamanızda PDF dosyaları oluşturmak için önce kütüphaneyi NuGet aracılığıyla yükleyin. iText kütüphanesi, Belge sınıfı ve nesne modeli aracılığıyla PDF oluşturma üzerinde düşük düzey kontrol sağlar.

Aşağıdaki kod, MVC kontrolcüsünde iText ile PDF'ler oluşturmak için üretime hazır bir uygulamayı gösterir:

// Production-ready iTextSharp implementation with proper resource disposal
public class ReportController : Controller
{
    private readonly ILogger<ReportController> _logger;

    public ReportController(ILogger<ReportController> logger)
    {
        _logger = logger;
    }

    public ActionResult GeneratePDF()
    {
        try
        {
            using var memoryStream = new MemoryStream();
            using var document = new Document(PageSize.A4, 50, 50, 25, 25);
            using var writer = PdfWriter.GetInstance(document, memoryStream);

            document.Open();
            document.AddTitle("Generated Report");
            document.AddCreationDate();

            var titleFont = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 16);
            document.Add(new Paragraph("Hello World", titleFont));
            document.Add(new Paragraph("This is a PDF document created with iTextSharp"));

            var table = new PdfPTable(3);
            table.AddCell("Header 1");
            table.AddCell("Header 2");
            table.AddCell("Header 3");
            document.Add(table);

            document.Close();

            var pdfBytes = memoryStream.ToArray();
            Response.Headers.Add("Content-Disposition", "inline; filename=report.pdf");
            _logger.LogInformation("PDF generated: {Size} bytes", pdfBytes.Length);
            return File(pdfBytes, "application/pdf");
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "Error generating PDF");
            return StatusCode(500, "Error generating PDF document");
        }
    }
}

iText Çıktısı Nasıl Görünür?

Bir 'Merhaba Dünya' başlığı ve 'Bu, iText ile oluşturulan bir PDF belgesidir' altyazısı ile basit bir belgeye sahip PDF görüntüleyici, kitaplığın programatik PDF oluşturma yeteneklerinin temel metin ve tablo formatlama yeteneklerini gösteren beyaz bir arka plan üzerinde

Bu kod, temel yaklaşımı gösterir: bir Document örneği oluşturun, bir PdfWriter ekleyin bir akışa, eleman nesnelerini kullanarak içerik ekleyin ve bir eylem sonucu ile dosyayı geri döndürün. Uygulama, üretim sistemleri için gerekli olan kaynak bertaraf desenlerini yönetir. Daha gelişmiş senaryolar için özel kağıt boyutları yapılandırabilir, sayfa yönlendirmesini yönetebilir veya sayfa numaraları ekleyebilirsiniz.

Programlamaya dayalı yaklaşım, sayfadaki her öğe üzerinde ince ayarlı kontrol sağlar. Bu hassasiyet, yapısının her zaman aynı olduğu fatura, sertifika veya form gibi sabit düzenlere sahip belgeler oluştururken kullanışlıdır. Ancak, içerik dinamik veya bir HTML şablonu tarafından yönlendirildiğinde bir yük haline gelir.

iText Kütüphanesi ile HTML'den PDF'e Dönüşümün Zorlukları Nelerdir?

iText, programatik PDF oluşturma konusunda mükemmel olsa da, HTML'den PDF'e dönüştürme önemli zorluklar sunar. Kullanım süresi geçmiş HTMLWorker sınıfı ve onun yerine geçen XMLWorker sınıfı sınırlı CSS desteğine sahiptir ve özellikle duyarlı CSS ve JavaScript ile oluşturulan içerik ile uğraşırken modern web içeriği ile mücadele eder.

// HTML conversion with iTextSharp -- note the CSS limitations
public class HtmlToPdfController : Controller
{
    private readonly ILogger<HtmlToPdfController> _logger;

    public HtmlToPdfController(ILogger<HtmlToPdfController> logger)
    {
        _logger = logger;
    }

    public async Task<ActionResult> ConvertHtmlAsync(string htmlContent)
    {
        if (string.IsNullOrWhiteSpace(htmlContent))
            return BadRequest("HTML content is required");

        return await Task.Run(() =>
        {
            using var stream = new MemoryStream();
            using var document = new Document(PageSize.A4);
            using var writer = PdfWriter.GetInstance(document, stream);

            document.Open();

            var cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver(true);
            var fontProvider = new XMLWorkerFontProvider();
            var cssAppliers = new CssAppliersImpl(fontProvider);
            var htmlContext = new HtmlPipelineContext(cssAppliers);
            htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory());

            // Pipeline with limited CSS3 support
            var pdf = new PdfWriterPipeline(document, writer);
            var html = new HtmlPipeline(htmlContext, pdf);
            var css = new CssResolverPipeline(cssResolver, html);

            var worker = new XMLWorker(css, true);
            var parser = new XMLParser(worker);

            using var stringReader = new StringReader(htmlContent);
            parser.Parse(stringReader);
            document.Close();

            return File(stream.ToArray(), "application/pdf", "converted.pdf");
        });
    }
}

iText HTML Renderlemeyi Ne Kadar İyi Yönetir?

PDF görüntüleyicisinde HTML'den dönüştürülmüş bir test belgesi gösteriliyor, metin formatlaması (kalın, italik, kırmızı satır içi metin) korunmuş ve madde işaretli liste mevcut, ancak içerikte belirtilen sarı arka plan eksik, XMLWorkerHelper'ın CSS işleme sınırlamalarını gösteriyor

Bootstrap düzenleri, JavaScript ile oluşturulan içerik veya karmaşık CSS3 stilleriyle çalışırken sınırlamalar belirgin hale gelir. Yaygın sorunlar arasında eksik web yazı tipleri, bozuk duyarlı düzenler ve CSS medya türleri için destek eksikliği bulunur. Ek olarak, iText, HTML içeriği dönüştürürken uluslararası dil karakterleri ve SVG grafikleriyle mücadele eder.

Bu kısıtlamalar sadece kozmetik değil. Müşteri odaklı bir fatura veya rapor, arka plan rengi görünmediği için ya da bir ızgara çöktüğü için yanlış şekilde oluşturulduğunda, PDF amacını yitirir. HTML şablonlarını sürdüren ekipler için, iText'in nesne modeli içindeki aynı düzeni yeniden oluşturmak, her belge tasarımının iki versiyonunu sürdürmek anlamına gelir. Bu kopyalanma maliyet ekler ve web görünümü ile PDF çıktısı arasında uyumsuzluk oluşturur.

Chrome Motoru Kullanarak HTML'den PDF'leri Nasıl Oluşturursunuz?

IronPDF, piksel mükemmelliğinde HTML'den PDF'e dönüşüm sağlamak için bir Chrome render motoru kullanarak PDF oluşturmayı dönüştürüyor. Visual Studio projenizde basit bir yaklaşım ile başlamak için IronPDF NuGet paketini yükleyin.

using IronPdf;

// Configure .NET in Program.cs (top-level statements, .NET 10)
var builder = WebApplication.CreateBuilder(args);

builder.Services.AddSingleton<ChromePdfRenderer>(_ =>
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.MarginTop = 10;
    renderer.RenderingOptions.MarginBottom = 10;
    renderer.RenderingOptions.EnableJavaScript = true;
    renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
    return renderer;
});

builder.Services.AddMemoryCache();
builder.Services.AddControllersWithViews();

var app = builder.Build();
app.MapControllers();
app.Run();
C#

Chrome İşleme Kalitesinden Ne Bekleyebilirsiniz?

'Modern PDF Generation' başlığı ve CSS3, Bootstrap ve JavaScript desteği hakkında alt başlığı gösteren mor gradyan başlıklı bir belgeyi gösteren PDF görüntüleyici, IronPDF'in gelişmiş CSS3 gradyan işleme yeteneklerini sergiliyor

ChromePdfRenderer, karmaşık düzenlerle manuel çözümler olmadan başa çıkar. CSS Grid, Flexbox, Google Fonts'tan web yazı tipleri ve JavaScript grafikleri destekler. Kütüphane ayrıca dinamik içerikler için işleme gecikmelerini yönetir ve duyarlı sayfalar için görünüm alanı yapılandırmasını destekler. Tam yapılandırma seçenekleri için, rendering options reference bölümünü inceleyin.

ASP.NET MVC'de Bir Razor Görünümünü PDF'ye Nasıl Dönüştürürsünüz?

IronPDF, Razor Motoru görünüm oluşturma yetenekleriyle öne çıkar. ViewBag, ViewData ve model bağlamayı tam destekle, tüm Razor görünümlerini doğrudan PDF'ye dönüştürebilirsiniz. Aşağıdaki örnek, bir fatura görünümünü sunucu tarafında işler ve indirilebilir bir PDF olarak döndürür:

// Production-ready Razor view to PDF
public class InvoiceController : Controller
{
    private readonly ChromePdfRenderer _pdfRenderer;
    private readonly IInvoiceService _invoiceService;
    private readonly IRazorViewToStringRenderer _razorRenderer;

    public InvoiceController(
        ChromePdfRenderer pdfRenderer,
        IInvoiceService invoiceService,
        IRazorViewToStringRenderer razorRenderer)
    {
        _pdfRenderer = pdfRenderer;
        _invoiceService = invoiceService;
        _razorRenderer = razorRenderer;
    }

    [HttpGet]
    public async Task<IActionResult> DownloadInvoiceAsync(int id)
    {
        var invoice = await _invoiceService.GetInvoiceAsync(id);
        if (invoice == null) return NotFound();

        var htmlContent = await _razorRenderer.RenderViewToStringAsync(
            "Invoice/InvoiceTemplate", invoice);

        var renderOptions = new ChromePdfRenderOptions
        {
            PaperSize = PdfPaperSize.A4,
            MarginTop = 20,
            MarginBottom = 20,
            PrintHtmlBackgrounds = true,
            CreatePdfFormsFromHtml = true
        };

        var pdf = await Task.Run(() =>
            _pdfRenderer.RenderHtmlAsPdf(htmlContent, renderOptions));

        pdf.MetaData.Title = $"Invoice-{invoice.InvoiceNumber}";
        pdf.MetaData.Subject = $"Invoice for {invoice.CustomerName}";

        var fileName = $"Invoice-{invoice.InvoiceNumber}-{DateTime.UtcNow:yyyyMMdd}.pdf";
        return File(pdf.BinaryData, "application/pdf", fileName);
    }
}

Razor Görünüm Dönüşümü Manuel Oluşturma ile Nasıl Karşılaştırılır?

ASP.NET Core web uygulaması ana sayfasının, gezinme menüsü, karşılama başlığı ve footer (altbilgi) ile korunan Bootstrap stilini gösteren PDF renderı, web sayfası düzenlerinin PDF formatına nasıl dönüştüğünü gösteriyor

Kodla doküman yapısını manuel olarak oluşturmayı gerektiren iText'in yaklaşımı ile karşılaştırın. Her başlık, tablo hücresi, yazı tipi seçimi ve boşluk ayarı bir C# nesnesi olarak ifade edilmelidir. Tarayıcıda yinelemek için herhangi bir HTML şablonu yok; her değişiklik, PDF çıktısına karşı derleme ve kontrol döngüsü gerektirir.

IronPDF'in Razor entegrasyonu, PDF oluşturma için mevcut Razor görünümlerini, HTML dosyalarını veya HTML dizelerini yeniden kullanmanıza olanak tanır. Ayrıca, varlık yüklemesi için temel URL yapılandırmalarını uygulayabilir veya HTML ZIP dosyaları ile çalışabilirsiniz. CSHTML to PDF nasıl yapılır kılavuzu, bağımlılık enjeksiyonu kurulumu dahil, tam Razor renderı deseni boyunca rehberlik eder.

Dosya İndirme ve Akış Yoluyla Nasıl PDF Oluşturursunuz?

Her iki kütüphane de web uygulamalarında PDF dosyaları için çeşitli çıktı yöntemlerini destekler. IronPDF, PDF sıkıştırma, hızlı web görüntülemesi için lineerleştirme ve resimlere dönüştürme gibi ek özellikler sunar. Aşağıdaki akış denetleyicisi, caching ve aralık istek desteğiyle büyük PDF'lerin nasıl ele alınacağını gösterir:

// Streaming controller for large PDFs
public class StreamingPdfController : Controller
{
    private readonly ChromePdfRenderer _ironPdfRenderer;
    private readonly IMemoryCache _cache;

    public StreamingPdfController(ChromePdfRenderer ironPdfRenderer, IMemoryCache cache)
    {
        _ironPdfRenderer = ironPdfRenderer;
        _cache = cache;
    }

    [HttpGet]
    public async Task<IActionResult> StreamLargePdf(string reportId)
    {
        var cacheKey = $"pdf_stream_{reportId}";
        if (_cache.TryGetValue<byte[]>(cacheKey, out var cachedPdf))
            return File(cachedPdf, "application/pdf", $"report_{reportId}.pdf");

        Response.ContentType = "application/pdf";
        Response.Headers.Add("Content-Disposition",
            $"attachment; filename=large_report_{reportId}.pdf");

        await using var stream = Response.BodyWriter.AsStream();
        var html = await GenerateLargeHtmlReport(reportId);
        var pdf = _ironPdfRenderer.RenderHtmlAsPdf(html);
        pdf.SaveAs(stream);

        if (pdf.BinaryData.Length < 10_000_000)
            _cache.Set(cacheKey, pdf.BinaryData, TimeSpan.FromMinutes(30));

        return new EmptyResult();
    }

    [HttpGet]
    public IActionResult DownloadWithRangeSupport(string documentId)
    {
        var pdfBytes = GetPdfBytes(documentId);
        return File(pdfBytes, "application/pdf",
            $"document_{documentId}.pdf", enableRangeProcessing: true);
    }
}

Gelişmiş senaryolar için IronPDF, paralel PDF oluşturma, çok iş parçacıklı işleme ve toplu işlemler destekler. Özel günlükleme uygulayabilir, ağ kimlik doğrulaması yapabilir, çerezlerle çalışabilir ve güvenli belge oluşturma için HTTP istek başlıkları ekleyebilirsiniz.

İki Kütüphane Yan Yana Nasıl Karşılaştırılır?

Aşağıdaki tablo, ASP.NET MVC projeleri için iText ve .NET arasındaki temel farkları özetler:

iText vs. .NET -- ASP.NET MVC için Özellik Karşılaştırması
ÖzellikiTextIronPDF
HTML'den PDF'ye dönüştürmeSınırlı (XMLWorker, modern CSS3 yok)Tam Chrome motoru (CSS3, JS, Flexbox)
Razor / CSHTML desteğiYerel destek yokDahili Razor görünüm renderı
İş parçacığı güvenliğiManuel kilitleme gerektirirVarsayılan olarak thread-safe
Asenkron APIYerel async yokTam async desteği
Linux / DockerDestekleniyorDestekleniyor
Lisans türüAGPL (açık kaynak) veya ticariÜcretli, ücretsiz deneme sürümü ile
Dijital imzalarEvetEvet
PDF formlarıEvet (manuel)Evet (HTML form elemanlarından)

iText, programatik PDF oluşturma için ayrıntılı kontrol sunar, bu da belge yapısı basit ve sabit olduğunda çalışabilir bir seçenek haline getirir. IronPDF, HTML şablonları veya Razor görünümlerini profesyonel PDF belgelerine dönüştürmeniz gerektiğinde daha güçlü bir seçenek sunar, kesin renderı, tam CSS3 desteği ve JavaScript yürütmesi ile.

Üretim ASP.NET uygulamaları için .NET, modern .NET kalıpları ile entegrasyon ve bağımlılık enjeksiyonu ve middleware boru hatları dahil olmak üzere üstün async desteği sağlar. Razor görünümleri renderı, dijital imza ve karmaşık düzenleri ele alma kapasiteleri, onu kurumsal uygulamalar için tercih edilen bir seçenek yapar. Kütüphane ayrıca Blazor Sunucu uygulamaları ve arşiv belgeleri için PDF/A uyumluluğunu destekler.

Lisanslama ve Proje Dikkatleri Neler?

iText kütüphanesi, açık kaynak versiyonu için bir AGPL lisansı kullanır, bu da uygulamanızın kodunun da açık kaynak olmasını gerektirir. iText Group tarafından tescilli projeler için ticari lisanslar mevcut. Özellikle kaynak kodu yayınlayamayacağınız SaaS ürünleri veya dahili kurumsal araçlar için bu lisanslama önemli.

IronPDF, geliştirme ve test için ücretsiz deneme ile ticari bir lisanslama modeli kullanır. Lisanslar, dağıtım ortamına göre ölçeklenir: geliştirici, tek sunucu veya sınırsız dağıtım seçenekleri. Her iki çözümü de uygularken, Docker, Azure ve Linux ortamları dahil dağıtım senaryolarını düşünün.

Yüksek trafikli senaryolar için performans dikkati, async işlemler, uygun bellek yönetimi ve cache stratejileri uygulanmasını içerir. IronPDF'nin Chrome motoru, karmaşık HTML renderleme için üstün performans sağlar, oysa iText, HTML içermeyen basit programatik PDF oluşturma için daha verimli olabilir. Dakikada yüzlerce PDF oluşturan uygulamalar için, gerçekçi yük altında yapılan benchmarking, hangi kütüphanenin altyapınıza daha uygun olduğunu belirlemek için en güvenilir kılavuzdur.

Çoğu MVC projesi için iText'ten IronPDF'ye geçiş basittir. Ana değişiklik, manuel doküman oluşturma kodunun Chrome motoru tarafından renderlanan bir HTML şablonu ile değiştirilmesidir. IronPDF, geçişlerin sorunsuz olmasını sağlamak için geniş dokümantasyon, kod örnekleri ve mühendislik desteği sağlar.

Sonraki Adımlarınız Neler?

Modern web standartları desteğine sahip HTML'yi PDF'e dönüştüren yeni projeler için IronPDF, Chrome tabanlı renderı ile açıkça avantaj sağlar. Temel PDF oluşturma için zaten iText kullanan eski projeler, HTML renderleme doğruluğu bir gereksinim haline gelmedikçe mevcut uygulamaları ile devam edebilirler.

IronPDF'in ücretsiz denemesi ile başlayın ve mevcut Razor görünümleriniz veya HTML şablonlarınızla doğrudan test edin. Tam dokümantasyon ve API referansını inceleyin ve entegrasyonun ne kadar hızlı olduğuna bakın. Mevcut iText tabanlı bir projeyi taşıma konusunda sorularınız varsa veya PDF bellek akışı yönetimi ve PDF/A uyumluluğu konusunda rehberliğe ihtiyacınız varsa, destek ekibi yardıma hazırdır.

IronPDF ve iText ürün ailesinin nasıl karşılaştırıldığını daha geniş bir perspektiften görmek için özel iText vs. IronPDF karşılaştırma sayfasına bakın.

Lütfen dikkate alın: iText, ilgili sahibinin tescilli markasıdır. Bu site, iText ile ilişkili, onaylanmış veya sponsor olunmuş değildir. Tüm ürün adları, logolar ve markalar kendi sahiplerine aittir. Karşılaştırmalar, yalnızca bilgilendirme amaçlıdır ve yazı sırasında halka açık bilgilerle alakalı olarak yansıtılmaktadır.
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ılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez