ASP.NET Framework Web Uygulamasında C# ile Yazdırma
IronPrint'in PrintAsync yöntemi, ASP.NET web uygulamalarında baskı taleplerini işlerken UI donmalarını önleyerek engellenmeyen belge yazdırmayı sağlar. 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, PrintAsync işlevi ile bunu çözer. Bu öğretici, ASP.NET Core ile PrintAsync uygulamayı göstererek engellemeden belge yazdıran bir web uygulaması oluşturmayı göstermektedir.
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
- IronPrint'i NuGet üzerinden kurun:
Install-Package IronPrint IronPrintkontrol dosyasına alın- Yöntemi tetiklemek için bir yazdırma düğmesi ekleyin
- Kontrol eyleminde
await Printer.PrintAsync("file.pdf")çağırın - Düğmeye basıldığında belgenin yazdırılmasını doğrulayın
-
IronPrint aşağıdaki NuGet Paket Yöneticisi ile yükleyin
-
Bu kod parçacığını kopyalayın ve çalıştırın.
return await IronPrint.Printer.PrintAsync("Basic.pdf"); -
Canlı ortamınızda test için dağıtım yapın
Ücretsiz deneme ile bugün projenizde IronPrint kullanmaya başlayın
IronPrint ile başlayın
Bugün IronPrint ile projenizde ücretsiz bir deneme ile başlayın.
Bir ASP.NET Web Uygulamasında Nasıl Yazdırılır
- C# baskı kütüphanesini NuGet ile yükleyin
IronPrint'i denetleyiciye dahil edin- Eylemi tetiklemek için bir yazdırma düğmesi ekleyin
- Denetleyici yönteminde
PrintAsync'i çağırın
ASP.NET'de Asenkron PDF Yazdırmayı Nasıl Gerçekleştiririm?
Bu örnek, PrintAsync yöntemiyle ASP.NET Web Uygulaması (.NET Framework) projesinde bir PDF dosyasının eşzamansız olarak yazdırılmasını göstermektedir. PrintAsync eşzamansız olarak yazdırmayı başlatır, uygulamanın eşzamanlı Print yöntemleriyle karşılaştırıldığında yanıt vermesini sağlar ve thread'leri bloklamaz.
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üşüklüğü olmadan eşzamanlı istekleri yönetmesini garanti eder.
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 buton kontrolörünüzde 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>

PrintAsync'i Denetleyicime Nasıl Yapılandırırım?
HomeController içeriğinde 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
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
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
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:
-
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.
-
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.
-
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.
- Performans: Yoğun hacimli baskı işlemleri için, baskı isteklerini verimli bir şekilde yönetmek için bir sıra sistemi uygulayın. Eşzamansız
PrintAsyncböyle uygulamalar için idealdir.
Kapsamlı yazdırma yetenekleri için, IronPrint ad alanındaki tüm yöntemler ve özelliklerin ayrıntılı dokümantasyonu için API Referansına 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ö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.

