IronPrint 操作指南 ASP.NET Web 应用程序框架 使用 C## 在 ASP.NET Framework Web 应用程序中进行打印 Curtis Chau 已更新:一月 10, 2026 下载 IronPrint NuGet 下载 免费试用 法学硕士副本 法学硕士副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 This article was translated from English: Does it need improvement? Translated View the article in English IronPrint 的 PrintAsync 方法可在 ASP.NET Web 应用程序中实现无阻塞文档打印,防止在处理打印请求时 UI 冻结。 这种异步方法可确保响应式网络应用程序能够在不阻塞线程的情况下处理打印操作。 <! -- 待办事项:在此处添加图片 --> <! -- --> <!--说明:说明代码概念的图表或截图 --> 网络应用程序通常需要将文档打印作为最终输出。 将打印功能与网络应用程序相集成是一项挑战,尤其是在处理异步操作时。 IronPrint 通过 PrintAsync 函数解决了这一问题。 本教程演示了使用 ASP.NET Core 实现 PrintAsync 以创建一个无阻塞打印文档的 Web 应用程序。 在实施之前,请注意 IronPrint 提供了全面的功能,包括打印机信息检索和自定义打印设置。 这些功能使其成为需要强大打印功能的企业 ASP.NET 应用程序的理想选择。 快速入门:在 ASP.NET 中使用 IronPrint 进行异步 PDF 打印 下面是一个展示 IronPrint 的 PrintAsync API 的最小示例--在您的控制器中只需一行即可开始打印,而不会冻结您的应用程序。无需模板。 立即开始使用 NuGet 创建 PDF 文件: 使用 NuGet 包管理器安装 IronPrint PM > Install-Package IronPrint 复制并运行这段代码。 return await IronPrint.Printer.PrintAsync("Basic.pdf"); 部署到您的生产环境中进行测试 立即开始在您的项目中使用 IronPrint,免费试用! 免费试用30天 最小工作流程(5 个步骤) 下载用于 Web 应用程序打印的 C# 库 将IronPrint导入到类文件中 添加打印按钮以触发方法 在控制器中实施 PrintAsync 按下按钮时验证文档打印 如何在 ASP.NET 中实现异步 PDF 打印? 本示例演示了在 **ASP.NET Web 应用程序(.NET Framework)** 项目中使用 `PrintAsync` 方法异步打印 PDF 文件。 `PrintAsync` 以异步方式启动打印,与阻塞线程的同步 `Print` 方法相比,可保持应用程序的响应速度。 <!--说明:说明 PrintAsync 工作流程的图表或截图 --> 异步方法在网络应用程序中至关重要,因为在网络应用程序中,多个用户可能会同时触发打印操作。 与同步 [Print](https://ironsoftware.com/csharp/print/examples/print/) 方法不同,`PrintAsync` 可确保您的应用程序在处理并发请求时不会出现性能下降。 我应该在哪里添加打印按钮? 在您的"Index.cshtml"(或主页视图)中,添加一个按钮,点击该按钮将触发一个操作。 该按钮将调用控制器中的 `ActionResult` 方法: ```html @{ ViewBag.Title = "Home Page"; } Print PDF ``` 。 如何在控制器中配置 PrintAsync? 在您的 `HomeController` 中,实现 `PrintAsync` 方法。 这种方法可以异步执行打印操作,提高应用程序的响应速度。 在实施之前,请确保[许可证密钥](https://ironsoftware.com/csharp/print/get-started/license-keys/)配置正确,以便在生产中使用。 ```csharp 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 } } } ``` 对于高级场景,应实施适当的异步/等待模式并自定义打印操作。 下面是一个增强示例,演示了错误处理和自定义打印设置: ```csharp 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 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"); } } } } ``` 该增强实施展示了[打印设置](https://ironsoftware.com/csharp/print/how-to/print-settings/)指南中的概念,包括指定打印机名称、配置纸张大小和适当处理错误。 在网络环境中选择打印机时,可利用 [Get Printer Names](https://ironsoftware.com/csharp/print/examples/get-printer-names/) 功能动态填充可用打印机列表: ```csharp // Get list of available printers public ActionResult GetAvailablePrinters() { var printers = Printer.GetPrinterNames(); ViewBag.PrinterList = new SelectList(printers); return View(); } ``` 对于需要用户交互的场景,可以考虑采用 [Print with Dialog](https://ironsoftware.com/csharp/print/examples/print-with-dialog/) 方法,不过这种方法更适合桌面应用程序而非网络环境。 ## 生产部署的其他注意事项 在使用 IronPrint 部署 ASP.NET 应用程序时,请考虑以下因素: 1.**许可配置**:对于 ASP.NET 应用程序,请在 Web.config 中配置许可证密钥。有关正确设置,请参阅 [Setting License Key in Web.config](https://ironsoftware.com/csharp/print/troubleshooting/license-key-web.config/) 指南。 2.**打印机访问**:确保应用程序池身份具有访问本地或网络打印机的权限。 [Print Your Documents](https://ironsoftware.com/csharp/print/features/print/) 文档提供了打印机访问要求。 3.**错误处理**:针对脱机打印机或无法访问的文档实施强大的错误处理功能。 对于技术问题,请使用[工程请求](https://ironsoftware.com/csharp/print/troubleshooting/engineering-request-print/)流程来解决复杂问题。 4.**性能**:对于大批量打印,实施队列系统以高效管理打印请求。 异步 `PrintAsync` 是此类实现的理想选择。 有关全面的打印功能,请查阅 [API 参考](https://ironsoftware.com/csharp/print/object-reference/api/),了解 IronPrint 名称空间中所有方法和属性的详细文档。 常见问题解答 如何在 ASP.NET Framework 应用程序中实现异步 PDF 打印? 您可以使用 IronPrint 的 PrintAsync 方法实现异步 PDF 打印。只需在控制器操作中添加 `return await IronPrint.Printer.PrintAsync("yourfile.pdf");` 即可。这种非阻塞方法可确保您的网络应用程序在处理打印请求时保持响应,防止在文档打印操作过程中出现 UI 冻结。 为什么要在网络应用程序中使用异步打印而不是同步打印? 使用 IronPrint 的 PrintAsync 方法进行异步打印对于网络应用程序至关重要,因为在网络应用程序中,多个用户可能会同时触发打印操作。与阻塞线程的同步打印方法不同,PrintAsync 可确保您的应用程序在处理并发请求时不会降低性能,即使在高负载情况下也能保持响应速度。 在我的 ASP.NET Framework 项目中添加 PDF 打印的最基本步骤是什么? 最基本的工作流程包括 5 个步骤:1) 下载 C# 的 IronPrint 库;2) 将 IronPrint 导入类文件;3) 在视图中添加打印按钮;4) 在控制器动作中实施 PrintAsync;5) 按下按钮时验证文档打印是否正常。这一简化流程只需修改极少的代码。 如何在 ASP.NET 视图中添加打印按钮? 在 Index.cshtml 或主页视图中,添加一个触发控制器动作的按钮。使用类似于 `打印 PDF` 这样的 HTML。点击该按钮后,将调用 "主页 "控制器中的 PrintPDF ActionResult 方法。 使用异步打印时,能否自定义打印设置? 是的,IronPrint 提供了全面的功能,包括自定义打印设置和打印机信息检索。这些功能使其成为需要强大打印功能的企业级 ASP.NET 应用程序的理想选择,这些功能可配置打印机选择、页面方向、页边距和其他打印参数。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 准备开始了吗? Nuget 下载 35,444 | 版本: 2025.12 刚刚发布 免费 NuGet 下载 总下载量:35,444 查看许可证