IronPDF 教程 .NET Core PDF生成 How to Convert HTML to PDF in .NET Core Jacob Mellor 已更新:八月 14, 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 This article was translated from English: Does it need improvement? Translated View the article in English 由于PDF格式的严格标准,从各种格式转换为PDF可能具有挑战性。 转换通常不能一一匹配,尤其是处理HTML和CSS样式时。 然而,在当今的数字领域,包括HTML和CSS在内的URL和表单转换功能至关重要。 这是IronPDF的优势所在,它提供了直观的功能,使开发人员能够以高保真度将多种格式转换为PDF,通常只需几行代码。 使用IronPDF,您可以轻松地将HTML、DOCX、RTF、Markdown,甚至图片转换为PDF,确保文档的完整性得以维护。 它还支持从流行框架(如Razor、CSHTML、ASPX和XAML)转换动态网页,消除兼容性问题,使IronPDF成为您所有PDF转换需求的全面解决方案。 除了简单的转换,IronPDF还提供强大的自定义选项。 您可以通过自定义边距、页眉和页脚来调整PDF输出页码,并调节灰度设置以减少文件大小。通过包括目录、自动分页和完美缩放到所需文档尺寸的内容等附加功能来增强文档。 在本教程中,我们将探讨这些功能及更多内容,提供代码示例并突出IronPDF的关键功能。 准备好改变您的PDF转换流程,让您可以轻松地用IronPDF将PDF文档进行转换、自定义和优化。 标题:2(快速入门:IronPDF转换HTML到PDF) 使用IronPDF在.NET Core中轻松开始将HTML转换为PDF。 只需一行代码,您就可以使用IronPDF的强大API从HTML字符串生成像素完美的PDF。 本指南将向您展示如何快速将IronPDF集成到您的项目中,实现无缝的PDF生成,设置最小化。无论您是在转换HTML、URL还是Razor视图,IronPDF都简化了这个过程,让各级开发人员都可以轻松访问。 今天就开始转换,当您准备好时探索高级功能。 Get started making PDFs with NuGet now: Install IronPDF with NuGet Package Manager PM > Install-Package IronPdf Copy and run this code snippet. var pdf = new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello, PDF!</h1>"); Deploy to test on your live environment Start using IronPDF in your project today with a free trial Free 30 day Trial 目录 多功能PDF转换 从HTML字符串生成PDF 从HTML文件生成PDF 从URL生成PDF 从图像生成PDF 从PDF生成图像 将DOCX转换为PDF 将RTF转换为PDF 将MD转换为PDF 将XML转换为PDF 将PDF转换为HTML 动态网页到PDF 从ASPX页面生成PDF 将XAML转换为PDF(MAUI) 生成PDF报告 在Blazor服务器中创建PDF Razor到PDF(Blazor服务器) CSHTML到PDF概览 CSHTML到PDF(Razor页面) CSHTML到PDF(MVC核心) CSHTML到PDF(MVC框架) CSHTML到PDF(无头) 网络访问 TLS网站与系统登录 Cookies HTTP请求头 定制PDF转换 渲染选项 设置自定义边距 灰度 优化PDF布局 添加目录 分页 适合纸张和缩放 今天在您的项目中使用 IronPDF,免费试用。 第一步: 免费开始 使用 NuGet 安装 PM > Install-Package IronPdf 在 IronPDF 上查看 NuGet 快速安装。超过 1000 万次下载,它正以 C# 改变 PDF 开发。 您也可以下载 DLL 或 Windows 安装程序。 多功能PDF转换 从HTML字符串生成PDF 要从HTML字符串生成PDF,我们可以使用RenderHtmlAsPdf方法快速将HTML字符串转换为像素完美的PDF。 :path=/static-assets/pdf/content-code-examples/how-to/html-string-to-pdf.cs using IronPdf; // Instantiate Renderer var renderer = new ChromePdfRenderer(); // Create a PDF from a HTML string using C# var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>"); // Export to a file or Stream pdf.SaveAs("output.pdf"); Imports IronPdf ' Instantiate Renderer Private renderer = New ChromePdfRenderer() ' Create a PDF from a HTML string using C# Private pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>") ' Export to a file or Stream pdf.SaveAs("output.pdf") $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 从HTML生成PDF 使用我们的RenderHtmlAsPdf方法轻松将HTML文件转换为PDF并快速保存您的像素完美PDF。 :path=/static-assets/pdf/content-code-examples/how-to/html-file-to-pdf.cs using IronPdf; using IronPdf.Engines.Chrome; using IronPdf.Rendering; var renderer = new ChromePdfRenderer { RenderingOptions = new ChromePdfRenderOptions { CssMediaType = PdfCssMediaType.Print, MarginBottom = 0, MarginLeft = 0, MarginRight = 0, MarginTop = 0, Timeout = 120, }, }; renderer.RenderingOptions.WaitFor.RenderDelay(50); // Create a PDF from an existing HTML file using C# var pdf = renderer.RenderHtmlFileAsPdf("example.html"); // Export to a file or Stream pdf.SaveAs("output.pdf"); Imports IronPdf Imports IronPdf.Engines.Chrome Imports IronPdf.Rendering Private renderer = New ChromePdfRenderer With { .RenderingOptions = New ChromePdfRenderOptions With { .CssMediaType = PdfCssMediaType.Print, .MarginBottom = 0, .MarginLeft = 0, .MarginRight = 0, .MarginTop = 0, .Timeout = 120 } } renderer.RenderingOptions.WaitFor.RenderDelay(50) ' Create a PDF from an existing HTML file using C# Dim pdf = renderer.RenderHtmlFileAsPdf("example.html") ' Export to a file or Stream pdf.SaveAs("output.pdf") $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 从URL生成PDF 使用RenderUrlAsPdf快速将URL转换为PDF,只需几行代码。 输入URL作为参数并轻松保存。 :path=/static-assets/pdf/content-code-examples/how-to/url-to-pdf.cs using IronPdf; // Instantiate Renderer var renderer = new ChromePdfRenderer(); // Create a PDF from a URL or local file path var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page"); // Export to a file or Stream pdf.SaveAs("url.pdf"); Imports IronPdf ' Instantiate Renderer Private renderer = New ChromePdfRenderer() ' Create a PDF from a URL or local file path Private pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page") ' Export to a file or Stream pdf.SaveAs("url.pdf") $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 从图像生成PDF 您是否有想要显示为PDF的图像? 使用我们的ImageToPdfConverter类并调用ImageToPdf方法快速转换。 :path=/static-assets/pdf/content-code-examples/how-to/image-to-pdf-convert-one-image.cs using IronPdf; string imagePath = "meetOurTeam.jpg"; // Convert an image to a PDF PdfDocument pdf = ImageToPdfConverter.ImageToPdf(imagePath); // Export the PDF pdf.SaveAs("imageToPdf.pdf"); Imports IronPdf Private imagePath As String = "meetOurTeam.jpg" ' Convert an image to a PDF Private pdf As PdfDocument = ImageToPdfConverter.ImageToPdf(imagePath) ' Export the PDF pdf.SaveAs("imageToPdf.pdf") $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 从PDF生成图像 对于上面的示例的反操作,我们可以首先将输入转换为PDF,然后使用RasterizeToImageFiles方法将PDF转换为图像。 :path=/static-assets/pdf/content-code-examples/how-to/rasterize-pdf-to-images-rasterize.cs using IronPdf; // Instantiate Renderer ChromePdfRenderer renderer = new ChromePdfRenderer(); // Render PDF from web URL PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page"); // Export images from PDF pdf.RasterizeToImageFiles("wikipage_*.png"); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 将DOCX转换为PDF 你有没有需要轻松将DOCX文件(如简历)转换为PDF? IronPDF可以满足您的需求。 只需调用RenderDocxAsPDF进行转换。 :path=/static-assets/pdf/content-code-examples/how-to/docx-to-pdf-from-file.cs using IronPdf; // Instantiate Renderer DocxToPdfRenderer renderer = new DocxToPdfRenderer(); // Render from DOCX file PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx"); // Save the PDF pdf.SaveAs("pdfFromDocx.pdf"); Imports IronPdf ' Instantiate Renderer Private renderer As New DocxToPdfRenderer() ' Render from DOCX file Private pdf As PdfDocument = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx") ' Save the PDF pdf.SaveAs("pdfFromDocx.pdf") $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 将RTF转换为PDF 要将RTF文件转换为PDF,我们调用RenderRtfFileAsPdf,以RTF文件作为输入。 :path=/static-assets/pdf/content-code-examples/how-to/rtf-to-pdf-from-file.cs using IronPdf; // Instantiate Renderer ChromePdfRenderer renderer = new ChromePdfRenderer(); // Render from RTF file PdfDocument pdf = renderer.RenderRtfFileAsPdf("sample.rtf"); // Save the PDF pdf.SaveAs("pdfFromRtfFile.pdf"); Imports IronPdf ' Instantiate Renderer Private renderer As New ChromePdfRenderer() ' Render from RTF file Private pdf As PdfDocument = renderer.RenderRtfFileAsPdf("sample.rtf") ' Save the PDF pdf.SaveAs("pdfFromRtfFile.pdf") $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 将MD转换为PDF 要将MD转换为PDF,可以调用RenderMarkdownFileAsPdf方法,以MD文件为输入。 :path=/static-assets/pdf/content-code-examples/how-to/md-to-pdf-from-file.cs using IronPdf; // Instantiate Renderer ChromePdfRenderer renderer = new ChromePdfRenderer(); // Render from markdown file PdfDocument pdf = renderer.RenderMarkdownFileAsPdf("sample.md"); // Save the PDF pdf.SaveAs("pdfFromMarkdownFile.pdf"); Imports IronPdf ' Instantiate Renderer Private renderer As New ChromePdfRenderer() ' Render from markdown file Private pdf As PdfDocument = renderer.RenderMarkdownFileAsPdf("sample.md") ' Save the PDF pdf.SaveAs("pdfFromMarkdownFile.pdf") $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 将XML转换为PDF 虽然将XML转换为PDF可能相当具有挑战性,IronPDF仍迎接这一挑战,帮助在几步之内将XML转换为PDF。 我们从XLST模板开始,然后通过XLST转换将XML转为HTML再到PDF。 这里提供了一个简化的代码片段以帮助您开始。 // XSLT template that defines the transformation from XML to HTML string xslt = @"<?xml version='1.0' encoding='UTF-8'?> <xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> <xsl:template match='/'> <html> <style> td{ text-align: center; padding: 20px; border: 1px solid #CDE7F0; } th{ color: white; padding: 20px; } </style> <body style='font-family: Arial, Helvetica Neue, Helvetica, sans-serif;'> <table style='border-collapse: collapse;'> <thead> <tr> <th colspan='3'> <img style='margin: auto;' src='https://ironsoftware.com/img/svgs/ironsoftware-logo-black.svg'/> </th> </tr> </thead> <tbody> <tr bgcolor='#9acd32'> <th bgcolor='#32ab90'>Title</th> <th bgcolor='#f49400'>Feature</th> <th bgcolor='#2a95d5'>Compatible</th> </tr> <xsl:for-each select='catalog/cd'> <tr> <td style='font-weight: bold;'><xsl:value-of select='title'/></td> <td style='background-color: #eff8fb; color: #2a95d5; font-weight: bold;'><xsl:value-of select='feature'/></td> <td><xsl:value-of select='compatible'/></td> </tr> </xsl:for-each> </tbody> </table> </body> </html> </xsl:template> </xsl:stylesheet> "; // XML data to transform string xml = @"<?xml version='1.0' encoding='UTF-8'?> <catalog> <cd> <title>IronPDF</title> <feature>Generate, format and manipulate PDFs</feature> <compatible>Microsoft Windows, Linux (Debian, CentOS, Ubuntu), MacOS, Docker (Windows, Linux, Azure), Azure (VPS, Webapps, Websites, Functions), AWS</compatible> </cd> <cd> <title>IronOCR</title> <feature>OCR engine, input, result</feature> <compatible>Microsoft Windows, Linux, MacOS, Docker, Azure, AWS</compatible> </cd> <cd> <title>IronBarcode</title> <feature>Format, read and write Barcode</feature> <compatible>Microsoft Windows, Linux, MacOS, Docker, Azure, AWS</compatible> </cd> </catalog> "; // Create an instance of XslCompiledTransform XslCompiledTransform transform = new XslCompiledTransform(); // Load the XSLT from a string using (XmlReader reader = XmlReader.Create(new StringReader(xslt))) { transform.Load(reader); } // Transform the XML to HTML StringWriter results = new StringWriter(); using (XmlReader reader = XmlReader.Create(new StringReader(xml))) { transform.Transform(reader, null, results); } // Create a renderer for converting HTML to PDF IronPdf.ChromePdfRenderer renderer = new IronPdf.ChromePdfRenderer(); // Options, headers, and footers may be set here if needed // Render our XML as a PDF via XSLT transformation renderer.RenderHtmlAsPdf(results.ToString()).SaveAs("Final.pdf"); // XSLT template that defines the transformation from XML to HTML string xslt = @"<?xml version='1.0' encoding='UTF-8'?> <xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> <xsl:template match='/'> <html> <style> td{ text-align: center; padding: 20px; border: 1px solid #CDE7F0; } th{ color: white; padding: 20px; } </style> <body style='font-family: Arial, Helvetica Neue, Helvetica, sans-serif;'> <table style='border-collapse: collapse;'> <thead> <tr> <th colspan='3'> <img style='margin: auto;' src='https://ironsoftware.com/img/svgs/ironsoftware-logo-black.svg'/> </th> </tr> </thead> <tbody> <tr bgcolor='#9acd32'> <th bgcolor='#32ab90'>Title</th> <th bgcolor='#f49400'>Feature</th> <th bgcolor='#2a95d5'>Compatible</th> </tr> <xsl:for-each select='catalog/cd'> <tr> <td style='font-weight: bold;'><xsl:value-of select='title'/></td> <td style='background-color: #eff8fb; color: #2a95d5; font-weight: bold;'><xsl:value-of select='feature'/></td> <td><xsl:value-of select='compatible'/></td> </tr> </xsl:for-each> </tbody> </table> </body> </html> </xsl:template> </xsl:stylesheet> "; // XML data to transform string xml = @"<?xml version='1.0' encoding='UTF-8'?> <catalog> <cd> <title>IronPDF</title> <feature>Generate, format and manipulate PDFs</feature> <compatible>Microsoft Windows, Linux (Debian, CentOS, Ubuntu), MacOS, Docker (Windows, Linux, Azure), Azure (VPS, Webapps, Websites, Functions), AWS</compatible> </cd> <cd> <title>IronOCR</title> <feature>OCR engine, input, result</feature> <compatible>Microsoft Windows, Linux, MacOS, Docker, Azure, AWS</compatible> </cd> <cd> <title>IronBarcode</title> <feature>Format, read and write Barcode</feature> <compatible>Microsoft Windows, Linux, MacOS, Docker, Azure, AWS</compatible> </cd> </catalog> "; // Create an instance of XslCompiledTransform XslCompiledTransform transform = new XslCompiledTransform(); // Load the XSLT from a string using (XmlReader reader = XmlReader.Create(new StringReader(xslt))) { transform.Load(reader); } // Transform the XML to HTML StringWriter results = new StringWriter(); using (XmlReader reader = XmlReader.Create(new StringReader(xml))) { transform.Transform(reader, null, results); } // Create a renderer for converting HTML to PDF IronPdf.ChromePdfRenderer renderer = new IronPdf.ChromePdfRenderer(); // Options, headers, and footers may be set here if needed // Render our XML as a PDF via XSLT transformation renderer.RenderHtmlAsPdf(results.ToString()).SaveAs("Final.pdf"); ' XSLT template that defines the transformation from XML to HTML Dim xslt As String = "<?xml version='1.0' encoding='UTF-8'?> <xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> <xsl:template match='/'> <html> <style> td{ text-align: center; padding: 20px; border: 1px solid #CDE7F0; } th{ color: white; padding: 20px; } </style> <body style='font-family: Arial, Helvetica Neue, Helvetica, sans-serif;'> <table style='border-collapse: collapse;'> <thead> <tr> <th colspan='3'> <img style='margin: auto;' src='https://ironsoftware.com/img/svgs/ironsoftware-logo-black.svg'/> </th> </tr> </thead> <tbody> <tr bgcolor='#9acd32'> <th bgcolor='#32ab90'>Title</th> <th bgcolor='#f49400'>Feature</th> <th bgcolor='#2a95d5'>Compatible</th> </tr> <xsl:for-each select='catalog/cd'> <tr> <td style='font-weight: bold;'><xsl:value-of select='title'/></td> <td style='background-color: #eff8fb; color: #2a95d5; font-weight: bold;'><xsl:value-of select='feature'/></td> <td><xsl:value-of select='compatible'/></td> </tr> </xsl:for-each> </tbody> </table> </body> </html> </xsl:template> </xsl:stylesheet> " ' XML data to transform Dim xml As String = "<?xml version='1.0' encoding='UTF-8'?> <catalog> <cd> <title>IronPDF</title> <feature>Generate, format and manipulate PDFs</feature> <compatible>Microsoft Windows, Linux (Debian, CentOS, Ubuntu), MacOS, Docker (Windows, Linux, Azure), Azure (VPS, Webapps, Websites, Functions), AWS</compatible> </cd> <cd> <title>IronOCR</title> <feature>OCR engine, input, result</feature> <compatible>Microsoft Windows, Linux, MacOS, Docker, Azure, AWS</compatible> </cd> <cd> <title>IronBarcode</title> <feature>Format, read and write Barcode</feature> <compatible>Microsoft Windows, Linux, MacOS, Docker, Azure, AWS</compatible> </cd> </catalog> " ' Create an instance of XslCompiledTransform Dim transform As New XslCompiledTransform() ' Load the XSLT from a string Using reader As XmlReader = XmlReader.Create(New StringReader(xslt)) transform.Load(reader) End Using ' Transform the XML to HTML Dim results As New StringWriter() Using reader As XmlReader = XmlReader.Create(New StringReader(xml)) transform.Transform(reader, Nothing, results) End Using ' Create a renderer for converting HTML to PDF Dim renderer As New IronPdf.ChromePdfRenderer() ' Options, headers, and footers may be set here if needed ' Render our XML as a PDF via XSLT transformation renderer.RenderHtmlAsPdf(results.ToString()).SaveAs("Final.pdf") $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 将PDF转换为HTML 除了将各种格式转换为PDF之外,IronPDF还支持将PDF转换为HTML的反操作。 下面是一个快速的代码片段来演示这一功能。 :path=/static-assets/pdf/content-code-examples/how-to/pdf-to-html.cs using IronPdf; using System; PdfDocument pdf = PdfDocument.FromFile("sample.pdf"); // Convert PDF to HTML string string html = pdf.ToHtmlString(); Console.WriteLine(html); // Convert PDF to HTML file pdf.SaveAsHtml("myHtml.html"); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 动态网页生成PDF 您是否需要保留并将动态网页转换为PDF,并保留精确的布局和格式? 不妨试试IronPDF,它能快速将多种流行的动态网页框架转换为PDF。 从ASPX页面生成PDF 以下是一个简短的代码片段,用于将ASPX页面在Active Server Pages中转换为PDF。 :path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-2.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using IronPdf; namespace AspxToPdfTutorial { public partial class Invoice : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser); } } } Imports System Imports System.Collections.Generic Imports System.Linq Imports System.Web Imports System.Web.UI Imports System.Web.UI.WebControls Imports IronPdf Namespace AspxToPdfTutorial Partial Public Class Invoice Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser) End Sub End Class End Namespace $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 XAML转换为PDF(MAUI) 对于希望构建跨平台应用程序的开发人员,.NET MAUI是框架中受欢迎的选择之一。 IronPDF完全支持使用几步将XAML转换为PDF。 :path=/static-assets/pdf/content-code-examples/how-to/xaml-to-pdf-maui-mainpage-xaml-cs.cs using IronPdf.Extensions.Maui; namespace mauiSample; public partial class MainPage : ContentPage { public MainPage() { InitializeComponent(); } private void PrintToPdf(object sender, EventArgs e) { ChromePdfRenderer renderer = new ChromePdfRenderer(); // Apply HTML header renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() { HtmlFragment = "<h1>Header</h1>", }; // Render PDF from Maui Page PdfDocument pdf = renderer.RenderContentPageToPdf<MainPage, App>().Result; pdf.SaveAs(@"C:\Users\lyty1\Downloads\contentPageToPdf.pdf"); } } Imports IronPdf.Extensions.Maui Namespace mauiSample Partial Public Class MainPage Inherits ContentPage Public Sub New() InitializeComponent() End Sub Private Sub PrintToPdf(ByVal sender As Object, ByVal e As EventArgs) Dim renderer As New ChromePdfRenderer() ' Apply HTML header renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {.HtmlFragment = "<h1>Header</h1>"} ' Render PDF from Maui Page Dim pdf As PdfDocument = renderer.RenderContentPageToPdf(Of MainPage, App)().Result pdf.SaveAs("C:\Users\lyty1\Downloads\contentPageToPdf.pdf") End Sub End Class End Namespace $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 生成PDF报告 在生成PDF报告时,精确的尺寸和格式至关重要。 因此,IronPDF允许您通过仅几步无缝生成PDF。 :path=/static-assets/pdf/content-code-examples/how-to/csharp-pdf-reports-render-html-file.cs using IronPdf; ChromePdfRenderer renderer = new ChromePdfRenderer(); renderer.RenderHtmlFileAsPdf("report.html").SaveAs("report.pdf"); Imports IronPdf Private renderer As New ChromePdfRenderer() renderer.RenderHtmlFileAsPdf("report.html").SaveAs("report.pdf") $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 在Blazor服务器中创建PDF IronPDF支持.NET 6,包含Blazor等项目类型,此代码片段简要介绍了如何在Blazor服务器中创建PDF。 @code { // Model to bind user input private InputHTMLModel _InputMsgModel = new InputHTMLModel(); private async Task SubmitHTML() { // Set your IronPDF license key IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"; // Create a renderer to convert HTML to PDF var render = new IronPdf.ChromePdfRenderer(); // Render the HTML input into a PDF document var doc = render.RenderHtmlAsPdf(_InputMsgModel.HTML); var fileName = "iron.pdf"; // Create a stream reference for the PDF content using var streamRef = new DotNetStreamReference(stream: doc.Stream); // Invoke JavaScript function to download the PDF in the browser await JS.InvokeVoidAsync("SubmitHTML", fileName, streamRef); } public class InputHTMLModel { public string HTML { get; set; } = "My new message"; } } @code { // Model to bind user input private InputHTMLModel _InputMsgModel = new InputHTMLModel(); private async Task SubmitHTML() { // Set your IronPDF license key IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"; // Create a renderer to convert HTML to PDF var render = new IronPdf.ChromePdfRenderer(); // Render the HTML input into a PDF document var doc = render.RenderHtmlAsPdf(_InputMsgModel.HTML); var fileName = "iron.pdf"; // Create a stream reference for the PDF content using var streamRef = new DotNetStreamReference(stream: doc.Stream); // Invoke JavaScript function to download the PDF in the browser await JS.InvokeVoidAsync("SubmitHTML", fileName, streamRef); } public class InputHTMLModel { public string HTML { get; set; } = "My new message"; } } code If True Then ' Model to bind user input private InputHTMLModel _InputMsgModel = New InputHTMLModel() 'INSTANT VB TODO TASK: Local functions are not converted by Instant VB: ' private async Task SubmitHTML() ' { ' ' Set your IronPDF license key ' IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"; ' ' ' Create a renderer to convert HTML to PDF ' var render = New IronPdf.ChromePdfRenderer(); ' ' ' Render the HTML input into a PDF document ' var doc = render.RenderHtmlAsPdf(_InputMsgModel.HTML); ' ' var fileName = "iron.pdf"; ' ' ' Create a stream reference for the PDF content ' var streamRef = New DotNetStreamReference(stream: doc.Stream); ' ' ' Invoke JavaScript function to download the PDF in the browser ' await JS.InvokeVoidAsync("SubmitHTML", fileName, streamRef); ' } 'INSTANT VB TODO TASK: Local functions are not converted by Instant VB: ' public class InputHTMLModel ' { ' public string HTML ' { ' get; ' set; ' } = "My new message"; ' } End If $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 Razor到PDF(Blazor服务器) 除在Blazor服务器中创建PDF外,IronPDF还支持从Blazor页面中的Razor组件生成PDF文档。 使得PDF文件和页面的创建更加流线型。 [Parameter] public IEnumerable<PersonInfo> persons { get; set; } public Dictionary<string, object> Parameters { get; set; } = new Dictionary<string, object>(); protected override async Task OnInitializedAsync() { persons = new List<PersonInfo> { new PersonInfo { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" }, new PersonInfo { Name = "Bob", Title = "Mr.", Description = "Software Engineer" }, new PersonInfo { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" } }; } private async void PrintToPdf() { ChromePdfRenderer renderer = new ChromePdfRenderer(); // Apply text footer renderer.RenderingOptions.TextFooter = new TextHeaderFooter() { LeftText = "{date} - {time}", DrawDividerLine = true, RightText = "Page {page} of {total-pages}", Font = IronSoftware.Drawing.FontTypes.Arial, FontSize = 11 }; Parameters.Add("persons", persons); // Render razor component to PDF PdfDocument pdf = renderer.RenderRazorComponentToPdf<Person>(Parameters); File.WriteAllBytes("razorComponentToPdf.pdf", pdf.BinaryData); } [Parameter] public IEnumerable<PersonInfo> persons { get; set; } public Dictionary<string, object> Parameters { get; set; } = new Dictionary<string, object>(); protected override async Task OnInitializedAsync() { persons = new List<PersonInfo> { new PersonInfo { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" }, new PersonInfo { Name = "Bob", Title = "Mr.", Description = "Software Engineer" }, new PersonInfo { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" } }; } private async void PrintToPdf() { ChromePdfRenderer renderer = new ChromePdfRenderer(); // Apply text footer renderer.RenderingOptions.TextFooter = new TextHeaderFooter() { LeftText = "{date} - {time}", DrawDividerLine = true, RightText = "Page {page} of {total-pages}", Font = IronSoftware.Drawing.FontTypes.Arial, FontSize = 11 }; Parameters.Add("persons", persons); // Render razor component to PDF PdfDocument pdf = renderer.RenderRazorComponentToPdf<Person>(Parameters); File.WriteAllBytes("razorComponentToPdf.pdf", pdf.BinaryData); } <Parameter> Public Property persons() As IEnumerable(Of PersonInfo) Public Property Parameters() As New Dictionary(Of String, Object)() Protected Overrides Async Function OnInitializedAsync() As Task persons = New List(Of PersonInfo) From { New PersonInfo With { .Name = "Alice", .Title = "Mrs.", .Description = "Software Engineer" }, New PersonInfo With { .Name = "Bob", .Title = "Mr.", .Description = "Software Engineer" }, New PersonInfo With { .Name = "Charlie", .Title = "Mr.", .Description = "Software Engineer" } } End Function Private Async Sub PrintToPdf() Dim renderer As New ChromePdfRenderer() ' Apply text footer renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With { .LeftText = "{date} - {time}", .DrawDividerLine = True, .RightText = "Page {page} of {total-pages}", .Font = IronSoftware.Drawing.FontTypes.Arial, .FontSize = 11 } Parameters.Add("persons", persons) ' Render razor component to PDF Dim pdf As PdfDocument = renderer.RenderRazorComponentToPdf(Of Person)(Parameters) File.WriteAllBytes("razorComponentToPdf.pdf", pdf.BinaryData) End Sub $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 CSHTML到PDF 将CSHTML(Razor)转换为PDF允许您直接从网页应用程序生成专业、打印就绪的文档。 这对于发票、报告、合同或任何动态内容非常有用。 IronPDF支持Razor Pages、MVC Core和MVC Framework,以及无头渲染,使其在.NET应用程序中轻松集成PDF生成,只需几行代码。 CSHTML到PDF (Razor Pages) using IronPdf.Razor.Pages; public IActionResult OnPostAsync() { persons = new List<Person> { new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" }, new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" }, new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" } }; ViewData["personList"] = persons; ChromePdfRenderer renderer = new ChromePdfRenderer(); // Render Razor Page to PDF document PdfDocument pdf = renderer.RenderRazorToPdf(this); Response.Headers.Add("Content-Disposition", "inline"); return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf"); } using IronPdf.Razor.Pages; public IActionResult OnPostAsync() { persons = new List<Person> { new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" }, new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" }, new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" } }; ViewData["personList"] = persons; ChromePdfRenderer renderer = new ChromePdfRenderer(); // Render Razor Page to PDF document PdfDocument pdf = renderer.RenderRazorToPdf(this); Response.Headers.Add("Content-Disposition", "inline"); return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf"); } Imports IronPdf.Razor.Pages Public Function OnPostAsync() As IActionResult persons = New List(Of Person) From { New Person With { .Name = "Alice", .Title = "Mrs.", .Description = "Software Engineer" }, New Person With { .Name = "Bob", .Title = "Mr.", .Description = "Software Engineer" }, New Person With { .Name = "Charlie", .Title = "Mr.", .Description = "Software Engineer" } } ViewData("personList") = persons Dim renderer As New ChromePdfRenderer() ' Render Razor Page to PDF document Dim pdf As PdfDocument = renderer.RenderRazorToPdf(Me) Response.Headers.Add("Content-Disposition", "inline") Return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf") End Function $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 CSHTML到PDF (MVC Core) public async Task<IActionResult> Persons() { var persons = new List<Person> { new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" }, new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" }, new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" } }; if (_httpContextAccessor.HttpContext.Request.Method == HttpMethod.Post.Method) { ChromePdfRenderer renderer = new ChromePdfRenderer(); // Render View to PDF document PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Persons.cshtml", persons); Response.Headers.Add("Content-Disposition", "inline"); // Output PDF document return File(pdf.BinaryData, "application/pdf", "viewToPdfMVCCore.pdf"); } return View(persons); } public async Task<IActionResult> Persons() { var persons = new List<Person> { new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" }, new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" }, new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" } }; if (_httpContextAccessor.HttpContext.Request.Method == HttpMethod.Post.Method) { ChromePdfRenderer renderer = new ChromePdfRenderer(); // Render View to PDF document PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Persons.cshtml", persons); Response.Headers.Add("Content-Disposition", "inline"); // Output PDF document return File(pdf.BinaryData, "application/pdf", "viewToPdfMVCCore.pdf"); } return View(persons); } Public Async Function Persons() As Task(Of IActionResult) 'INSTANT VB NOTE: The local variable persons was renamed since Visual Basic will not allow local variables with the same name as their enclosing function or property: Dim persons_Conflict = New List(Of Person) From { New Person With { .Name = "Alice", .Title = "Mrs.", .Description = "Software Engineer" }, New Person With { .Name = "Bob", .Title = "Mr.", .Description = "Software Engineer" }, New Person With { .Name = "Charlie", .Title = "Mr.", .Description = "Software Engineer" } } If _httpContextAccessor.HttpContext.Request.Method = HttpMethod.Post.Method Then Dim renderer As New ChromePdfRenderer() ' Render View to PDF document Dim pdf As PdfDocument = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Persons.cshtml", persons_Conflict) Response.Headers.Add("Content-Disposition", "inline") ' Output PDF document Return File(pdf.BinaryData, "application/pdf", "viewToPdfMVCCore.pdf") End If Return View(persons_Conflict) End Function $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 CSHTML到PDF (MVC Framework) public ActionResult Persons() { var persons = new List<Person> { new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" }, new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" }, new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" } }; if (HttpContext.Request.HttpMethod == "POST") { // Provide the path to your view file var viewPath = "~/Views/Home/Persons.cshtml"; ChromePdfRenderer renderer = new ChromePdfRenderer(); // Render Razor view to PDF document PdfDocument pdf = renderer.RenderView(this.HttpContext, viewPath, persons); Response.Headers.Add("Content-Disposition", "inline"); // View the PDF return File(pdf.BinaryData, "application/pdf"); } return View(persons); } public ActionResult Persons() { var persons = new List<Person> { new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" }, new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" }, new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" } }; if (HttpContext.Request.HttpMethod == "POST") { // Provide the path to your view file var viewPath = "~/Views/Home/Persons.cshtml"; ChromePdfRenderer renderer = new ChromePdfRenderer(); // Render Razor view to PDF document PdfDocument pdf = renderer.RenderView(this.HttpContext, viewPath, persons); Response.Headers.Add("Content-Disposition", "inline"); // View the PDF return File(pdf.BinaryData, "application/pdf"); } return View(persons); } Public Function Persons() As ActionResult 'INSTANT VB NOTE: The local variable persons was renamed since Visual Basic will not allow local variables with the same name as their enclosing function or property: Dim persons_Conflict = New List(Of Person) From { New Person With { .Name = "Alice", .Title = "Mrs.", .Description = "Software Engineer" }, New Person With { .Name = "Bob", .Title = "Mr.", .Description = "Software Engineer" }, New Person With { .Name = "Charlie", .Title = "Mr.", .Description = "Software Engineer" } } If HttpContext.Request.HttpMethod = "POST" Then ' Provide the path to your view file Dim viewPath = "~/Views/Home/Persons.cshtml" Dim renderer As New ChromePdfRenderer() ' Render Razor view to PDF document Dim pdf As PdfDocument = renderer.RenderView(Me.HttpContext, viewPath, persons_Conflict) Response.Headers.Add("Content-Disposition", "inline") ' View the PDF Return File(pdf.BinaryData, "application/pdf") End If Return View(persons_Conflict) End Function $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 CSHTML到PDF (Headlessly) app.MapGet("/PrintPdf", async () => { // Set your IronPDF license key IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"; // Enable detailed logging for troubleshooting IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All; // Render the Razor view to an HTML string string html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml"); // Create a new instance of ChromePdfRenderer ChromePdfRenderer renderer = new ChromePdfRenderer(); // Render the HTML string as a PDF document PdfDocument pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot"); // Return the PDF file as a response return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf"); }); app.MapGet("/PrintPdf", async () => { // Set your IronPDF license key IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"; // Enable detailed logging for troubleshooting IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All; // Render the Razor view to an HTML string string html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml"); // Create a new instance of ChromePdfRenderer ChromePdfRenderer renderer = new ChromePdfRenderer(); // Render the HTML string as a PDF document PdfDocument pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot"); // Return the PDF file as a response return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf"); }); app.MapGet("/PrintPdf", Async Function() ' Set your IronPDF license key IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01" ' Enable detailed logging for troubleshooting IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All ' Render the Razor view to an HTML string Dim html As String = Await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml") ' Create a new instance of ChromePdfRenderer Dim renderer As New ChromePdfRenderer() ' Render the HTML string as a PDF document Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html, "./wwwroot") ' Return the PDF file as a response Return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf") End Function) $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 网络访问 TLS网站与系统登录 IronPDF为需要身份验证的网页转换提供了简单的解决方案。 通过其渲染选项,用户可以使用ChromeHttpLoginCredntials属性绕过用户名和密码。 :path=/static-assets/pdf/content-code-examples/how-to/logins-username-password.cs using IronPdf; using System; ChromePdfRenderer renderer = new ChromePdfRenderer { // setting login credentials to bypass basic authentication LoginCredentials = new ChromeHttpLoginCredentials() { NetworkUsername = "testUser", NetworkPassword = "testPassword" } }; var uri = new Uri("http://localhost:51169/Invoice"); // Render web URL to PDF PdfDocument pdf = renderer.RenderUrlAsPdf(uri); // Export PDF pdf.SaveAs("UrlToPdfExample.Pdf"); Imports IronPdf Imports System Private renderer As New ChromePdfRenderer With { .LoginCredentials = New ChromeHttpLoginCredentials() With { .NetworkUsername = "testUser", .NetworkPassword = "testPassword" } } Private uri = New Uri("http://localhost:51169/Invoice") ' Render web URL to PDF Private pdf As PdfDocument = renderer.RenderUrlAsPdf(uri) ' Export PDF pdf.SaveAs("UrlToPdfExample.Pdf") $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 Cookies 在额外的登录请求中应用cookies以确保您的会话已保存! 这将使得在锁定域内渲染附加资源变得更容易,全部在IronPDF内。 :path=/static-assets/pdf/content-code-examples/how-to/cookies-apply-cookies.cs using IronPdf; // Instantiate ChromePdfRenderer ChromePdfRenderer renderer = new ChromePdfRenderer(); renderer.RenderingOptions.RequestContext = IronPdf.Rendering.RequestContexts.Global; ChromeHttpLoginCredentials credentials = new ChromeHttpLoginCredentials() { NetworkUsername = "testUser", NetworkPassword = "testPassword" }; string uri = "http://localhost:51169/Invoice"; // Apply cookies renderer.ApplyCookies(uri, credentials); Imports IronPdf ' Instantiate ChromePdfRenderer Private renderer As New ChromePdfRenderer() renderer.RenderingOptions.RequestContext = IronPdf.Rendering.RequestContexts.Global Dim credentials As New ChromeHttpLoginCredentials() With { .NetworkUsername = "testUser", .NetworkPassword = "testPassword" } Dim uri As String = "http://localhost:51169/Invoice" ' Apply cookies renderer.ApplyCookies(uri, credentials) $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 HTTP请求头 除了cookies,IronPDF还允许用户使用授权令牌和其他常见相关字段自定义他们的HTTP请求头。 :path=/static-assets/pdf/content-code-examples/how-to/http-request-header.cs using IronPdf; using System.Collections.Generic; var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.HttpRequestHeaders = new Dictionary<string, string> { { "Authorization", "Bearer test-token-123" } }; // Render PDF from authenticated page var pdf = renderer.RenderUrlAsPdf("https://httpbin.org/bearer"); pdf.SaveAs("output.pdf"); Imports IronPdf Imports System.Collections.Generic Private renderer = New ChromePdfRenderer() renderer.RenderingOptions.HttpRequestHeaders = New Dictionary(Of String, String) From { {"Authorization", "Bearer test-token-123"} } ' Render PDF from authenticated page Dim pdf = renderer.RenderUrlAsPdf("https://httpbin.org/bearer") pdf.SaveAs("output.pdf") $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 定制您的PDF转换 渲染选项 IronPDF允许用户自定义他们生成的PDF的外观和格式。 用于将各种输入转换为PDF的ChromePdfRender类还包括RenderingOptions属性,让用户控制输出的外观。 :path=/static-assets/pdf/content-code-examples/how-to/rendering-options-render.cs using IronPdf; // Instantiate a ChromePdfRenderer object, which uses a headless version of the Chrome browser // to render HTML/CSS as a PDF document. ChromePdfRenderer renderer = new ChromePdfRenderer(); // Configure rendering options // Enable printing of HTML backgrounds to ensure all styles are visible. renderer.RenderingOptions.PrintHtmlBackgrounds = true; // Set HTML header content using HtmlHeaderFooter. renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter { // HTML fragment to add a header at the top of every page in the PDF. HtmlFragment = "<h1>Header Content</h1>" }; // Set a custom paper size for the PDF in millimeters (width and height). renderer.RenderingOptions.SetCustomPaperSizeinMilimeters(150, 150); // Set the top margin to zero to start the content from the very top of the page. renderer.RenderingOptions.MarginTop = 0; // Define a Markdown string that will be rendered as a PDF. // Markdown text allows basic formatting like bold and italic styles. string md = "This is some **bold** and *italic* text."; // Render the Markdown string to a PDF document. // The library will convert Markdown syntax into equivalent HTML before rendering it as a PDF. PdfDocument pdf = renderer.RenderMarkdownStringAsPdf(md); // Save the generated PDF to a file named "renderingOptions.pdf." pdf.SaveAs("renderingOptions.pdf"); Imports IronPdf ' Instantiate a ChromePdfRenderer object, which uses a headless version of the Chrome browser ' to render HTML/CSS as a PDF document. Private renderer As New ChromePdfRenderer() ' Configure rendering options ' Enable printing of HTML backgrounds to ensure all styles are visible. renderer.RenderingOptions.PrintHtmlBackgrounds = True ' Set HTML header content using HtmlHeaderFooter. renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With {.HtmlFragment = "<h1>Header Content</h1>"} ' Set a custom paper size for the PDF in millimeters (width and height). renderer.RenderingOptions.SetCustomPaperSizeinMilimeters(150, 150) ' Set the top margin to zero to start the content from the very top of the page. renderer.RenderingOptions.MarginTop = 0 ' Define a Markdown string that will be rendered as a PDF. ' Markdown text allows basic formatting like bold and italic styles. Dim md As String = "This is some **bold** and *italic* text." ' Render the Markdown string to a PDF document. ' The library will convert Markdown syntax into equivalent HTML before rendering it as a PDF. Dim pdf As PdfDocument = renderer.RenderMarkdownStringAsPdf(md) ' Save the generated PDF to a file named "renderingOptions.pdf." pdf.SaveAs("renderingOptions.pdf") $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 设置自定义边距 您可以通过调整边距进一步自定义输出PDF的外观,精确控制布局和间距。 :path=/static-assets/pdf/content-code-examples/how-to/custom-margins-set-margins.cs ChromePdfRenderer renderer = new ChromePdfRenderer(); renderer.RenderingOptions.MarginTop = 40; renderer.RenderingOptions.MarginLeft = 20; renderer.RenderingOptions.MarginRight = 20; renderer.RenderingOptions.MarginBottom = 40; Dim renderer As New ChromePdfRenderer() renderer.RenderingOptions.MarginTop = 40 renderer.RenderingOptions.MarginLeft = 20 renderer.RenderingOptions.MarginRight = 20 renderer.RenderingOptions.MarginBottom = 40 $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 灰度 要生成灰度PDF,我们在RenderingOptions中将GrayScale属性设置为true。 :path=/static-assets/pdf/content-code-examples/how-to/color-grayscale-grayscale.cs using IronPdf; ChromePdfRenderer renderer = new ChromePdfRenderer(); // Set GrayScale to true renderer.RenderingOptions.GrayScale = true; PdfDocument pdf = renderer.RenderUrlAsPdf("https://ironsoftware.com/"); pdf.CopyPage(0).SaveAs("test.pdf"); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 优化您的PDF布局 添加目录 用IronPDF创建一个动态目录,帮助读者轻松导航您的文档。 IronPDF自动处理目录,具有到和 等标题的超链接。 此外您还可以用HTML和CSS样式自定义目录的样式。 :path=/static-assets/pdf/content-code-examples/how-to/table-of-contents.cs using IronPdf; // Instantiate Renderer ChromePdfRenderer renderer = new ChromePdfRenderer(); // Configure render options renderer.RenderingOptions = new ChromePdfRenderOptions { // Enable table of content feature TableOfContents = TableOfContentsTypes.WithPageNumbers, }; PdfDocument pdf = renderer.RenderHtmlFileAsPdf("tableOfContent.html"); pdf.SaveAs("tableOfContents.pdf"); Imports IronPdf ' Instantiate Renderer Private renderer As New ChromePdfRenderer() ' Configure render options renderer.RenderingOptions = New ChromePdfRenderOptions With {.TableOfContents = TableOfContentsTypes.WithPageNumbers} Dim pdf As PdfDocument = renderer.RenderHtmlFileAsPdf("tableOfContent.html") pdf.SaveAs("tableOfContents.pdf") $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 分页 在章节之间添加分页以明确分隔内容并提高文档的可读性。 使用IronPDF,只需使用HTMLdiv style= page-break-after即可达到该效果。 :path=/static-assets/pdf/content-code-examples/how-to/html-to-pdf-page-breaks-page-break.cs using IronPdf; const string html = @" <table style='border: 1px solid #000000'> <tr> <th>Company</th> <th>Product</th> </tr> <tr> <td>Iron Software</td> <td>IronPDF</td> </tr> <tr> <td>Iron Software</td> <td>IronOCR</td> </tr> </table> <div style='page-break-after: always;'> </div> <img src='https://ironpdf.com/img/products/ironpdf-logo-text-dotnet.svg'>"; var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("Page_Break.pdf"); Imports IronPdf Private Const html As String = " <table style='border: 1px solid #000000'> <tr> <th>Company</th> <th>Product</th> </tr> <tr> <td>Iron Software</td> <td>IronPDF</td> </tr> <tr> <td>Iron Software</td> <td>IronOCR</td> </tr> </table> <div style='page-break-after: always;'> </div> <img src='https://ironpdf.com/img/products/ironpdf-logo-text-dotnet.svg'>" Private renderer = New ChromePdfRenderer() Private pdf = renderer.RenderHtmlAsPdf(html) pdf.SaveAs("Page_Break.pdf") $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 适合纸张和缩放 需要帮助决定如何将内容尺寸适合指定的纸张大小?IronPDF为您提供UseChromeDefault,模仿Google Chrome的打印预览如何缩放内容以适合页面。 :path=/static-assets/pdf/content-code-examples/how-to/viewport-zoom-default-chrome.cs using IronPdf; ChromePdfRenderer renderer = new ChromePdfRenderer(); // Chrome default rendering renderer.RenderingOptions.PaperFit.UseChromeDefaultRendering(); // Render web URL to PDF PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page"); pdf.SaveAs("chromeDefault.pdf"); Imports IronPdf Private renderer As New ChromePdfRenderer() ' Chrome default rendering renderer.RenderingOptions.PaperFit.UseChromeDefaultRendering() ' Render web URL to PDF Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page") pdf.SaveAs("chromeDefault.pdf") $vbLabelText $csharpLabel 有关此代码片段的更详细说明及其附加功能,请参见我们综合的指南。 结论 以上示例展示了您在使用IronPDF将多种格式转换为PDF时可以解锁的令人印象深刻的功能和特色。 如果您想请求功能或对IronPDF或许可有任何疑问,请联系我们的支持团队。 我们将非常乐意为您提供帮助。 常见问题解答 如何在.NET Core中将HTML转换为PDF? 要在.NET Core中将HTML转换为PDF,请使用IronPDF库。首先,通过NuGet安装包。然后,创建一个ChromePdfRenderer实例,并使用RenderHtmlAsPdf方法将HTML字符串转换为PDF格式。 如何将实时URL转换为PDF文档? 您可以使用IronPDF将实时URL转换为PDF文档,通过从NuGet安装库,创建ChromePdfRenderer实例,并调用RenderUrlAsPdf方法,传递您想转换的网页URL。 将Razor视图转换为PDF的步骤是什么? 要将Razor视图转换为PDF,将视图渲染为HTML字符串,然后将其传递给IronPDF的RenderHtmlAsPdf方法。这允许从MVC视图创建具有完整数据绑定的动态PDF。 现有的PDF文件可以修改吗? 是的,可以使用IronPDF修改现有的PDF文件。使用PdfDocument.FromFile加载PDF,然后进行合并、添加页眉/页脚或更改安全设置等修改。 渲染PDF有哪些选项可用? IronPDF通过ChromePdfRenderOptions提供各种渲染选项。您可以自定义纸张大小、方向、页边距等,确保您的PDF符合特定的布局和样式要求。 如何在Docker环境中部署PDF? 通过在Dockerfile中配置Linux依赖项来在Docker环境中部署PDF。使用IronPDF的IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig自动处理容器化应用程序中的依赖项。 可以将数字签名添加到PDF文件吗? 可以,使用PdfSignature类可以将数字签名添加到PDF文件。通过使用Sign方法和证书文件,您可以确保文档的真实性和完整性。 IronPDF为PDF提供哪些安全功能? IronPDF提供强大的安全功能,包括密码保护、加密和访问控制。通过SecuritySettings属性设置这些功能,以管理查看、打印和编辑的权限。 如何从PDF文档中提取文本和图像? 可以使用IronPDF的ExtractAllText和ExtractAllImages方法从PDF文档中提取文本和图像。这些方法允许处理整个文档或指定页面的数据。 如何将水印应用于PDF文件? 通过使用IronPDF的Watermark属性和HtmlStamp对象,可以将水印应用于PDF文件。对于更高级的需求,HtmlStamper类支持具有可自定义样式的HTML格式水印。 IronPDF 与 .NET 10 兼容吗?如何在 .NET 10 项目中使用它? 是的——IronPDF 完全支持 .NET 10,这是其跨平台、现代 .NET 版本支持的一部分。要在 .NET 10 项目中使用它,请安装IronPdf NuGet 包,在项目文件中将其引用为net10.0 ,然后即可像在早期 .NET 版本中一样使用ChromePdfRenderer等类和RenderHtmlAsPdf等方法。在渲染或处理 PDF 时,您可以受益于 .NET 10 固有的性能提升、内存使用优化和运行时改进。 Jacob Mellor 立即与工程团队聊天 首席技术官 Jacob Mellor 是 Iron Software 的首席技术官,是 C# PDF 技术的先锋工程师。作为 Iron Software 核心代码库的原始开发者,自公司成立以来,他就塑造了公司的产品架构,并与首席执行官 Cameron Rimington 一起将其转变成一家公司,拥有50多人,服务于 NASA、特斯拉和全球政府机构。Jacob 拥有曼彻斯特大学 (1998-2001) 的一级荣誉土木工程学士学位。1999 年在伦敦创办了自己的第一家软件公司,并于 2005 年创建了他的第一个 .NET 组件后,他专注于解决微软生态系统中的复杂问题。他的旗舰 IronPDF 和 IronSuite .NET 库在全球已获得超过 3000 万次的 NuGet 安装,其基础代码继续为全球使用的开发者工具提供支持。拥有 25 年商业经验和 41 年编程经验的 Jacob 仍专注于推动企业级 C#、Java 和 Python PDF 技术的创新,同时指导下一代技术领导者。 审核者 Jeffrey T. Fritz 首席项目经理 - .NET 社区团队 Jeff 也是 .NET 和 Visual Studio 团队的首席项目经理。他是 .NET Conf 虚拟会议系列的执行制片人,并主持“Fritz and Friends”直播节目,每周两次与观众一起谈论技术并编写代码。Jeff 撰写研讨会、演示文稿并计划包括 Microsoft Build、Microsoft Ignite、.NET Conf 和 Microsoft MVP 峰会在内的最大型微软开发者活动的内容。 准备开始了吗? Nuget 下载 16,133,208 | 版本: 2025.11 刚刚发布 免费 NuGet 下载 总下载量:16,133,208 查看许可证