Bir ASP.NET Framework Web Uygulaması ile C# Baskısı
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ı
- IronPrint'i NuGet ile kurun:
Install-Package IronPrint IronPrint'i kontrol dosyasına içe aktarın- Metodun tetiklenmesi için bir yazdırma düğmesi ekleyin
await Printer.PrintAsync("file.pdf")kontrol aksiyonunda çağırın- Düğmeye basıldığında belge yazdırmayı doğrulayın
-
NuGet Paket Yöneticisi ile https://www.nuget.org/packages/IronPrint yükleyin
PM > Install-Package IronPrint -
Bu kod parçasını kopyalayıp çalıştırın.
return await IronPrint.Printer.PrintAsync("Basic.pdf"); -
Canlı ortamınızda test etmek için dağıtın
Bugün projenizde IronPrint kullanmaya başlayın ücretsiz deneme ile
IronPrint ile Başlayın
!{--0100110001001001010000100101001001000001010100100101100101011111--}
ASP.NET Web Uygulamasında Nasıl Yazdırılır
- C# baskı kütüphanesini NuGet'ten yükleyin
- Denetleyiciye
IronPrintithal edin - Eylemin tetiklenmesi için bir yazdırma düğmesi ekleyin
- Denetleyici metodunda
PrintAsyncçağırın
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>

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

