Drukowanie w aplikacji internetowej ASP.NET Framework przy użyciu języka C#
Metoda PrintAsync w IronPrint umozliwia drukowanie dokumentow bez blokowania w aplikacjach webowych ASP.NET, zapobiegajac zamrozeniu interfejsu uzytkownika podczas przetwarzania zadan drukowania. To asynchroniczne podejście gwarantuje, że responsywne aplikacje internetowe mogą obsługiwać operacje PRINT bez blokowania wątków.
Aplikacje internetowe często wymagają drukowania dokumentów jako końcowego wyniku. Integracja funkcji PRINT z aplikacjami internetowymi wiąże się z pewnymi wyzwaniami, zwłaszcza w przypadku operacji asynchronicznych. IronPrint rozwiazuje to za pomoca funkcji PrintAsync. Ten poradnik pokazuje wdrozenie PrintAsync z ASP.NET Core w celu stworzenia aplikacji webowej, ktora drukuje dokumenty bez blokowania.
Przed wdrożeniem należy pamiętać, że IronPrint oferuje szeroki zakres funkcji, w tym pobieranie informacji o drukarce i niestandardowe ustawienia drukowania. Te możliwości sprawiają, że idealnie nadaje się do Enterprise aplikacji ASP.NET wymagających solidnej funkcjonalności drukowania.
Szybki start: Asynchroniczne drukowanie plików PDF w ASP.NET- Zainstaluj IronPrint za pomoca NuGet:
Install-Package IronPrint - Zaimportuj
IronPrintdo pliku kontrolera - Dodaj przycisk PRINT, aby wywołać metodę
- Wywolaj
await Printer.PrintAsync("file.pdf")w akcji kontrolera - Sprawdź drukowanie dokumentu po naciśnięciu przycisku PRINT
-
1Install IronPrint with NuGet Package Manager
-
2Skopiuj i uruchom ten fragment kodu.
return await IronPrint.Printer.PrintAsync("Basic.pdf");C# -
3Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronPrint w swoim projekcie już dziś z darmową wersją próbną
Rozpocznij pracę z IronPrint
Start using IronPrint in your project today with a free trial.
Jak drukować w aplikacji internetowej ASP.NET
- Zainstaluj bibliotekę drukowania C# z NuGet
- Zaimportuj
IronPrintdo kontrolera - Dodaj przycisk PRINT, aby uruchomić akcję
- Wywołaj
PrintAsyncw metodzie kontrolera
Jak zaimplementować asynchroniczne drukowanie plików PDF w ASP.NET?
Ten przyklad pokazuje drukowanie pliku PDF asynchronicznie w projekcie ASP.NET Web Application (.NET Framework) z użyciem metody PrintAsync. PrintAsync rozpoczyna drukowanie w trybie asynchronicznym, utrzymujac aplikacje w stanie reaktywnym w porownaniu z synchronicznymi metodami Print, ktore blokuja watki.
Podejście asynchroniczne ma kluczowe znaczenie w aplikacjach internetowych, w których wielu użytkowników może jednocześnie uruchamiać operacje PRINT. W przeciwienstwie do synchronicznej metody Print, PrintAsync zapewnia, ze aplikacja obsluguje jednoczesne zadania bez pogorszenia wydajnosci.
Gdzie powinienem umieścić przycisk PRINT?
W pliku "Index.cshtml" (lub widoku strony głównej) dodaj przycisk, który po kliknięciu uruchamia akcję. Ten przycisk wywoluje metode ActionResult w kontrolerze:
@{
ViewBag.Title = "Home Page";
}
<main>
<section class="row" aria-labelledby="aspnetTitle">
<h1 id="title">ASP.NET</h1>
<p>
<!-- Button that triggers the PrintPdf ActionResult -->
<a class="btn btn-primary btn-md" onclick="location.href='@Url.Action("PrintPdf", "Home")'">Print PDF</a>
</p>
</section>
</main>

Jak skonfigurować PrintAsync w moim kontrolerze?
W HomeController zaimplementuj metode PrintAsync. Ta metoda wykonuje operacje drukowania asynchronicznie, zwiększając responsywność aplikacji. Przed wdrożeniem należy upewnić się, że klucz licencyjny jest poprawnie skonfigurowany do użytku produkcyjnego.
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 NamespaceW zaawansowanych scenariuszach należy wdrożyć odpowiednie wzorce async/await i dostosować operację PRINT. Oto rozbudowany przykład ilustrujący obsługę błędów i niestandardowe ustawienia drukowania:
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 NamespaceTa ulepszona implementacja prezentuje koncepcje z przewodnika "Ustawienia drukowania", w tym określanie nazw drukarek, konfigurowanie rozmiarów papieru oraz odpowiednie postępowanie w przypadku błędów.
Podczas pracy z wyborem drukarki w środowiskach internetowych należy wykorzystać funkcję Get Printer Names do dynamicznego wypełniania list dostępnych drukarek:
// 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 FunctionW scenariuszach wymagających interakcji z użytkownikiem warto rozważyć zastosowanie podejścia "PRINT z oknem dialogowym", choć rozwiązanie to lepiej sprawdza się w aplikacjach desktopowych niż w środowiskach internetowych.
Dodatkowe uwagi dotyczące wdrożenia produkcyjnego
Wdrażając aplikację ASP.NET z wykorzystaniem IronPrint, należy wziąć pod uwagę następujące czynniki:
-
Konfiguracja licencji: W przypadku aplikacji ASP.NET skonfiguruj klucz licencyjny w pliku Web.config. Aby uzyskać informacje na temat prawidłowej konfiguracji, zapoznaj się z przewodnikiem Ustawianie klucza licencyjnego w pliku Web.config.
-
Dostęp do drukarek: Upewnij się, że tożsamość puli aplikacji ma uprawnienia dostępu do drukarek lokalnych lub sieciowych. Dokumentacja Print Your Documents zawiera wymagania dotyczące dostępu do drukarki.
-
Obsługa błędów: Należy wdrożyć solidną obsługę błędów dla drukarek offline lub dokumentów, do których nie ma dostępu. W przypadku problemów technicznych należy skorzystać z procesu zgłoszeń inżynieryjnych, aby rozwiązać złożone problemy.
-
Wydajność: W przypadku drukowania dużych nakładów należy wdrożyć system kolejkowania, aby efektywnie zarządzać zleceniami drukowania. Asynchroniczny
PrintAsyncjest idealny dla takich wdrożeń.
Aby uzyskac pelne mozliwosci drukowania, zapoznaj sie z Dokumentacja API w celu uzyskania szczegolowych informacji o wszystkich metodach i wlasciwosciach w przestrzeni nazw IronPrint.
Często Zadawane Pytania
Jak zaimplementować asynchroniczne drukowanie PDF w aplikacjach ASP.NET Framework?
Możesz zaimplementować asynchroniczne drukowanie PDF używając metody PrintAsync IronPrint. Po prostu dodaj `return await IronPrint.Printer.PrintAsync("yourfile.pdf");` w akcji kontrolera. To podejście bez blokowania zapewnia, że Twoja aplikacja webowa pozostaje responsywna podczas przetwarzania żądań druku, zapobiegając zamrożeniom interfejsu użytkownika podczas operacji drukowania dokumentów.
Dlaczego powinienem używać asynchronicznego drukowania zamiast synchronicznego drukowania w aplikacjach webowych?
Asynchroniczne drukowanie z metodą PrintAsync IronPrint jest kluczowe dla aplikacji webowych, gdzie wielu użytkowników może jednocześnie uruchamiać operacje drukowania. W odróżnieniu od synchronicznych metod Print, które blokują wątki, PrintAsync zapewnia, że Twoja aplikacja obsługuje równoczesne żądania bez pogorszenia wydajności, utrzymując responsywność nawet pod dużym obciążeniem.
Jakie są minimalne kroki, aby dodać drukowanie PDF do mojego projektu ASP.NET Framework?
Minimalny przepływ pracy składa się z 5 kroków: 1) Pobierz bibliotekę IronPrint dla C#, 2) Importuj IronPrint do pliku klasy, 3) Dodaj przycisk drukowania do widoku, 4) Zaimplementuj PrintAsync w akcji kontrolera, i 5) Zweryfikuj działanie drukowania dokumentu po naciśnięciu przycisku. Ten uproszczony proces wymaga minimalnych zmian w kodzie.
Jak dodać przycisk drukowania do mojego widoku ASP.NET?
In your Index.cshtml or home page view, add a button that triggers a controller action. Use HTML like ``. This button will invoke the PrintPDF ActionResult method in your Home controller when clicked.
Czy mogę dostosować ustawienia drukowania przy użyciu asynchronicznego drukowania?
Tak, IronPrint oferuje rozbudowane funkcje, w tym dostosowane ustawienia drukowania i pobieranie informacji o drukarce. Te możliwości sprawiają, że jest idealnym rozwiązaniem dla aplikacji ASP.NET w przedsiębiorstwach, które wymagają zaawansowanej funkcjonalności drukowania z opcjami konfigurowania wyboru drukarki, orientacji strony, marginesów i innych parametrów drukowania.
How can I handle errors during the printing process?
Use try-catch blocks around your PrintAsync calls to catch exceptions and handle them gracefully, providing user feedback or logging as necessary.
What should I consider for deploying an ASP.NET application using IronPrint?
Ensure your application's license configuration, printer access permissions, and error handling mechanisms are properly set up in production.
How can I dynamically populate available printer lists in my application?
Use the GetPrinterNames method from IronPrint to retrieve and dynamically display a list of available printers to users.
What is the role of the PrintAsync method in managing high-volume printing?
PrintAsync supports high-volume printing by enabling a queue system that efficiently manages print requests without blocking the application.
Is it possible to use IronPrint for printing with a dialog in a web environment?
While it's possible to integrate a print dialog in desktop applications, this approach is less suitable for web environments, where asynchronous methods are preferred for best performance.

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.