Drucken in einer ASP.NET Framework Web App mit C#35;

This article was translated from English: Does it need improvement?
Translated
View the article in English

Die PrintAsync-Methode von IronPrint ermöglicht den blockierungsfreien Dokumentendruck in ASP.NET-Webanwendungen und verhindert das Einfrieren der Benutzeroberfläche während der Verarbeitung von Druckanforderungen. Dieser asynchrone Ansatz gewährleistet, dass responsive Webanwendungen Druckvorgänge ohne blockierende Threads verarbeiten können.

Webanwendungen erfordern häufig den Druck von Dokumenten als Endausgabe. Die Integration von Druckfunktionen in Webanwendungen stellt eine Herausforderung dar, insbesondere wenn es um asynchrone Vorgänge geht. IronPrint löst dieses Problem mit der Funktion PrintAsync. Dieses Tutorial demonstriert die Implementierung von PrintAsync mit ASP.NET Core, um eine Webanwendung zu erstellen, die Dokumente ohne Blockierung druckt.

Vor der Implementierung ist zu beachten, dass IronPrint umfassende Funktionen bietet, darunter Druckerinformationen abrufen und Benutzerdefinierte Druckeinstellungen. Diese Fähigkeiten machen es ideal für ASP.NET-Unternehmensanwendungen, die robuste Druckfunktionen erfordern.

als-Überschrift:2(Schnellstart: Asynchrones PDF-Drucken mit IronPrint in ASP.NET)

Hier ist ein minimales Beispiel, das die PrintAsync API von IronPrint zeigt - eine Zeile in Ihrem Controller startet den Druck, ohne dass Ihre Anwendung einfriert. Keine Boilerplate erforderlich.

Nuget IconLegen Sie jetzt mit NuGet los, um PDFs zu erstellen:

  1. Installieren Sie IronPrint mit dem NuGet-Paketmanager.

    PM > Install-Package IronPrint

  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    return await IronPrint.Printer.PrintAsync("Basic.pdf");
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute mit der Nutzung von IronPrint in Ihrem Projekt – mit einer kostenlosen Testversion.
    arrow pointer

Wie implementiere ich asynchronen PDF-Druck in ASP.NET?

Dieses Beispiel demonstriert das asynchrone Drucken einer PDF-Datei in einem ASP.NET Web Application (.NET Framework)-Projekt unter Verwendung der Methode PrintAsync. PrintAsync leitet den Druckvorgang asynchron ein und hält die Anwendung im Vergleich zu synchronen Print-Methoden, die Threads blockieren, reaktionsfähig.

Der asynchrone Ansatz ist entscheidend für Webanwendungen, bei denen mehrere Benutzer gleichzeitig Druckvorgänge auslösen können. Im Gegensatz zur synchronen Druck-Methode stellt PrintAsync sicher, dass Ihre Anwendung gleichzeitige Anfragen ohne Leistungseinbußen verarbeitet.

Wo soll ich die Schaltfläche "Drucken" einfügen?

Fügen Sie in Ihrer "Index.cshtml" (oder Startseitenansicht) einen Knopf hinzu, der bei einem Klick eine Aktion auslöst. Diese Schaltfläche ruft eine ActionResult-Methode in Ihrem Controller auf:

@{
    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>
@{
    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>
HTML

ASP.NET-Anwendungsoberfläche mit Navigationsmenü und blauer Schaltfläche PDF drucken zur Erzeugung von PDFs


Wie kann ich PrintAsync in meinem Controller konfigurieren?

Implementieren Sie in Ihrem HomeController die Methode PrintAsync. Diese Methode führt Druckvorgänge asynchron aus und verbessert so die Reaktionsfähigkeit der Anwendung. Stellen Sie vor der Implementierung sicher, dass der Lizenzschlüssel für den Produktionseinsatz richtig konfiguriert ist.

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
$vbLabelText   $csharpLabel

Für fortgeschrittene Szenarien sollten Sie geeignete async/await-Muster implementieren und den Druckvorgang anpassen. Hier ist ein erweitertes Beispiel, das die Fehlerbehandlung und benutzerdefinierte Druckeinstellungen zeigt:

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");
            }
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Diese erweiterte Implementierung zeigt Konzepte aus dem Handbuch für Druckeinstellungen, einschließlich der Angabe von Druckernamen, der Konfiguration von Papierformaten und der angemessenen Behandlung von Fehlern.

Bei der Arbeit mit der Druckerauswahl in Webumgebungen sollten Sie die Funktion Druckernamen abrufen nutzen, um die Listen der verfügbaren Drucker dynamisch aufzufüllen:

// 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();
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Für Szenarien, die eine Benutzerinteraktion erfordern, sollten Sie einen Drucken mit Dialog-Ansatz in Erwägung ziehen, der sich allerdings eher für Desktop-Anwendungen als für Webumgebungen eignet.

Zusätzliche Überlegungen für den Produktionseinsatz

Wenn Sie Ihre ASP.NET-Anwendung mit IronPrint bereitstellen, sollten Sie diese Faktoren berücksichtigen:

  1. Lizenz-Konfiguration: Für ASP.NET-Anwendungen konfigurieren Sie Ihren Lizenzschlüssel in der Web.config. Siehe die Lizenzschlüssel in Web.config festlegen Anleitung für die richtige Einrichtung.

  2. Druckerzugriff: Stellen Sie sicher, dass die Identität des Anwendungspools die Berechtigung hat, auf lokale oder Netzwerkdrucker zuzugreifen. Die Drucken Sie Ihre Dokumente-Dokumentation enthält die Anforderungen für den Druckerzugang.

  3. Fehlerbehandlung: Implementieren Sie eine robuste Fehlerbehandlung für Offline-Drucker oder unzugängliche Dokumente. Für technische Fragen verwenden Sie den Engineering Request Prozess, um komplexe Probleme zu lösen.

  4. Leistung: Implementieren Sie bei hohem Druckaufkommen ein Warteschlangensystem, um Druckaufträge effizient zu verwalten. Das asynchrone PrintAsync ist ideal für solche Implementierungen.

Umfassende Druckfunktionen finden Sie in der API-Referenz mit einer ausführlichen Dokumentation aller Methoden und Eigenschaften im IronPrint-Namensraum.

Häufig gestellte Fragen

Wie kann ich asynchronen PDF-Druck in ASP.NET Framework-Anwendungen implementieren?

Mit der PrintAsync-Methode von IronPrint können Sie asynchronen PDF-Druck implementieren. Fügen Sie einfach `return await IronPrint.Printer.PrintAsync("yourfile.pdf");` in Ihre Controller-Aktion ein. Dieser nicht-blockierende Ansatz stellt sicher, dass Ihre Webanwendung während der Verarbeitung von Druckanfragen reaktionsfähig bleibt, und verhindert ein Einfrieren der Benutzeroberfläche während des Dokumentendrucks.

Warum sollte ich in Webanwendungen asynchrones Drucken anstelle von synchronem Drucken verwenden?

Asynchrones Drucken mit der PrintAsync-Methode von IronPrint ist entscheidend für Webanwendungen, bei denen mehrere Benutzer gleichzeitig Druckvorgänge auslösen können. Im Gegensatz zu synchronen Druckmethoden, die Threads blockieren, stellt PrintAsync sicher, dass Ihre Anwendung gleichzeitige Anfragen ohne Leistungseinbußen verarbeitet und die Reaktionsfähigkeit auch bei hoher Last aufrechterhält.

Was sind die minimalen Schritte, um den PDF-Druck zu meinem ASP.NET Framework-Projekt hinzuzufügen?

Der minimale Arbeitsablauf umfasst 5 Schritte: 1) Herunterladen der IronPrint-Bibliothek für C#, 2) Importieren von IronPrint in Ihre Klassendatei, 3) Hinzufügen einer Druckschaltfläche zu Ihrer Ansicht, 4) Implementieren von PrintAsync in Ihrer Controller-Aktion und 5) Überprüfen, ob der Dokumentendruck funktioniert, wenn die Schaltfläche gedrückt wird. Dieser rationalisierte Prozess erfordert nur minimale Änderungen am Code.

Wie füge ich eine Druckschaltfläche zu meiner ASP.NET-Ansicht hinzu?

Fügen Sie in Ihre Index.cshtml oder Ihre Homepage-Ansicht eine Schaltfläche ein, die eine Controller-Aktion auslöst. Verwenden Sie HTML wie ``. Wenn Sie auf diese Schaltfläche klicken, wird die Methode PrintPDF ActionResult in Ihrem Home-Controller aufgerufen.

Kann ich die Druckeinstellungen anpassen, wenn ich asynchrones Drucken verwende?

Ja, IronPrint bietet umfassende Funktionen, darunter benutzerdefinierte Druckeinstellungen und die Abfrage von Druckerinformationen. Diese Funktionen machen es ideal für ASP.NET-Unternehmensanwendungen, die eine robuste Druckfunktionalität mit Optionen zur Konfiguration von Druckerauswahl, Seitenausrichtung, Rändern und anderen Druckparametern benötigen.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 35,444 | Version: 2025.12 gerade veröffentlicht