ASP.NET Framework Web Uygulamasında C# ile Yazdırma

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPrint'in PrintAsync yöntemi, ASP.NET web uygulamalarında engellemesiz belge yazdırmayı mümkün kılar ve yazdırma istekleri işlenirken kullanıcı arayüzünün donmasını önler. Bu asenkron yaklaşım, web uygulamalarının baskı işlemlerini engellemeden ele almasını sağlar.

Web uygulamaları genellikle nihai çıktı olarak belge yazdırma gereksinimine sahiptir. Baskı işlevselliğinin web uygulamalarıyla entegrasyonu, özellikle asenkron işlemlerle uğraşırken zorluklar sunar. IronPrint bunu PrintAsync işleviyle çözer. Bu eğitimde, engelleme yapmadan belgeleri PRINT eden bir web uygulaması oluşturmak için .NET Core ile PrintAsync'nin nasıl uygulanacağı gösterilmektedir.

Uygulamadan önce, IronPrint'in özellikleri dahil olmak üzere yazıcı bilgisi edinme ve özel baskı ayarları sunduğunu unutmayın. Bu yetenekler, sağlam baskı işlevselliği gerektiren kurumsal ASP.NET uygulamaları için idealdir.

Hızlı Başlangıç: ASP.NET'de Asenkron PDF Yazdırma

  1. IronPrint'i NuGet aracılığıyla yükleyin: Install-Package IronPrint
  2. IronPrint'yi denetleyici dosyasına içe aktarın
  3. Yöntemi tetiklemek için bir yazdırma düğmesi ekleyin
  4. Denetleyici eyleminde await Printer.PrintAsync("file.pdf")'yi çağırın
  5. Düğmeye basıldığında belgenin yazdırılmasını doğrulayın
  1. IronPrint aşağıdaki NuGet Paket Yöneticisi ile yükleyin

    PM > Install-Package IronPrint
  2. Bu kod parçacığını kopyalayın ve çalıştırın.

    return await IronPrint.Printer.PrintAsync("Basic.pdf");
  3. Canlı ortamınızda test için dağıtım yapın

    Ücretsiz deneme ile bugün projenizde IronPrint kullanmaya başlayın

    arrow pointer

IronPrint ile başlayın

Bugün IronPrint ile projenizde ücretsiz bir deneme ile başlayın.

İlk Adım:
green arrow pointer


ASP.NET'de Asenkron PDF Yazdırmayı Nasıl Gerçekleştiririm?

Bu örnek, PrintAsync yöntemini kullanarak bir ASP.NET Web Uygulaması (.NET Framework) projesinde bir PDF dosyasının eşzamansız olarak yazdırılmasını göstermektedir. PrintAsync, PRINT'i eşzamansız olarak başlatır ve iş parçacıklarını engelleyen eşzamanlı Print yöntemlerine kıyasla uygulamanın yanıt verebilirliğini korur.

Asenkron yaklaşım, birden fazla kullanıcının aynı anda yazdırma işlemleri başlatabileceği web uygulamaları için kritiktir. Eşzamanlı Print yönteminden farklı olarak, PrintAsync, uygulamanızın performans düşüşü yaşamadan eşzamanlı istekleri işleyebilmesini sağlar.

Yazdırma Düğmesini Nereye Eklemeliyim?

'Index.cshtml' (ya da ana sayfa görünümünüz) sayfanıza tıklama ile etkileşime girecek bir düğme ekleyin. Bu düğme, denetleyicinizde ActionResult yöntemini çağırır:

@{
    ViewBag.Title = "Home Page";
}

<main>
    <section class="row" aria-labelledby="aspnetTitle">
        <h1 id="title">ASP.NET</h1>
        <p>

            <a class="btn btn-primary btn-md" onclick="location.href='@Url.Action("PrintPdf", "Home")'">Print PDF</a>
        </p>
    </section>
</main>
@{
    ViewBag.Title = "Home Page";
}

<main>
    <section class="row" aria-labelledby="aspnetTitle">
        <h1 id="title">ASP.NET</h1>
        <p>

            <a class="btn btn-primary btn-md" onclick="location.href='@Url.Action("PrintPdf", "Home")'">Print PDF</a>
        </p>
    </section>
</main>
HTML

PDF'leri oluşturmak için gezinme menüsünü ve mavi


PrintAsync'i Denetleyicime Nasıl Yapılandırırım?

HomeController dosyanızda, PrintAsync yöntemini uygulayın. Bu yöntem, uygulama yanıtını artırmak için asenkron olarak yazdırma işlemlerini gerçekleştirir. Uygulamadan önce, üretim kullanımı için uygun lisans anahtarı yapılandırmasını gerçekleştirdiğinizden emin olun.

using IronPrint;
using System.Threading.Tasks;
using System.Web.Mvc;

namespace WebApplication4.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";
            return View();
        }

        public ActionResult Contact()
        {
            return View();
        }

        // Action method to handle the printing operation
        // This makes use of the PrintAsync method to avoid blocking the main thread
        public ActionResult PrintPdf()
        {
            // Wait for the asynchronous print operation to complete
            Printer.PrintAsync("Basic.pdf").Wait();

            // Return some view, for example, a confirmation page or the index page
            return View(); // Replace with an appropriate view
        }
    }
}
using IronPrint;
using System.Threading.Tasks;
using System.Web.Mvc;

namespace WebApplication4.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";
            return View();
        }

        public ActionResult Contact()
        {
            return View();
        }

        // Action method to handle the printing operation
        // This makes use of the PrintAsync method to avoid blocking the main thread
        public ActionResult PrintPdf()
        {
            // Wait for the asynchronous print operation to complete
            Printer.PrintAsync("Basic.pdf").Wait();

            // Return some view, for example, a confirmation page or the index page
            return View(); // Replace with an appropriate view
        }
    }
}
Imports IronPrint
Imports System.Threading.Tasks
Imports System.Web.Mvc

Namespace WebApplication4.Controllers
	Public Class HomeController
		Inherits Controller

		Public Function Index() As ActionResult
			Return View()
		End Function

		Public Function About() As ActionResult
			ViewBag.Message = "Your application description page."
			Return View()
		End Function

		Public Function Contact() As ActionResult
			Return View()
		End Function

		' Action method to handle the printing operation
		' This makes use of the PrintAsync method to avoid blocking the main thread
		Public Function PrintPdf() As ActionResult
			' Wait for the asynchronous print operation to complete
			Printer.PrintAsync("Basic.pdf").Wait()

			' Return some view, for example, a confirmation page or the index page
			Return View() ' Replace with an appropriate view
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

Gelişmiş senaryolar için, uygun async/await desenlerini uygulayın ve baskı işlemini özelleştirin. Hata yönetimi ve özel baskı ayarlarını gösteren geliştirilmiş bir örnek:

using IronPrint;
using System;
using System.Threading.Tasks;
using System.Web.Mvc;

namespace WebApplication4.Controllers
{
    public class HomeController : Controller
    {
        // Async action method with proper error handling
        public async Task<ActionResult> PrintPdfAdvanced()
        {
            try
            {
                // Create custom print settings
                var printSettings = new PrintSettings
                {
                    // Select specific printer
                    PrinterName = "Microsoft Print to PDF",
                    // Set paper size
                    PaperSize = PaperSize.A4,
                    // Configure orientation
                    PaperOrientation = PaperOrientation.Portrait,
                    // Set number of copies
                    NumberOfCopies = 1,
                    // Configure DPI for high-quality output
                    Dpi = 300
                };

                // Print asynchronously with custom settings
                await Printer.PrintAsync("Basic.pdf", printSettings);

                // Log successful print operation (optional)
                System.Diagnostics.Debug.WriteLine("Document printed successfully");

                // Return success view or redirect
                TempData["PrintMessage"] = "Document sent to printer successfully!";
                return RedirectToAction("Index");
            }
            catch (Exception ex)
            {
                // Handle printing errors gracefully
                System.Diagnostics.Debug.WriteLine($"Printing error: {ex.Message}");
                TempData["ErrorMessage"] = "Unable to print document. Please try again.";
                return RedirectToAction("Index");
            }
        }
    }
}
using IronPrint;
using System;
using System.Threading.Tasks;
using System.Web.Mvc;

namespace WebApplication4.Controllers
{
    public class HomeController : Controller
    {
        // Async action method with proper error handling
        public async Task<ActionResult> PrintPdfAdvanced()
        {
            try
            {
                // Create custom print settings
                var printSettings = new PrintSettings
                {
                    // Select specific printer
                    PrinterName = "Microsoft Print to PDF",
                    // Set paper size
                    PaperSize = PaperSize.A4,
                    // Configure orientation
                    PaperOrientation = PaperOrientation.Portrait,
                    // Set number of copies
                    NumberOfCopies = 1,
                    // Configure DPI for high-quality output
                    Dpi = 300
                };

                // Print asynchronously with custom settings
                await Printer.PrintAsync("Basic.pdf", printSettings);

                // Log successful print operation (optional)
                System.Diagnostics.Debug.WriteLine("Document printed successfully");

                // Return success view or redirect
                TempData["PrintMessage"] = "Document sent to printer successfully!";
                return RedirectToAction("Index");
            }
            catch (Exception ex)
            {
                // Handle printing errors gracefully
                System.Diagnostics.Debug.WriteLine($"Printing error: {ex.Message}");
                TempData["ErrorMessage"] = "Unable to print document. Please try again.";
                return RedirectToAction("Index");
            }
        }
    }
}
Imports IronPrint
Imports System
Imports System.Threading.Tasks
Imports System.Web.Mvc

Namespace WebApplication4.Controllers
    Public Class HomeController
        Inherits Controller

        ' Async action method with proper error handling
        Public Async Function PrintPdfAdvanced() As Task(Of ActionResult)
            Try
                ' Create custom print settings
                Dim printSettings As New PrintSettings With {
                    ' Select specific printer
                    .PrinterName = "Microsoft Print to PDF",
                    ' Set paper size
                    .PaperSize = PaperSize.A4,
                    ' Configure orientation
                    .PaperOrientation = PaperOrientation.Portrait,
                    ' Set number of copies
                    .NumberOfCopies = 1,
                    ' Configure DPI for high-quality output
                    .Dpi = 300
                }

                ' Print asynchronously with custom settings
                Await Printer.PrintAsync("Basic.pdf", printSettings)

                ' Log successful print operation (optional)
                System.Diagnostics.Debug.WriteLine("Document printed successfully")

                ' Return success view or redirect
                TempData("PrintMessage") = "Document sent to printer successfully!"
                Return RedirectToAction("Index")
            Catch ex As Exception
                ' Handle printing errors gracefully
                System.Diagnostics.Debug.WriteLine($"Printing error: {ex.Message}")
                TempData("ErrorMessage") = "Unable to print document. Please try again."
                Return RedirectToAction("Index")
            End Try
        End Function
    End Class
End Namespace
$vbLabelText   $csharpLabel

Bu geliştirilmiş uygulama Baskı Ayarları kılavuzundan kavramları sergiler, yazıcı adlarını belirtmek, kağıt boyutlarını yapılandırmak ve hataları uygun şekilde ele almak gibi.

Web ortamlarında yazıcı seçimiyle çalışırken, erişilebilir yazıcı listelerini dinamik olarak doldurmak için Yazıcı Adları Alma işlevselliğinden yararlanın:

// Get list of available printers
public ActionResult GetAvailablePrinters()
{
    var printers = Printer.GetPrinterNames();
    ViewBag.PrinterList = new SelectList(printers);
    return View();
}
// Get list of available printers
public ActionResult GetAvailablePrinters()
{
    var printers = Printer.GetPrinterNames();
    ViewBag.PrinterList = new SelectList(printers);
    return View();
}
' Get list of available printers
Public Function GetAvailablePrinters() As ActionResult
    Dim printers = Printer.GetPrinterNames()
    ViewBag.PrinterList = New SelectList(printers)
    Return View()
End Function
$vbLabelText   $csharpLabel

Kullanıcı etkileşim gerektiren senaryolar için, bir Diyalog ile Yazdırma yaklaşımını uygulamayı düşünün, ancak bu masaüstü uygulamalarına daha uygundur.

Üretime Uygulama Yayımı için Ek Hususlar

IronPrint ile ASP.NET uygulamanızın dağıtımını yaparken bu faktörleri göz önünde bulundurun:

  1. Lisans Yapılandırması: ASP.NET uygulamaları için Web.config'de lisans anahtarınızı yapılandırın. Uygun kurulum için Web.config'de Lisans Anahtarı Ayarlama kılavuzuna bakın.

  2. Yazıcı Erişimi: Uygulama havuz kimliği, yerel veya ağ yazıcılarına erişim izinlerine sahip olduğundan emin olun. Belgelerinizi Yazdırın belgesi yazıcı erişimi gerekliliklerini sağlar.

  3. Hata Yönetimi: Çevrimdışı yazıcılar veya erişilemeyen belgeler için sağlam hata yönetimi uygulayın. Teknik sorunlar için, Mühendislik Talebi sürecini kullanarak karmaşık sorunları çözün.

  4. Performans: Yoğun hacimli baskı işlemleri için, baskı isteklerini verimli bir şekilde yönetmek için bir sıra sistemi uygulayın. Asenkron PrintAsync bu tür uygulamalar için idealdir.

Kapsamlı PRINT özellikleri için, IronPrint ad alanında bulunan tüm yöntem ve özelliklerin ayrıntılı belgelerine API Referansı'ndan bakabilirsiniz.

Sıkça Sorulan Sorular

ASP.NET Framework uygulamalarında eşzamansız PDF yazdırmayı nasıl uygularım?

IronPrint'in PrintAsync yöntemi kullanılarak asenkron PDF yazdırma işlemi gerçekleştirebilirsiniz. Kontrolör eyleminize `return await IronPrint.Printer.PrintAsync("yourfile.pdf");` satırını ekleyin. Bu engelleyici olmayan yaklaşım, yazdırma isteklerini işlerken web uygulamanızın yanıt vermeye devam etmesini sağlar ve belge yazdırma işlemleri sırasında kullanıcı arayüzünün donmasını önler.

Web uygulamalarında neden senkron baskı yerine asenkron baskı kullanmalıyım?

IronPrint'in PrintAsync yöntemiyle asenkron baskı, birçok kullanıcının aynı anda baskı işlemlerini tetikleyebileceği web uygulamaları için kritiktir. Eşzamanlı Print yöntemlerinin iş parçacıklarını engellemesinin aksine, PrintAsync uygulamanızın eş zamanlı istekleri performans düşüşü olmadan yönetmesini sağlar ve ağır yük altında bile yanıt verme yeteneğini korur.

ASP.NET Framework projemde PDF yazdırmayı eklemek için minimum adımlar nelerdir?

Minimal iş akışı 5 adım içerir: 1) IronPrint kütüphanesini C# için indirin, 2) IronPrint'i sınıf dosyanıza dahil edin, 3) Görüntülemenize bir yazdırma düğmesi ekleyin, 4) Denetleyici işleminizde PrintAsync uygulayın, ve 5) Düğmeye basıldığında belge yazdırmanın çalıştığını doğrulayın. Bu basitleştirilmiş süreç minimum kod değişikliği gerektirir.

ASP.NET görünümüme bir yazdırma düğmesini nasıl eklerim?

Index.cshtml veya ana sayfa görünümünüze, bir denetleyici eylemini tetikleyen bir düğme ekleyin. Bunun için `` gibi bir HTML kullanın. Bu düğme, tıklandığında Home denetleyicisindeki PrintPDF ActionResult metodunu çağıracaktır.

Asenkron baskı kullanırken baskı ayarlarını özelleştirebilir miyim?

Evet, IronPrint, özel yazdırma ayarları ve yazıcı bilgisi alma dahil kapsamlı özellikler sağlar. Bu yetenekler, yazıcı seçimi, sayfa yönlendirmesi, kenar boşlukları ve diğer yazdırma parametrelerini yapılandırma seçenekleri ile güçlü yazdırma işlevselliği gerektiren Enterprise ASP.NET uygulamaları için idealdir.

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ı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 41,154 | Sürüm: 2026.5 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronPrint
bir örnek çalıştır belgenizin yazıcıya ulaşmasını izleyin.