IRONSOFTWAREHOME
IRONPDF KULLANARAK

IronPDF Kullanarak Blazor'da PDF Görüntüleyici Nasıl Oluşturulur

Curtis Chau
Curtis Chau
Updated: 23 Nisan 2026

ASP.NET PDF dosyası yazdırma görevleri, genellikle geliştiricilerin sık karşılaştığı belirli zorlukları içerir. Faturalar, raporlar veya sevkiyat etiketleri için PDF belgeleri oluşturuyor olsanız da, güvenilir yazdırma işlevselliğini uygulamak, sunucu-müşteri mimarisi karmaşıklıklarını yönetmeyi gerektirir.

PDF yazdırma görevlerini, IronPDF'nin .NET için güçlü PDF kütüphanesini kullanarak nasıl yöneteceğinizi göstereceğiz.

Zorluğu Anlamak

Geleneksel masaüstü uygulamaları doğrudan varsayılan yazıcıya erişebilir, ancak ASP.NET Core uygulamaları PDF belgeleri yazdırırken birkaç engelle karşılaşır:

// This fails in ASP.NET - wrong approach
Process.Start(@"C:\Files\document.pdf"); // Works locally, crashes on server

Yukarıdaki kod yaygın bir hatayı göstermektedir. Sunucu ortamında doğrudan yazıcı erişimi yoktur ve sistem, IIS izin kısıtlamaları nedeniyle hatalar verir. Hatırlanması gereken bir diğer şey, web uygulamalarının hem sunucu tarafı hem de müşteri tarafı yazdırma senaryolarını etkili bir şekilde ele alması gerektiğidir.

IronPDF Kullanımına Başlama

IronPDF, PDF belgeleri oluşturmak ve bunları Adobe Reader gibi harici bağımlılıklar olmadan yazdırmak için eksiksiz bir .NET core çözümü sağlar. IronPDF paketini NuGet ile yükleyelim:

PM > Install-Package IronPdf

Bu .NET kütüphanesi, diğer kütüphanelerin yaşadığı uyumluluk sorunlarını ortadan kaldırarak işletim sistemleri arasında sorunsuz çalışır. Bu araç, Microsoft Windows ve diğer OS ortamlarında iyi çalışır.

Varsayılan Yazıcı ile Sunucu Tarafında PDF Belgeleri Oluşturma ve Yazdırma

ASP.NET denetleyicinizde HTML işaretlemeden bir PDF belgesi oluşturma ve yazdırmayı nasıl yapacağınız aşağıda açıklanmıştır:

using IronPdf;
using Microsoft.AspNetCore.Mvc;
using System.Drawing; 
public class PdfController : Controller
{
    public IActionResult Index()
    {
        // Initialize the renderer
        var renderer = new ChromePdfRenderer();
        // Configure print-optimized settings
        renderer.RenderingOptions.PrintHtmlBackgrounds = true;
        renderer.RenderingOptions.MarginBottom = 10;
        renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
        // Generate PDF from HTML
        var pdf = renderer.RenderHtmlAsPdf("<h1>Invoice</h1><p>Total: $999</p>");
        // Print to default printer
        pdf.Print();
        return Ok("Document sent to printer");
    }
}
C#

ChromePdfRenderer, stil ve yazı tipi boyutu biçimlendirmesini koruyarak dönüşümü yönetir. Bu örnek, kullanıcı etkileşimi olmadan varsayılan yazıcıya basit yazdırmayı gösterir.

Çıktı

Ağ Yazıcısı Yapılandırması

Özgörevsel ortamlarda belirli yazıcı yönlendirmesi gerektiren:

public IActionResult PrintToNetworkPrinter(string filePath)
{
    // Load existing PDF file
    var pdfDocument = PdfDocument.FromFile(filePath);
    // Get print document for advanced settings
    var printDocument = pdfDocument.GetPrintDocument();
    // Specify network printer
    printDocument.PrinterSettings.PrinterName = @"\\server\printer";
    printDocument.PrinterSettings.Copies = 2;
    // Configure page settings
    printDocument.DefaultPageSettings.Landscape = false;
    var renderer = printDocument.PrinterSettings.PrinterResolution;
    // Execute print
    printDocument.Print();
    return Json(new { success = true });
}

Bu yaklaşım, doğru çizim ve yerleşimi sağlamak için kağıt formatı ve çözünürlük dahil olmak üzere yazıcı ayarları üzerinde tam kontrol sağlar.

Çıktı

ASP.NET içinde PDF Dosyalarını Programlı Olarak Yazdırma: Şekil 2 - Ağ yazıcısı ile PDF yazdırma

Yazdırma Onayı

ASP.NET içinde PDF Dosyalarını Programlı Olarak Yazdırma: Şekil 3 - PDF yazdırma görevinde başarı mesajı

Müşteri Tarafı Yazdırma Stratejisi

Tarayıcılar doğrudan yazıcı erişimini kısıtladığından, müşteri tarafında yazdırmayı, PDF dosyasını indirme için sağlayarak uygulayın:

public IActionResult GetRawPrintablePdf()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(GetInvoiceHtml());
        // This header tells the browser to display the file inline.
        // We use IHeaderDictionary indexer to prevent ArgumentException.
        **HttpContext context**.Response.Headers["Content-Disposition"] = "inline; filename=invoice.pdf";
        return File(pdf.BinaryData, "application/pdf");
    }
    public IActionResult PrintUsingClientWrapper()
    {
        var printUrl = Url.Action(nameof(GetRawPrintablePdf));
        // Use a simple HTML/JavaScript wrapper to force the print dialog
        var html = new StringBuilder();
        html.AppendLine("<!DOCTYPE html>");
        html.AppendLine("<html lang=\"en\">");
        html.AppendLine("<head>");
        html.AppendLine("    <title>Print Document</title>");
        html.AppendLine("</head>");
        html.AppendLine("<body>");
        // Load the PDF from the 'GetRawPrintablePdf' action into an invisible iframe.
        html.AppendLine($"    <iframe src='{printUrl}' style='position:absolute; top:0; left:0; width:100%; height:100%; border:none;'></iframe>");
        html.AppendLine("    <script>");
        // Wait for the iframe (and thus the PDF) to load, then trigger the print dialog.
        html.AppendLine("        window.onload = function() {");
        html.AppendLine("            // Wait briefly to ensure the iframe content is rendered before printing.");
        html.AppendLine("            setTimeout(function() {");
        html.AppendLine("                window.print();");
        html.AppendLine("            }, 100);");
        html.AppendLine("        };");
        html.AppendLine("    </script>");
        html.AppendLine("</body>");
        html.AppendLine("</html>");
        return Content(html.ToString(), "text/html");
    }
    private string GetInvoiceHtml()
    {
        // Build HTML with proper structure
        return @"
        <html>
        <head>
            <style>
                body { font-family: Arial, sans-serif; }
                .header { font-weight: bold; color: #1e40af; border-bottom: 2px solid #3b82f6; padding-bottom: 5px; }
                .content { padding-top: 10px; }
            </style>
        </head>
        <body>
            <div class='header'>Invoice Summary (Client View)</div>
            <div class='content'>
                <p>Document content: This file is optimized for printing.</p>
                <p>Total Amount: <b>$999.00</b></p>
            </div>
        </body>
        </html>";
    }
C#

PDF belgesi, kullanıcıların standart tarayıcı yazdırma diyaloglarını kullanarak varsayılan yazıcıları aracılığıyla yazdırmayı tetikleyebileceği tarayıcıda açılır. Bu yaklaşım, yazdırma için doğrudan sunucu tarafı bir istek yapmaktan üstündür.

Çıktı

ASP.NET içinde PDF Dosyalarını Programlı Olarak Yazdırma: Şekil 4 - İstemci Tarafı Yazdırma Yazıcı Diyaloğu

Çeşitli Kaynak Kod Girişleriyle Çalışma

IronPDF, geliştiricilerin dinamik yazdırma kodu oluşturmak isteyenler için önemli olan çeşitli kaynak kod girdilerini esnek bir şekilde işler:

public async Task<IActionResult> PrintFromMultipleSources()
{
    var renderer = new ChromePdfRenderer();
    // From URL
    var pdfFromUrl = await renderer.RenderUrlAsPdfAsync("https://example.com");
    // From HTML file path
    var pdfFromFile = renderer.RenderHtmlFileAsPdf(@"Templates\report.html");
    var pdfToStream = renderer.RenderHtmlAsPdf("<h2>PDF from Memory Stream</h2><p>This content was loaded into memory first.</p>");
// Now, write the valid PDF bytes to the stream
using (var stream = new MemoryStream(pdfToStream.BinaryData))
{
    var pdfFromStream = new PdfDocument(stream);
    // Example: Print the PDF loaded from the stream
    // pdfFromStream.Print(); 
}
pdfFromUrl.Print();
// Logging the various files handled
    var fileList = new List<string> { "URL", "File Path", "Memory Stream" };
return Ok("PDF documents processed and 'example.com' printed to default server printer.");
}

Yukarıdaki satırlar, işlenen dosya kaynaklarının yeni bir listesinin nasıl oluşturulacağını gösterir. Her yöntem, yazdırma kalitesini korurken belge yapısını ve grafikleri korur.

ASP.NET içinde PDF Dosyalarını Programlı Olarak Yazdırma: Şekil 5

Hata İşleme ve Kaydetme

Üretim ortamları için sağlam hata işlemleri uygulayın:

using System.Drawing.Printing; // For PrinterSettings
// ... other usings ...
public IActionResult SafePrint(string documentId)
{
    try
    {
        var pdf = LoadPdfDocument(documentId);
        // Verify printer availability
        if (!PrinterSettings.InstalledPrinters.Cast<string>()
            .Contains("Target Printer"))
        {
            // Log error and handle gracefully
            return BadRequest("Printer not available");
        }
        pdf.Print();
        // Log successful output
        return Ok($"Document {documentId} printed successfully");
    }
    catch (Exception ex)
    {
        // Log error details
        return StatusCode(500, "Printing failed");
    }
}

Bu, sistem kaynakları mevcut olmadığında bile güvenilir yazdırmayı sağlar ve yazdırma hizmetinizin önemli bir parçasıdır.

Çıkış Senaryoları

Yazıcı Kullanılamıyor

Koddaki belirtilen yazıcı müsait değilse, kod bu hata mesajını verecektir:

ASP.NET içinde PDF Dosyalarını Programlı Olarak Yazdırma: Şekil 6 - Yazıcı kullanılamıyor hatası

PDF Başarıyla Yazdırıldı

PDF'niz başarıyla yazdırıldıysa, aşağıdaki gibi bir onay mesajı görmelisiniz:

ASP.NET içinde PDF Dosyalarını Programlı Olarak Yazdırma: Şekil 7 - PDF Yazdırma başarı mesajı

Gelişmiş Yapılandırma

IronPDF'nin klasör yapısı, karmaşık senaryoları destekler. Kullandığınız IronPDF kütüphane sürümü bu ayarları etkileyebilir:

public IActionResult ConfigureAdvancedPrinting(object sender, EventArgs e)
{
    var renderer = new ChromePdfRenderer();
    // Configure rendering options
    renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
    renderer.RenderingOptions.EnableJavaScript = true;
    renderer.RenderingOptions.RenderDelay = 500; // Wait for dynamic content
    // Generate complex PDF documents
    var pdf = renderer.RenderHtmlAsPdf(GetDynamicContent());
    // Apply security settings
    pdf.SecuritySettings.AllowUserPrinting = true;
    pdf.MetaData.Author = "Your Company";
    return File(pdf.BinaryData, "application/pdf");
}

Yazdırma komutu, belge oluşturulduktan sonra sadece pdf.Print()'tir.

IronPrint Alternatifi

Özel yazdırma gereksinimleri için Iron Software ayrıca geliştirilmiş çapraz platform desteğiyle IronPrint'i sunar, bu da kendine ait bir .NET yazdırma kütüphanesidir. Web sitelerinde daha fazla bilgi için bir bağlantı bulabilirsiniz. Ana parametre, dosya yoludur. Ürün açıklaması, kendi web sitelerinde mevcuttur.

Sonuç

IronPDF, ASP.NET PDF yazdırmayı karmaşık bir zorluktan kolay bir uygulamaya dönüştürür. Adobe Reader veya harici bağımlılıklar gerektirmeden, PDF dosyalarını minimum kodla oluşturabilir ve yazdırabilirsiniz. PDF kütüphanesi, HTML dönüşümüden yazıcı yapılandırmasına kadar her şeyi yönetir, bu da onu hem sunucu tarafı otomasyon hem de müşteri tarafı yazdırma senaryoları için ideal kılar.

PDF yazdırma iş akışınızı düzene koymaya hazır mısınız? Bugün ücretsiz deneme ile ücretsiz başlayın ve IronPDF'nin ASP.NET uygulamalarınızda belge işlemeyi nasıl basitleştirdiğini deneyimleyin. Kapsamlı belgeler ve doğrudan mühendislik desteği ile birkaç dakika içinde üretime hazır PDF yazdırmayı çalışır hale getireceksiniz.

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