使用IRONPDF 如何在 .NET Core 中创建 PDF 文件 Curtis Chau 已发布:十月 27, 2025 Download IronPDF NuGet 下载 DLL 下载 Windows 安装程序 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article 程序化创建PDF文档是现代Web应用程序中常见的方法和频繁的需求。 无论您是在构建发票、报告还是任何基于文档的系统,了解如何在ASP应用程序和.NET Core中高效创建PDF文件至关重要。 在本教程中,我们将探索使用IronPDF处理.NET Core创建PDF文件任务的最佳方法。 这是一个功能强大的.NET Core库,可以简化PDF生成功能。 有关详细的技术细节,请参考官方文档。 开始使用 IronPDF. IronPDF是一个全面的.NET Core PDF库,将复杂的PDF创建转换为简单的操作。 与传统方法需要手动绘制元素不同,IronPDF利用HTML标记和CSS生成与您设计要求完全匹配的PDF文件。 要在.NET Core库项目中开始创建PDF,请使用Visual Studio的包管理控制台通过运行以下命令安装IronPDF NuGet包: Install-Package IronPdf 此简单安装可立即为您的Web应用程序提供强大的PDF生成功能。 创建您的第一个 PDF 文档 让我们创建一个简单的PDF文档以了解基础知识。 以下示例展示了如何生成带格式内容的PDF: using IronPdf; // Create a new ChromePdfRenderer object var renderer = new ChromePdfRenderer(); // Define HTML content with styling var html = @" <html> <body style='font-family: Arial; margin: 40px;'> <h1>Hello World PDF Document</h1> <p>This is your first PDF file created with IronPDF!</p> </body> </html>"; // Generate PDF from HTML var pdf = renderer.RenderHtmlAsPdf(html); // Save the PDF document pdf.SaveAs("output.pdf"); using IronPdf; // Create a new ChromePdfRenderer object var renderer = new ChromePdfRenderer(); // Define HTML content with styling var html = @" <html> <body style='font-family: Arial; margin: 40px;'> <h1>Hello World PDF Document</h1> <p>This is your first PDF file created with IronPDF!</p> </body> </html>"; // Generate PDF from HTML var pdf = renderer.RenderHtmlAsPdf(html); // Save the PDF document pdf.SaveAs("output.pdf"); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 此代码创建一个新的PdfDocument对象,该对象将通过呈现HTML内容创建新的PDF。 ChromePdfRenderer负责转换,确保您的PDF文档保持一致的格式。 输出 使用高级功能将HTML转换为PDF IronPDF擅长将复杂的网页和HTML内容转换为专业的PDF文件。 以下代码探讨了如何创建具有更多高级功能的新PDF文档,如表格、图像和样式元素的工作原理: public void CreateAdvancedPdf() { var renderer = new ChromePdfRenderer(); // Configure rendering options renderer.RenderingOptions.MarginTop = 25; renderer.RenderingOptions.MarginBottom = 25; var html = @" <html> <head> <style> table { width: 100%; border-collapse: collapse; } th, td { padding: 10px; border: 1px solid #ddd; } th { background-color: #f2f2f2; } </style> </head> <body> <h2>Sales Report</h2> <table> <tr> <th>Product</th> <th>Quantity</th> <th>Total</th> </tr> <tr> <td>Software License</td> <td>10</td> <td>$500</td> </tr> </table> </body> </html>"; // Create PDF file var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("report.pdf"); } public void CreateAdvancedPdf() { var renderer = new ChromePdfRenderer(); // Configure rendering options renderer.RenderingOptions.MarginTop = 25; renderer.RenderingOptions.MarginBottom = 25; var html = @" <html> <head> <style> table { width: 100%; border-collapse: collapse; } th, td { padding: 10px; border: 1px solid #ddd; } th { background-color: #f2f2f2; } </style> </head> <body> <h2>Sales Report</h2> <table> <tr> <th>Product</th> <th>Quantity</th> <th>Total</th> </tr> <tr> <td>Software License</td> <td>10</td> <td>$500</td> </tr> </table> </body> </html>"; // Create PDF file var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("report.pdf"); } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 此示例显示了如何创建带格式表格的PDF文档,展示了IronPDF处理复杂布局和CSS样式的能力。 输出 与ASP.NET Core应用程序一起使用 在ASP.NET Core MVC视图中集成PDF生成非常简单。 这是一个从控制器生成PDF的示例项目实现: using Microsoft.AspNetCore.Mvc; using IronPdf; using System.IO; public class DocumentController : Controller { public IActionResult GeneratePdf() { var renderer = new ChromePdfRenderer(); // Create HTML content var html = "<h1>Invoice</h1><p>Thank you for your purchase!</p>"; // Generate PDF var pdf = renderer.RenderHtmlAsPdf(html); byte[] pdfBytes = pdf.BinaryData; // Return PDF file using the byte array, setting the content type to PDF return File(pdfBytes, "application/pdf", "document.pdf"); } } } using Microsoft.AspNetCore.Mvc; using IronPdf; using System.IO; public class DocumentController : Controller { public IActionResult GeneratePdf() { var renderer = new ChromePdfRenderer(); // Create HTML content var html = "<h1>Invoice</h1><p>Thank you for your purchase!</p>"; // Generate PDF var pdf = renderer.RenderHtmlAsPdf(html); byte[] pdfBytes = pdf.BinaryData; // Return PDF file using the byte array, setting the content type to PDF return File(pdfBytes, "application/pdf", "document.pdf"); } } } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 此控制器方法生成PDF文档并将其作为可下载文件返回,非常适合Web应用程序中的服务器端处理。 您还可以使用新的MemoryStream对象处理PDF文档的创建。 输出 高级PDF生成技术 IronPDF支持创建PDF的众多高级功能。 您可以添加页眉、页脚、页码,甚至合并多个PDF文件: public void CreatePdfWithHeaderFooter() { var renderer = new ChromePdfRenderer(); // Add header renderer.RenderingOptions.TextHeader = new TextHeaderFooter { CenterText = "Company Report", DrawDividerLine = true }; // Add footer with page numbers renderer.RenderingOptions.TextFooter = new TextHeaderFooter { CenterText = "Page {page} of {total-pages}", DrawDividerLine = true }; var html = "<h1>Annual Report</h1><p>Content goes here...</p>"; var pdf = renderer.RenderHtmlAsPdf(html); // Save the new document pdf.SaveAs("report-with-header.pdf"); } // Merge multiple PDFs public void MergePdfFiles() { var renderer = new ChromePdfRenderer(); var pdf1 = renderer.RenderHtmlAsPdf("<p>First Document</p>"); var pdf2 = renderer.RenderHtmlAsPdf("<p>Second Document</p>"); // Merge PDF documents var merged = PdfDocument.Merge(pdf1, pdf2); merged.SaveAs("merged.pdf"); } // Example of iterating over something, illustrating 'int i' and 'index' public void ProcessMultipleFiles(string[] filePaths) { for (int i = 0; i < filePaths.Length; i++) { // Use 'i' as an index to process each source file var source file = filePaths[i]; Console.WriteLine($"Processing file at index {i}: {source file}"); // Imagine code here to load or process the file // var pdf = PdfDocument.FromFile(sourceFile); // load } } public void CreatePdfWithHeaderFooter() { var renderer = new ChromePdfRenderer(); // Add header renderer.RenderingOptions.TextHeader = new TextHeaderFooter { CenterText = "Company Report", DrawDividerLine = true }; // Add footer with page numbers renderer.RenderingOptions.TextFooter = new TextHeaderFooter { CenterText = "Page {page} of {total-pages}", DrawDividerLine = true }; var html = "<h1>Annual Report</h1><p>Content goes here...</p>"; var pdf = renderer.RenderHtmlAsPdf(html); // Save the new document pdf.SaveAs("report-with-header.pdf"); } // Merge multiple PDFs public void MergePdfFiles() { var renderer = new ChromePdfRenderer(); var pdf1 = renderer.RenderHtmlAsPdf("<p>First Document</p>"); var pdf2 = renderer.RenderHtmlAsPdf("<p>Second Document</p>"); // Merge PDF documents var merged = PdfDocument.Merge(pdf1, pdf2); merged.SaveAs("merged.pdf"); } // Example of iterating over something, illustrating 'int i' and 'index' public void ProcessMultipleFiles(string[] filePaths) { for (int i = 0; i < filePaths.Length; i++) { // Use 'i' as an index to process each source file var source file = filePaths[i]; Console.WriteLine($"Processing file at index {i}: {source file}"); // Imagine code here to load or process the file // var pdf = PdfDocument.FromFile(sourceFile); // load } } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 这些示例展示了在您的PDF文档中添加专业化的处理以及将多个文件合并为一个文件。 输出 With Custom Header and Footer 处理表单和动态内容 IronPDF可以创建具有表单字段的交互式PDF文档: public void CreatePdfWithForm() { var html = @" <!DOCTYPE html> <html> <head> <title>PDF Test Form</title> <style> body { font-family: Arial, sans-serif; margin: 20px; background-color: #f4f4f4; } .form-container { width: 400px; padding: 20px; border: 1px solid #ccc; border-radius: 8px; background-color: #fff; box-shadow: 2px 2px 5px rgba(0,0,0,0.1); } .form-group { margin-bottom: 15px; } label { display: block; /* Make label take up full width */ margin-bottom: 5px; font-weight: bold; color: #333; } input[type='text'], textarea { width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 4px; box-sizing: border-box; /* Include padding and border in the element's total width and height */ } textarea { height: 100px; resize: vertical; } .checkbox-group { display: flex; align-items: center; } .checkbox-group label { display: inline; font-weight: normal; margin-left: 8px; } </style> </head> <body> <div class='form-container'> <h2>Document Generation Test Form</h2> <form> <div class='form-group'> <label for='fullName'>Full Name:</label> </div> <div class='form-group'> <label for='comments'>Comments/Feedback:</label> <textarea id='comments' name='comments' placeholder='Type your feedback here...'></textarea> </div> <div class='form-group checkbox-group'> <label for='agree'>I agree to the terms and conditions.</label> </div> <button style='padding: 10px 15px; background-color: #007bff; color: white; border: none; border-radius: 4px; cursor: pointer;'> Test Button Rendering </button> </form> </div> </body> </html>"; var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.CreatePdfFormsFromHtml = true; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("form.pdf"); } public void CreatePdfWithForm() { var html = @" <!DOCTYPE html> <html> <head> <title>PDF Test Form</title> <style> body { font-family: Arial, sans-serif; margin: 20px; background-color: #f4f4f4; } .form-container { width: 400px; padding: 20px; border: 1px solid #ccc; border-radius: 8px; background-color: #fff; box-shadow: 2px 2px 5px rgba(0,0,0,0.1); } .form-group { margin-bottom: 15px; } label { display: block; /* Make label take up full width */ margin-bottom: 5px; font-weight: bold; color: #333; } input[type='text'], textarea { width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 4px; box-sizing: border-box; /* Include padding and border in the element's total width and height */ } textarea { height: 100px; resize: vertical; } .checkbox-group { display: flex; align-items: center; } .checkbox-group label { display: inline; font-weight: normal; margin-left: 8px; } </style> </head> <body> <div class='form-container'> <h2>Document Generation Test Form</h2> <form> <div class='form-group'> <label for='fullName'>Full Name:</label> </div> <div class='form-group'> <label for='comments'>Comments/Feedback:</label> <textarea id='comments' name='comments' placeholder='Type your feedback here...'></textarea> </div> <div class='form-group checkbox-group'> <label for='agree'>I agree to the terms and conditions.</label> </div> <button style='padding: 10px 15px; background-color: #007bff; color: white; border: none; border-radius: 4px; cursor: pointer;'> Test Button Rendering </button> </form> </div> </body> </html>"; var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.CreatePdfFormsFromHtml = true; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("form.pdf"); } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 这创建了一个具有表单字段的交互式PDF,用户可以填写,非常适合需要用户输入的应用程序。 代码还展示了在生成的内容中可能使用的HTML链接的位置。 输出 PDF with Editable Form 最佳实践和错误处理 在生成生产环境的PDF文件时,实施适当的错误处理: try { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); } catch (Exception ex) { // Log error and handle appropriately Console.WriteLine($"PDF generation failed: {ex.Message}"); } try { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); } catch (Exception ex) { // Log error and handle appropriately Console.WriteLine($"PDF generation failed: {ex.Message}"); } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 始终验证输入数据并优雅地处理异常,以确保您的应用程序中可靠的PDF生成。 结论 IronPDF将.NET Core中创建PDF文件的复杂任务转化为简单、可管理的过程。 从基本的文档创建到高级功能,如表单、图像和页面管理,这个.NET库提供了全面的工具来程序化地生成PDF文档。 通过使用常见的HTML转换方法,您可以快速加载数据并下载完成的文件。 无论您是构建简单的报告还是复杂的多页文档,IronPDF直观的API和强大的渲染引擎使其成为.NET开发人员的理想选择。 今天就开始在您的ASP.NET Core应用程序中使用IronPDF的免费试用版创建专业的PDF文件。 准备好通过PDF生成功能增强您的应用程序了吗? 立即开始使用IronPDF,体验创建PDF有多么简单。 常见问题解答 什么是IronPDF? IronPDF是一个强大的.NET Core库,旨在简化ASP.NET应用程序中PDF文档的创建和操作。 如何在.NET Core中创建PDF文档? 您可以通过使用IronPDF库在.NET Core中创建PDF文档,该库提供了简便的方法来在您的应用程序中程序化生成PDF。 我可以使用IronPDF创建哪些类型的文档? 使用IronPDF,您可以创建各种文档类型,包括发票、报告,以及任何需要PDF生成的基于文档的系统。 IronPDF适合ASP.NET应用程序吗? 是的,IronPDF特别适合ASP.NET应用程序,提供无缝集成和高效的PDF创建功能。 我在哪里可以找到IronPDF的官方文档? IronPDF的官方文档可在Iron Software网站上找到,提供了使用该库的全面技术细节和指南。 使用IronPDF进行PDF创建的好处是什么? 使用IronPDF的好处包括使用方便、强大的功能,以及在.NET Core应用程序中程序化生成高质量PDF的能力。 IronPDF可以处理复杂的PDF生成任务吗? 是的,IronPDF能够处理复杂的PDF生成任务,非常适合需要高级PDF操作和创建的应用程序。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 相关文章 已发布十一月 13, 2025 如何在 C# 中合并两个 PDF 字节数组 使用 IronPDF 在 C# 中合并两个 PDF 字节数组。学习通过简单的代码示例从字节数组、内存流和数据库合并多个 PDF 文件。 阅读更多 已发布十一月 13, 2025 如何创建 ASP.NET MVC PDF 查看器 为 ASP.NET MVC 应用程序构建一个强大的 PDF 查看器。显示 PDF 文档,将视图转换为 PDF,并使用 IronPDF 添加交互功能。 阅读更多 已发布十一月 13, 2025 如何构建 .NET HTML 到 PDF 转换器 学习如何使用 IronPDF 在 .NET 中将 HTML 转换为 PDF。 阅读更多 如何在 C# 中比较两个 PDF 文件如何在 C# 中动态生成 PDF
已发布十一月 13, 2025 如何在 C# 中合并两个 PDF 字节数组 使用 IronPDF 在 C# 中合并两个 PDF 字节数组。学习通过简单的代码示例从字节数组、内存流和数据库合并多个 PDF 文件。 阅读更多
已发布十一月 13, 2025 如何创建 ASP.NET MVC PDF 查看器 为 ASP.NET MVC 应用程序构建一个强大的 PDF 查看器。显示 PDF 文档,将视图转换为 PDF,并使用 IronPDF 添加交互功能。 阅读更多