Bir ASP.NET Framework Web Uygulaması ile C# Baskısı

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 kullanıcı arayüzü donmalarını önleyerek engel olmayan belge yazdırmayı sağlar. Bu asenkron yaklaşım, web uygulamalarının baskı işlemlerini engellemeden işleyebilmesini sağlar.

Web uygulamaları genellikle nihai çıktı olarak belge yazdırmayı gerektirir. Web uygulamaları ile baskı işlevselliğini entegre etmek, özellikle asenkron işlemlerle uğraşırken zorluklar sunar. IronPrint, bunu PrintAsync fonksiyonu ile çözer. Bu öğretici, engel olmayan şekilde belge yazdırmaya sahip bir web uygulaması oluşturmak için ASP.NET Core ile PrintAsync uygulamayı gösterir.

Uygulamadan önce, IronPrint'in özellikler dahil olmak üzere kapsamlı yazıcı bilgisi alımı ve özel baskı ayarları sağladığını unutmayın. Bu yetenekler, güçlü baskı işlevselliği gerektiren kurumsal ASP.NET uygulamaları için idealdir.

Hızlı Başlangıç: ASP.NET'te Asenkron PDF Baskısı

  1. IronPrint'i NuGet ile kurun: Install-Package IronPrint
  2. IronPrint'i kontrol dosyasına içe aktarın
  3. Metodun tetiklenmesi için bir yazdırma düğmesi ekleyin
  4. await Printer.PrintAsync("file.pdf") kontrol aksiyonunda çağırın
  5. Düğmeye basıldığında belge yazdırmayı doğrulayın
  1. NuGet Paket Yöneticisi ile https://www.nuget.org/packages/IronPrint yükleyin

    PM > Install-Package IronPrint
  2. Bu kod parçasını kopyalayıp çalıştırın.

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

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

    arrow pointer

IronPrint ile Başlayın

!{--0100110001001001010000100101001001000001010100100101100101011111--}


ASP.NET'te Asenkron PDF Baskısını Nasıl Uygularım?

Bu örnek, ASP.NET Web Application (.NET Framework) projesinde PrintAsync yöntemi kullanarak PDF dosyasını asenkron şekilde yazdırmayı gösterir. PrintAsync, asenkron olarak yazdırmayı başlatarak uygulamayı duyarlı tutar ve bu da eşzamanlı Print yöntemlerinin iplikleri engellediği durumlara kıyasla büyük bir avantaj sağlar.

Asenkron yaklaşım, birden fazla kullanıcının aynı anda baskı işlemlerini tetikleyebileceği web uygulamalarında kritik öneme sahiptir. Senkron Print yönteminin aksine, PrintAsync uygulamanızın eşzamanlı istekleri performansı düşürmeden işleme almasını sağlar.

Yazdırma Düğmesini Nereye Eklemeliyim?

"Index.cshtml" (veya ana sayfa görünümünüz) dosyanıza tıklandığında bir eylemi tetikleyen bir düğme ekleyin. Bu buton, kontrolcünüzdeki bir 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

Navigasyon menüsü ve mavi Print PDF butonuyla PDF'ler üretmek için ASP.NET uygulama arayüzü


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

Kontrol dosyanızın HomeController kısmında, PrintAsync yöntemini uygulayın. Bu yöntemde baskı işlemleri asenkron olarak gerçekleştirilir ve uygulama yanıtlama yeteneği artar. Uygulamadan önce, üretim kullanımı için uygun lisans anahtarı yapılandırmasına dikkat edin.

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 kalıplarını uygulayın ve baskı işlemini özelleştirin. İşte hata ayıklama 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, yazıcı isimlerini belirtme, kağıt boyutlarını yapılandırma ve hataları uygun şekilde ele alma gibi Yazdırma Ayarları kılavuzundaki kavramları sergilemektedir.

Web ortamlarında yazıcı seçimi ile çalışırken, mevcut yazıcı listelerini dinamik olarak doldurmak için Yazıcı İsimlerini Al fonksiyonunu kullanı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şimi gerektiren senaryolar için Diyalog ile Yazdırma yaklaşımını uygulamayı düşünün, ancak bu masaüstü uygulamalar için daha uygundur.

Üretim Dağıtımı İçin Ek Hususlar

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

  1. Lisansa Ayarlama: ASP.NET uygulamaları için lisans anahtarınızı Web.config ile yapılandırın. Doğru kurulum için Web.config'de Lisans Anahtarı Ayarlama kılavuzuna bakın.

  2. Yazıcı Erişimi: Uygulama havuzu kimliğinin yerel veya ağ yazıcılarına erişim iznine sahip olmasını sağlayın. Belgelerinizi Yazdırın dokümantasyonu, yazıcı erişim gereksinimlerini sağlar.

  3. Hata Yönetimi: Çevrimdışı yazıcılar veya erişilemez belgeler için güçlü hata yönetimi uygulayın. Teknik sorunlar için, karmaşık problemleri çözmek amacıyla Mühendislik Talebi sürecini kullanın.

  4. Performans: Yüksek hacimli yazdırma için, yazdırma isteklerini etkili bir şekilde yönetmek üzere bir sıra sistemi uygulayın. Asenkron PrintAsync, bu tür uygulamalar için idealdir.

Kapsamlı yazdırma yetenekleri için, IronPrint ad alanındaki tüm yöntemler ve özelliklerin detaylı dokümantasyonu için API Referansı başvurun.

Sıkça Sorulan Sorular

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

IronPrint'in PrintAsync yöntemini kullanarak eşzamansız PDF yazdırmayı uygulayabilirsiniz. Kontrolcü işleminize `return await IronPrint.Printer.PrintAsync("yourfile.pdf");` ekleyin. Bu engellemeyen yaklaşım, yazdırma taleplerini işlerken web uygulamanızın duyarlı kalmasını, belge yazdırma işlemleri sırasında arayüzün donmasını önler.

Neden web uygulamalarında eşzamansız yazdırma yerine eşzamanlı yazdırmayı kullanmalıyım?

IronPrint'in PrintAsync yöntemi ile eşzamansız yazdırma, aynı anda birden fazla kullanıcı yazdırma işlemini tetikleyebileceğinde web uygulamaları için kritiktir. Eşzamanlı Yazdırma yöntemleri, iş parçacıklarını engellerken, PrintAsync uygulamanızın eşzamanlı istekleri performans kaybı olmadan ele almasını sağlar ve ağır yük altında bile duyarlılığı korur.

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

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

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

Index.cshtml veya ana sayfanızın görünümüne bir kontrolcü işlemini tetikleyen bir düğme ekleyin. HTML olarak `` kullanın. Bu düğme, tıklandığında Ana kontrolcünüzdeki PrintPDF ActionResult metodunu tetikleyecektir.

Eşzamansız yazdırma kullanırken yazdırma ayarlarını özelleştirebilir miyim?

Evet, IronPrint, özelleştirilmiş baskı ayarları ve yazıcı bilgisi alma dahil kapsamlı özellikler sunar. Bu özellikler, yazıcı seçimi, sayfa yönelimi, kenar boşlukları ve diğer baskı parametrelerini yapılandırma seçenekleri ile sağlam baskı işlevleri gerektiren kurumsal ASP.NET uygulamaları için idealdir.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 39,267 | Sürüm: 2026.4 just released
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package IronPrint
bir örnek calistirin belgenizin yaziciya gitmesini izleyin.