Drukowanie w aplikacji internetowej ASP.NET Framework przy użyciu języka C
Metoda PrintAsync w IronPrint umożliwia nieblokujące drukowanie dokumentów w aplikacjach webowych ASP.NET, zapobiegając zamrażaniu interfejsu użytkownika podczas przetwarzania zadań 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 rozwiązuje ten problem za pomocą funkcji PrintAsync. Ten samouczek pokazuje implementację PrintAsync w ASP.NET Core, aby stworzyć aplikację webową, która 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 pomocą NuGet:
Install-Package IronPrint - Zaimportuj
IronPrintdo pliku kontrolera - Dodaj przycisk PRINT, aby wywołać metodę
- Wywołaj
await Printer.PrintAsync("file.pdf")w akcji kontrolera - Sprawdź drukowanie dokumentu po naciśnięciu przycisku PRINT
-
Install IronPrint with NuGet Package Manager
PM > Install-Package IronPrint -
Skopiuj i uruchom ten fragment kodu.
return await IronPrint.Printer.PrintAsync("Basic.pdf"); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronPrint w swoim projekcie już dziś z darmową wersją próbną
Rozpocznij pracę z IronPrint
Rozpocznij używanie IronPrint w swoim projekcie już dziś dzięki darmowej wersji próbnej.
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 przykład demonstruje asynchroniczne drukowanie pliku PDF w projekcie Aplikacji Webowej ASP.NET (.NET Framework) za pomocą metody PrintAsync. PrintAsync inicjuje drukowanie asynchronicznie, utrzymując responsywność aplikacji w porównaniu do synchronicznych metod Print, które blokują wątki.
Podejście asynchroniczne ma kluczowe znaczenie w aplikacjach internetowych, w których wielu użytkowników może jednocześnie uruchamiać operacje PRINT. W przeciwieństwie do synchronicznej metody Print, PrintAsync zapewnia, że aplikacja obsługuje zlecenia jednoczesne bez pogorszenia wydajności.
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 wywołuje metodę ActionResult w kontrolerze:
@{
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>

Jak skonfigurować PrintAsync w moim kontrolerze?
W HomeController, należy zaimplementować metodę 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
}
}
}
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
W 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");
}
}
}
}
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
Ta 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 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
W 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. Asynchroniczne
PrintAsyncjest idealne dla takich implementacji.
Aby uzyskać informacje na temat kompleksowych możliwości drukowania, zapoznaj się z Dokumentacją API, zawierającą szczegółowe opisy wszystkich metod i właściwości 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.

