使用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 可靠的.NET Core PDF生成器是如何做成的? 可靠的.NET Core PDF生成器是如何做成的? 在.NET Core应用程序中构建PDF文档需要一个PDF库来处理HTML内容,保持格式,并支持跨平台部署。 老实说,如果您正在开发ASP.NET Core Web API或控制台应用程序,一个强大的.NET Core PDF生成器可以简化从各种来源创建文档的整个过程。 这可以节省大量时间。 开始您的免费试用,了解为什么开发者在生产环境中选择IronPDF用于关键任务的PDF生成。 IronPDF是一款全面的.NET Core PDF库。 它使用Chrome渲染引擎以像素级精确创建PDF文档。 这种方法意味着您无需学习复杂的PDF API或与布局问题作斗争; 您可以只利用现有的HTML和CSS技能生成PDF文件。 The library’s extensive documentation and code examples make implementation straightforward. IronPDF如何简化.NET Core中的PDF文档生成? IronPDF将传统上复杂的PDF生成任务转化为任何.NET开发人员都能实现的简单代码。 这个库使用ChromePdfRenderer类将HTML字符串、文件或URL直接转换为PDF格式。 这种流畅的API方法提供了广泛的定制选项,同时在不同平台上保持高性能。 真正的优势在于IronPDF如何将HTML内容转换为专业的PDF文件。 开发人员不需要手动定位或亲自绘制元素,而是编写标准的HTML与CSS样式,库无缝处理转换。 结果PDF文件不仅仅是文本的图像; 它们是功能齐全的文档,用户可以选择并搜索文本。 在基础PDF生成之外,您可以使用IronPDF的高级编辑工具编辑PDF文档。 通过这些,您可以合并文档、添加水印、注释等等。 查看相关教程,查看更多这些工具的示例源码。 通过NuGet包管理器安装IronPDF 在Visual Studio中开始使用IronPDF只需安装一个NuGet包。 打开NuGet包管理器控制台,确保在"默认项目"下拉框中选择了您的项目名称,然后运行以下命令: Install-Package IronPdf 此单个NuGet包提供了在您的.NET Core应用程序中创建、编辑和生成PDF文件所需的所有功能。 安装将自动配置您的项目,以便在Windows、Linux和Docker环境中生成PDF。 它还提供对各种.NET版本的支持,包括.NET Framework 4.6.2+、.NET Core 3.1+和.NET Standard 2.0+。 从HTML创建您的第一个PDF文档 我们来看一个实用的发票文档示例,创建PDF文档。 这演示了如何从HTML内容生成带有适当格式和数据绑定的PDF文件: using IronPdf; using System.IO; using System.Text; // Initialize the Chrome renderer var renderer = new ChromePdfRenderer(); // Configure rendering options renderer.RenderingOptions.MarginTop = 25; renderer.RenderingOptions.MarginBottom = 25; renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4; // Create HTML content for invoice var htmlBuilder = new StringBuilder(); htmlBuilder.Append(@" <html> <head> <style> body { font-family: Arial, sans-serif; font-size: 14px; } .invoice-header { background: #f0f0f0; padding: 20px; } table { width: 100%; border-collapse: collapse; } th, td { padding: 10px; text-align: left; border-bottom: 1px solid #ddd; } </style> </head> <body> <div class='invoice-header'> <h1>Invoice #INV-2024-001</h1> <p>Date: " + DateTime.Now.ToString("MM/dd/yyyy") + @"</p> </div> <table> <tr><th>Item</th><th>Quantity</th><th>Price</th></tr>"); // Example of dynamically adding table rows with a for loop for (int i = 0; i < 3; i++) { htmlBuilder.Append($"<tr><td>Product #{i + 1}</td><td>{i + 1}</td><td>$25.00</td></tr>"); } htmlBuilder.Append(@" </table> <p><strong>This is a new paragraph with a summary.</strong></p> </body> </html>"); // Generate PDF from HTML string PdfDocument pdfObject = renderer.RenderHtmlAsPdf(htmlBuilder.ToString()); // Save the PDF file pdfObject.SaveAs("invoice.pdf"); using IronPdf; using System.IO; using System.Text; // Initialize the Chrome renderer var renderer = new ChromePdfRenderer(); // Configure rendering options renderer.RenderingOptions.MarginTop = 25; renderer.RenderingOptions.MarginBottom = 25; renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4; // Create HTML content for invoice var htmlBuilder = new StringBuilder(); htmlBuilder.Append(@" <html> <head> <style> body { font-family: Arial, sans-serif; font-size: 14px; } .invoice-header { background: #f0f0f0; padding: 20px; } table { width: 100%; border-collapse: collapse; } th, td { padding: 10px; text-align: left; border-bottom: 1px solid #ddd; } </style> </head> <body> <div class='invoice-header'> <h1>Invoice #INV-2024-001</h1> <p>Date: " + DateTime.Now.ToString("MM/dd/yyyy") + @"</p> </div> <table> <tr><th>Item</th><th>Quantity</th><th>Price</th></tr>"); // Example of dynamically adding table rows with a for loop for (int i = 0; i < 3; i++) { htmlBuilder.Append($"<tr><td>Product #{i + 1}</td><td>{i + 1}</td><td>$25.00</td></tr>"); } htmlBuilder.Append(@" </table> <p><strong>This is a new paragraph with a summary.</strong></p> </body> </html>"); // Generate PDF from HTML string PdfDocument pdfObject = renderer.RenderHtmlAsPdf(htmlBuilder.ToString()); // Save the PDF file pdfObject.SaveAs("invoice.pdf"); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 此代码通过结合HTML标记与动态数据创建了一个专业的发票文档。 请注意我们如何在CSS中添加自定义字体大小,并使用for (int i ...)循环动态生成表格行。我们还包括了一个新段落元素()。 RenderHtmlAsPdf方法返回一个PdfDocument对象,让您可以完全控制生成的文件。对于更高级的HTML到PDF场景,请探索HTML到PDF教程。 输出 下面的截图显示了我们的示例发票完美渲染为PDF文档格式。 从URLs和网页生成PDF文件 IronPDF擅长将现有的网页转换为PDF文件。 当从报告仪表板或基于Web的表单生成PDF文档时,这一功能极其有价值: // Create a new ChromePdfRenderer instance var renderer = new ChromePdfRenderer(); // Set custom page size and margins renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4; renderer.RenderingOptions.PrintHtmlBackgrounds = true; renderer.RenderingOptions.EnableJavaScript = true; renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print; renderer.RenderingOptions.WaitFor.RenderDelay(1000); // Convert a URL to PDF PdfDocument pdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page"); // Save to file path string filePath = Path.Combine(Directory.GetCurrentDirectory(), "webpage.pdf"); pdfDocument.SaveAs(filePath); // Create a new ChromePdfRenderer instance var renderer = new ChromePdfRenderer(); // Set custom page size and margins renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4; renderer.RenderingOptions.PrintHtmlBackgrounds = true; renderer.RenderingOptions.EnableJavaScript = true; renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print; renderer.RenderingOptions.WaitFor.RenderDelay(1000); // Convert a URL to PDF PdfDocument pdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page"); // Save to file path string filePath = Path.Combine(Directory.GetCurrentDirectory(), "webpage.pdf"); pdfDocument.SaveAs(filePath); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 该库处理JavaScript执行,加载外部资源如图像和样式表,并在转换过程中保持响应布局。 这使得它非常适合从现有Web应用程序创建报告。 了解更多关于将URL转换为PDF的详细指南。 复杂报告的高级PDF功能 专业的PDF文档通常需要超出基本内容的附加元素。 IronPDF提供了方法来增强您的PDF文档,包括标题、页脚和水印。 标题和页脚API提供对文档展示的完全控制: // Create renderer with advanced options var renderer = new ChromePdfRenderer(); // Add headers and footers renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter { MaxHeight = 25, HtmlFragment = "<div style='text-align:center'>Company Report</div>" }; renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter { MaxHeight = 25, HtmlFragment = "<div>Page {page} of {total-pages}</div>" }; // Generate PDF with form fields renderer.RenderingOptions.CreatePdfFormsFromHtml = true; string formHtml = @" <form> <label>Name: <label>Email: <button type='submit'>Submit</button> </form>"; PdfDocument formDocument = renderer.RenderHtmlAsPdf(formHtml); // Create renderer with advanced options var renderer = new ChromePdfRenderer(); // Add headers and footers renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter { MaxHeight = 25, HtmlFragment = "<div style='text-align:center'>Company Report</div>" }; renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter { MaxHeight = 25, HtmlFragment = "<div>Page {page} of {total-pages}</div>" }; // Generate PDF with form fields renderer.RenderingOptions.CreatePdfFormsFromHtml = true; string formHtml = @" <form> <label>Name: <label>Email: <button type='submit'>Submit</button> </form>"; PdfDocument formDocument = renderer.RenderHtmlAsPdf(formHtml); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 这个例子演示了如何在所有页面上添加一致的标题并在PDF文档中创建交互式表单字段。 系统自动处理页码和表单字段渲染。 使用ASP.NET Core中的异步操作优化性能 对于处理多个PDF生成请求的Web应用程序,异步操作提升响应性: public async Task<byte[]> GeneratePdfAsync(string htmlContent) { var renderer = new ChromePdfRenderer(); // Configure for optimal performance renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print; // Generate PDF asynchronously PdfDocument pdf = await renderer.RenderHtmlAsPdfAsync(htmlContent); // Return as byte array for API responses return pdf.BinaryData; } // Usage in ASP.NET Core controller [HttpPost] public async Task<IActionResult> CreateInvoice([FromBody] InvoiceData data) { string html = BuildInvoiceHtml(data); byte[] pdfBytes = await GeneratePdfAsync(html); return File(pdfBytes, "application/pdf", "invoice.pdf"); } public async Task<byte[]> GeneratePdfAsync(string htmlContent) { var renderer = new ChromePdfRenderer(); // Configure for optimal performance renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print; // Generate PDF asynchronously PdfDocument pdf = await renderer.RenderHtmlAsPdfAsync(htmlContent); // Return as byte array for API responses return pdf.BinaryData; } // Usage in ASP.NET Core controller [HttpPost] public async Task<IActionResult> CreateInvoice([FromBody] InvoiceData data) { string html = BuildInvoiceHtml(data); byte[] pdfBytes = await GeneratePdfAsync(html); return File(pdfBytes, "application/pdf", "invoice.pdf"); } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 这种模式允许ASP.NET Core应用程序在不阻塞线程的情况下高效生成PDF文件,这是对旧Web技术如经典ASP的巨大改进,后者的文件生成常常是一个繁琐的过程。 字节数组输出非常适合需要直接将文件返回给客户端的API端点。 请注意File()方法如何以正确的application/pdf内容类型返回PDF,确保浏览器正确处理响应。 在处理大型PDF文档或多个并发请求时,这种异步方法保持系统性能最佳。 有关异步模式的更多见解,请查阅官方ASP.NET Core文档。 部署注意事项 IronPDF支持跨多个环境部署。 对于Docker容器,确保在Dockerfile中包含必要的依赖项,如Docker部署指南中所述。 该库可以无缝地在Windows Server、Linux发行版和Azure、AWS等云平台上运行。 每种环境可能需要针对字体和渲染的具体配置,但核心API保持一致。 关于生产环境的更多最佳实践,请参阅Microsoft关于.NET Core部署的文档。 今天就开始构建您的PDF生成器 IronPDF将.NET Core中的PDF生成从一个复杂的挑战转变为一个简单的实现。 凭借对HTML内容的支持、丰富的功能集和一致的跨平台行为,它是开发需要可靠生成PDF文档的理想选择。 准备好实现您自己的PDF文档生成器了吗? 开始免费试用,以无限制地探索所有功能。 文档提供了丰富的示例和指南,帮助您创建符合您确切要求的专业PDF文件。 无论您是在构建发票系统、生成复杂报告还是转换现有的Web内容,IronPDF都提供了实现像素完美结果的工具。 对于生产部署,探索适合您项目规模的许可选项。 投资于高质量的PDF库通过减少开发时间和在所有.NET应用程序中提供一致、专业的输出来带来收益。 常见问题解答 可靠的.NET Core PDF生成器的关键特性是什么? 一个可靠的.NET Core PDF生成器应该提供诸如HTML到PDF转换、支持多种文件格式、高质量呈现以及轻松生成发票和报告等功能。IronPDF提供了这些功能,确保了像素完美的PDF输出。 如何在 .NET Core 中将 HTML 转换为 PDF? 您可以通过利用IronPDF的HTML到PDF呈现功能来在.NET Core中将HTML转换为PDF。这使您能够以精确的方式将网页、HTML字符串或本地HTML文件转换为PDF文档。 我可以使用IronPDF在.NET Core中创建发票吗? 是的,您可以使用IronPDF在.NET Core中创建发票。IronPDF提供了从HTML模板生成PDF文档的功能,使设计和生成专业的发票变得简单。 使用IronPDF在.NET Core中生成报告是否可能? 绝对可以。IronPDF在.NET Core中通过将HTML内容转换为PDF格式来生成详细的报告,确保您的报告既有视觉吸引力又易于分享。 IronPDF是否支持像素完美呈现? 是的,IronPDF支持像素完美呈现,确保创建的PDF完美匹配原始HTML设计和布局。这对于保持文档演示的完整性至关重要。 IronPDF在.NET Core中可以处理哪些文件格式? IronPDF在.NET Core中可以处理各种文件格式,包括将HTML、图像和ASPX文件转换为PDF。它为不同的项目需求提供了灵活性。 IronPDF如何确保高质量PDF输出? IronPDF通过采用先进的呈现技术和支持各种字体和样式,确保高质量的PDF输出,生成专业和精确的PDF文档。 IronPDF是否适合在.NET Core中创建营销材料? 是的,IronPDF适合在.NET Core中创建营销材料。它能够将富HTML内容(包括CSS样式元素)转换为PDF,使其非常适合制作宣传册和传单。 我可以使用IronPDF自定义生成的PDF文档的布局吗? IronPDF通过使用HTML和CSS允许对PDF文档布局进行广泛的自定义,使您可以控制PDF文件的设计和结构。 在.NET Core中使用IronPDF进行PDF生成的好处是什么? 在.NET Core中使用IronPDF进行PDF生成的好处包括易用性、全面的文档、强大的HTML到PDF转换支持,以及高效生成专业质量文档的能力。 IronPDF 是否完全兼容 .NET 10? 是的。IronPDF 可以在 .NET 10 上无缝运行,提供与 .NET 6、7、8 和 9 等早期版本相同的丰富的 PDF 生成、编辑和渲染功能。它支持 .NET 10 的新性能改进和项目类型,包括 Web、桌面、控制台和 MAUI。 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如何将 VB.NET 表单打印为 PDF
已发布十一月 13, 2025 如何在 C# 中合并两个 PDF 字节数组 使用 IronPDF 在 C# 中合并两个 PDF 字节数组。学习通过简单的代码示例从字节数组、内存流和数据库合并多个 PDF 文件。 阅读更多
已发布十一月 13, 2025 如何创建 ASP.NET MVC PDF 查看器 为 ASP.NET MVC 应用程序构建一个强大的 PDF 查看器。显示 PDF 文档,将视图转换为 PDF,并使用 IronPDF 添加交互功能。 阅读更多