ASP.NET Framework Web Uygulamasında C# ile Yazdırma
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
- IronPrint'i NuGet aracılığıyla yükleyin:
Install-Package IronPrint IronPrint'yi denetleyici dosyasına içe aktarın- Yöntemi tetiklemek için bir yazdırma düğmesi ekleyin
- Denetleyici eyleminde
await Printer.PrintAsync("file.pdf")'yi ç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
PM > Install-Package IronPrint -
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ö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>

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
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. Asenkron
PrintAsyncbu 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.

