# How to Convert HTML to PDF in C# .NET Core
由于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文档进行转换、自定义和优化。
*as-heading:2(快速入门:使用IronPDF将 HTML 转换为 PDF )*
使用IronPDF在.NET Core中轻松开始将HTML转换为PDF。 只需一行代码,您就可以使用IronPDF的强大API从HTML字符串生成像素完美的PDF。 本指南将向您展示如何快速将IronPDF集成到您的项目中,实现无缝的PDF生成,设置最小化。无论您是在转换HTML、URL还是Razor视图,IronPDF都简化了这个过程,让各级开发人员都可以轻松访问。 今天就开始转换,当您准备好时探索高级功能。
```cs
:title=Convert HTML to PDF Instantly
var pdf = new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello, PDF!</h1>");
```
*as-heading:2(目录)*
- **多功能PDF转换**
- [从HTML字符串生成PDF](#anchor-pdf-from-html-string)
- [从HTML文件生成PDF](#anchor-pdf-from-html)
- [从URL生成PDF](#anchor-pdf-from-url)
- [从图像生成PDF](#anchor-image-to-pdf)
- [从PDF生成图像](#anchor-image-from-pdf)
- [将DOCX转换为PDF](#anchor-convert-docx-to-pdf)
- [将RTF转换为PDF](#anchor-convert-rtf-to-pdf)
- [将MD转换为PDF](#anchor-convert-md-to-pdf)
- [将XML转换为PDF](#anchor-convert-xml-to-pdf)
- [将PDF转换为HTML](#anchor-pdf-to-html)
- **动态网页到PDF**
- [从ASPX页面生成PDF](#anchor-pdf-from-aspx-pages)
- [将XAML转换为PDF(MAUI)](#anchor-xaml-to-pdf-maui)
- [生成PDF报告](#anchor-generate-pdf-reports)
- [在Blazor服务器中创建PDF](#anchor-create-pdfs-in-blazor-servers)
- [Razor到PDF(Blazor服务器)](#anchor-razor-to-pdf-blazor-servers)
- [CSHTML到PDF概览](#anchor-cshtml-to-pdf)
- [CSHTML到PDF(Razor页面)](#anchor-cshtml-to-pdf-razor-pages)
- [CSHTML到PDF(MVC核心)](#anchor-cshtml-to-pdf-mvc-core)
- [CSHTML到PDF(MVC框架)](#anchor-cshtml-to-pdf-mvc-framework)
- [CSHTML到PDF(无头)](#anchor-cshtml-to-pdf-headlessly)
- **网络访问**
- [TLS网站与系统登录](#anchor-tls-website-system-logins)
- [Cookies](#anchor-cookies)
- [HTTP请求头](#anchor-http-request-header)
- **定制PDF转换**
- [渲染选项](#anchor-rendering-options)
- [设置自定义边距](#anchor-set-custom-margin)
- [灰度](#anchor-grayscale)
- **优化PDF布局**
- [添加目录](#anchor-add-a-table-of-contents)
- [分页](#anchor-page-break)
- [适合纸张和缩放](#anchor-fit-to-page-zoom)
## 多功能PDF转换
### 从HTML字符串生成PDF
为了从HTML字符串转换为PDF,我们可以使用`RenderHtmlAsPdf`方法迅速将HTML字符串转化为完美的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");
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/html-string-to-pdf/)。
### 从HTML生成PDF
使用我们的`RenderHtmlAsPdf`方法轻松将HTML文件转换为PDF,并快速保存您的完美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");
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/html-file-to-pdf/)。
### 从URL生成PDF
通过`RenderUrlAsPdf`在几行代码内快速将URL转换为PDF。 输入URL作为参数并轻松保存。
```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");
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/url-to-pdf/)。
### 从图像生成PDF
您是否有想要显示为PDF的图像? 用我们的`ImageToPdf`方法。
```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");
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/image-to-pdf/)。
### 从PDF生成图像
对于上面示例的相反过程,我们可以先将输入转换成PDF,然后使用`RasterizeToImageFiles`方法将PDF转换成图像。
```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");
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/rasterize-pdf-to-images/)。
### 将DOCX转换为PDF
你有没有需要轻松将DOCX文件(如简历)转换为PDF? IronPDF可以满足您的需求。 简单调用`RenderDocxAsPDF`方法进行转换。
```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");
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/docx-to-pdf/)。
### 将RTF转换为PDF
要将RTF文件转换为PDF,我们调用`RenderRtfFileAsPdf`方法,以RTF文件为输入。
```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");
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/rtf-to-pdf/)。
### 将MD转换为PDF
要将MD文件转换为PDF,我们可以调用`RenderMarkdownFileAsPdf`方法,将MD文件作为输入。
```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");
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/md-to-pdf/)。
### 将XML转换为PDF
虽然将XML转换为PDF相当具有挑战性,但IronPDF仍能迎接挑战,并帮助在几步内将XML转换为PDF。 我们从XLST模板开始,然后通过XLST转换将XML转为HTML再到PDF。 这里提供了一个简化的代码片段以帮助您开始。
```cs
// 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>
";
[...]
// 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");
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/xml-to-pdf/)。
### 将PDF转换为HTML
除了将各种格式转换为PDF之外,IronPDF还支持将PDF转换为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");
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/pdf-to-html/)。
## 动态网页生成PDF
您是否需要保留并将动态网页转换为PDF,并保留精确的布局和格式? 不妨试试IronPDF,它能快速将多种流行的动态网页框架转换为PDF。
### 从ASPX页面生成PDF
以下是一个简短的代码片段,用于将ASPX页面在Active Server Pages中转换为PDF。
```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);
}
}
}
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/aspx-to-pdf/)。
### XAML转换为PDF(MAUI)
对于希望构建跨平台应用程序的开发人员,.NET MAUI是框架中受欢迎的选择之一。 IronPDF完全支持使用几步将XAML转换为PDF。
```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");
}
}
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/xaml-to-pdf-maui/)。
### 生成PDF报告
在生成PDF报告时,精确的尺寸和格式至关重要。 因此,IronPDF允许您通过仅几步无缝生成PDF。
```cs
using IronPdf;
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderHtmlFileAsPdf("report.html").SaveAs("report.pdf");
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/csharp-pdf-reports/)。
### 在Blazor服务器中创建PDF
IronPDF支持.NET 6,包含Blazor等项目类型,此代码片段简要介绍了如何在Blazor服务器中创建PDF。
```csharp
@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";
}
}
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/blazor-tutorial/)。
### Razor到PDF(Blazor服务器)
除了在Blazor服务器中创建PDF之外,IronPDF还支持从Blazor页面中的Razor组件生成PDF文档。 使得PDF文件和页面的创建更加流线型。
```csharp
[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);
}
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/razor-to-pdf-blazor-server/)。
### CSHTML到PDF
将CSHTML(Razor)转换为PDF允许您直接从网页应用程序生成专业、打印就绪的文档。 这对于发票、报告、合同或任何动态内容非常有用。 IronPDF支持Razor Pages、MVC Core和MVC Framework,以及无头渲染,使其在.NET应用程序中轻松集成PDF生成,只需几行代码。
#### CSHTML到PDF(Razor页面)
```csharp
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");
}
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/cshtml-to-pdf-razor/)。
#### CSHTML到PDF(MVC核心)
```csharp
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);
}
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/cshtml-to-pdf-mvc-core/)。
#### CSHTML到PDF(MVC框架)
```csharp
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);
}
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/cshtml-to-pdf-mvc-framework/)。
#### CSHTML到PDF(无头)
```csharp
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");
});
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/cshtml-to-pdf-razor-headlessly/)。
## 网络访问
### TLS网站与系统登录
IronPDF为需要身份验证的网页转换提供了简单的解决方案。 通过其渲染选项,用户可以跳过用户名和密码来使用`ChromeHttpLoginCredntials`属性。
```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");
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/logins/)。
### Cookies
在额外的登录请求中应用cookies以确保您的会话已保存! 这将使得在锁定域内渲染附加资源变得更容易,全部在IronPDF内。
```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);
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/cookies/)。
### HTTP请求头
除了cookies,IronPDF还允许用户使用授权令牌和其他常见相关字段自定义他们的HTTP请求头。
```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");
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/http-request-header/)。
## 定制您的PDF转换
### 渲染选项
IronPDF允许用户自定义他们生成的PDF的外观和格式。 用于将各种输入转换为PDF的`RenderingOptions`属性,允许用户控制输出的外观。
```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");
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/rendering-options/)。
### 设置自定义边距
您可以通过调整边距进一步自定义输出PDF的外观,精确控制布局和间距。
```cs
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.MarginTop = 40;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
renderer.RenderingOptions.MarginBottom = 40;
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/custom-margins/)。
### 灰度
要生成灰度PDF,我们在`GrayScale`属性设置为true。
```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");
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/color-grayscale/)。
## 优化您的PDF布局
### 添加目录
用IronPDF创建一个动态目录,帮助读者轻松导航您的文档。 IronPDF自动处理内容的目录,并通过`h2`等标题添加超链接。 除此之外,您还可以使用HTML和CSS样式自定义目录的样式。
```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");
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/table-of-contents/)。
### 分页
在章节之间添加分页以明确分隔内容并提高文档的可读性。 对于IronPDF,只需使用HTML `div style= page-break-after`即可达到该效果。
```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");
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/html-to-pdf-page-breaks/)。
### 适合纸张和缩放
是否需要帮助决定适应特定纸张尺寸的内容尺寸?IronPDF为您提供`UseChromeDefault`的帮助,其模拟了Google 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");
```
有关此代码片段的更详细说明及其附加功能,请参见我们综合的[指南](https://ironpdf.com/how-to/viewport-zoom/)。
## 结论
以上示例展示了您在使用IronPDF将多种格式转换为PDF时可以解锁的令人印象深刻的功能和特色。
如果您想请求功能或对IronPDF或许可有任何疑问,请[联系我们的支持团队](/troubleshooting/engineering-request-pdf/)。 我们将非常乐意为您提供帮助。
using IronPdf;// Instantiate Renderervar 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 Streampdf.SaveAs("output.pdf");
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");
ImportsIronPdf' Instantiate RendererPrivate 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 Streampdf.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")
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 Streampdf.SaveAs("output.pdf");
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");
ImportsIronPdfImportsIronPdf.Engines.ChromeImportsIronPdf.RenderingPrivate renderer = New ChromePdfRendererWith { .RenderingOptions = New ChromePdfRenderOptionsWith { .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 Streampdf.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")
using IronPdf;// Instantiate Renderervar renderer = new ChromePdfRenderer();// Create a PDF from a URL or local file pathvar pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");// Export to a file or Streampdf.SaveAs("url.pdf");
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");
ImportsIronPdf' Instantiate RendererPrivate renderer = New ChromePdfRenderer()' Create a PDF from a URL or local file pathPrivate pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")' Export to a file or Streampdf.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")
using IronPdf;string imagePath = "meetOurTeam.jpg";// Convert an image to a PDFPdfDocument pdf = ImageToPdfConverter.ImageToPdf(imagePath);// Export the PDFpdf.SaveAs("imageToPdf.pdf");
using IronPdf;
string imagePath = "meetOurTeam.jpg";
// Convert an image to a PDF
PdfDocument pdf = ImageToPdfConverter.ImageToPdf(imagePath);
// Export the PDF
pdf.SaveAs("imageToPdf.pdf");
ImportsIronPdfPrivate imagePath AsString = "meetOurTeam.jpg"' Convert an image to a PDFPrivate pdf AsPdfDocument = ImageToPdfConverter.ImageToPdf(imagePath)' Export the PDFpdf.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")
using IronPdf;// Instantiate RendererChromePdfRenderer renderer = new ChromePdfRenderer();// Render PDF from web URLPdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");// Export images from PDFpdf.RasterizeToImageFiles("wikipage_*.png");
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");
ImportsIronPdf' Instantiate RendererDim renderer As New ChromePdfRenderer()' Render PDF from web URLDim pdf AsPdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")' Export images from PDFpdf.RasterizeToImageFiles("wikipage_*.png")
Imports IronPdf
' Instantiate Renderer
Dim renderer As New ChromePdfRenderer()
' Render PDF from web URL
Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")
' Export images from PDF
pdf.RasterizeToImageFiles("wikipage_*.png")
using IronPdf;// Instantiate RendererDocxToPdfRenderer renderer = new DocxToPdfRenderer();// Render from DOCX filePdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");// Save the PDFpdf.SaveAs("pdfFromDocx.pdf");
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");
ImportsIronPdf' Instantiate RendererDim renderer As New DocxToPdfRenderer()' Render from DOCX fileDim pdf AsPdfDocument = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx")' Save the PDFpdf.SaveAs("pdfFromDocx.pdf")
Imports IronPdf
' Instantiate Renderer
Dim renderer As New DocxToPdfRenderer()
' Render from DOCX file
Dim pdf As PdfDocument = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx")
' Save the PDF
pdf.SaveAs("pdfFromDocx.pdf")
using IronPdf;// Instantiate RendererChromePdfRenderer renderer = new ChromePdfRenderer();// Render from RTF filePdfDocument pdf = renderer.RenderRtfFileAsPdf("sample.rtf");// Save the PDFpdf.SaveAs("pdfFromRtfFile.pdf");
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");
ImportsIronPdf' Instantiate RendererPrivate renderer As New ChromePdfRenderer()' Render from RTF filePrivate pdf AsPdfDocument = renderer.RenderRtfFileAsPdf("sample.rtf")' Save the PDFpdf.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")
using IronPdf;// Instantiate RendererChromePdfRenderer renderer = new ChromePdfRenderer();// Render from markdown filePdfDocument pdf = renderer.RenderMarkdownFileAsPdf("sample.md");// Save the PDFpdf.SaveAs("pdfFromMarkdownFile.pdf");
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");
ImportsIronPdf' Instantiate RendererPrivate renderer As New ChromePdfRenderer()' Render from markdown filePrivate pdf AsPdfDocument = renderer.RenderMarkdownFileAsPdf("sample.md")' Save the PDFpdf.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")
// XSLT template that defines the transformation from XML to HTMLstring 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>";[...]// Create an instance of XslCompiledTransformXslCompiledTransform transform = new XslCompiledTransform();// Load the XSLT from a stringusing (XmlReader reader = XmlReader.Create(new StringReader(xslt))){ transform.Load(reader);}// Transform the XML to HTMLStringWriter results = new StringWriter();using (XmlReader reader = XmlReader.Create(new StringReader(xml))){ transform.Transform(reader, null, results);}// Create a renderer for converting HTML to PDFIronPdf.ChromePdfRenderer renderer = new IronPdf.ChromePdfRenderer();// Options, headers, and footers may be set here if needed// Render our XML as a PDF via XSLT transformationrenderer.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>
";
[...]
// 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");
ImportsSystem.XmlImportsSystem.IOImportsSystem.Xml.XslImportsIronPdf' XSLT template that defines the transformation from XML to HTMLDim xslt AsString = "<?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>"[...]' Create an instance of XslCompiledTransformDim transform As New XslCompiledTransform()' Load the XSLT from a stringUsing reader AsXmlReader = XmlReader.Create(New StringReader(xslt)) transform.Load(reader)EndUsing' Transform the XML to HTMLDim results As New StringWriter()Using reader AsXmlReader = XmlReader.Create(New StringReader(xml)) transform.Transform(reader, Nothing, results)EndUsing' Create a renderer for converting HTML to PDFDim renderer As New ChromePdfRenderer()' Options, headers, and footers may be set here if needed' Render our XML as a PDF via XSLT transformationrenderer.RenderHtmlAsPdf(results.ToString()).SaveAs("Final.pdf")
Imports System.Xml
Imports System.IO
Imports System.Xml.Xsl
Imports IronPdf
' 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>"
[...]
' 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 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")
using IronPdf;using System;PdfDocument pdf = PdfDocument.FromFile("sample.pdf");// Convert PDF to HTML stringstring html = pdf.ToHtmlString();Console.WriteLine(html);// Convert PDF to HTML filepdf.SaveAsHtml("myHtml.html");
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");
ImportsIronPdfImportsSystemDim pdf AsPdfDocument = PdfDocument.FromFile("sample.pdf")' Convert PDF to HTML stringDim html AsString = pdf.ToHtmlString()Console.WriteLine(html)' Convert PDF to HTML filepdf.SaveAsHtml("myHtml.html")
Imports IronPdf
Imports System
Dim pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")
' Convert PDF to HTML string
Dim html As String = pdf.ToHtmlString()
Console.WriteLine(html)
' Convert PDF to HTML file
pdf.SaveAsHtml("myHtml.html")
以下是一个简短的代码片段,用于将ASPX页面在Active Server Pages中转换为PDF。
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 voidPage_Load(object sender, EventArgs e) {IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser); } }}
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);
}
}
}
ImportsSystemImportsSystem.Collections.GenericImportsSystem.LinqImportsSystem.WebImportsSystem.Web.UIImportsSystem.Web.UI.WebControlsImportsIronPdfNamespaceAspxToPdfTutorialPartialPublic Class InvoiceInheritsSystem.Web.UI.PageProtected Sub Page_Load(ByVal sender AsObject, ByVal e AsEventArgs)IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser) End Sub End ClassEndNamespace
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
using IronPdf.Extensions.Maui;namespace mauiSample;public partial class MainPage : ContentPage{ publicMainPage() {InitializeComponent(); } private voidPrintToPdf(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"); }}
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");
}
}
ImportsIronPdf.Extensions.MauiNamespace mauiSamplePartialPublic Class MainPageInheritsContentPage Public Sub New()InitializeComponent() End Sub Private Sub PrintToPdf(ByVal sender AsObject, ByVal e AsEventArgs) 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 AsPdfDocument = renderer.RenderContentPageToPdf(OfMainPage, App)().Result pdf.SaveAs("C:\Users\lyty1\Downloads\contentPageToPdf.pdf") End Sub End ClassEndNamespace
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
@code { // Model to bind user input private InputHTMLModel _InputMsgModel = new InputHTMLModel(); private async TaskSubmitHTML() { // Set your IronPDF license keyIronPdf.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 awaitJS.InvokeVoidAsync("SubmitHTML", fileName, streamRef); } public class InputHTMLModel { public stringHTML { 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";
}
}
codeIf True Then ' Model to bind user input privateInputHTMLModel _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
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
[Parameter]publicIEnumerable<PersonInfo> persons { get; set; }publicDictionary<string, object> Parameters { get; set; } = new Dictionary<string, object>();protected override async TaskOnInitializedAsync(){ 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 voidPrintToPdf(){ 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 AsIEnumerable(OfPersonInfo)Public Property ParametersAsDictionary(OfString, Object) = New Dictionary(OfString, Object)()ProtectedOverridesAsync Function OnInitializedAsync() AsTask persons = New List(OfPersonInfo) From { New PersonInfoWith {.Name = "Alice", .Title = "Mrs.", .Description = "Software Engineer"}, New PersonInfoWith {.Name = "Bob", .Title = "Mr.", .Description = "Software Engineer"}, New PersonInfoWith {.Name = "Charlie", .Title = "Mr.", .Description = "Software Engineer"} }End FunctionPrivateAsync 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 AsPdfDocument = renderer.RenderRazorComponentToPdf(OfPerson)(Parameters)File.WriteAllBytes("razorComponentToPdf.pdf", pdf.BinaryData)End Sub
<Parameter>
Public Property persons As IEnumerable(Of PersonInfo)
Public Property Parameters As Dictionary(Of String, Object) = 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
using IronPdf.Razor.Pages;public IActionResultOnPostAsync(){ 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"); returnFile(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");
}
ImportsIronPdf.Razor.PagesPublic Function OnPostAsync() AsIActionResult persons = New List(OfPerson) From { New PersonWith {.Name = "Alice", .Title = "Mrs.", .Description = "Software Engineer"}, New PersonWith {.Name = "Bob", .Title = "Mr.", .Description = "Software Engineer"}, New PersonWith {.Name = "Charlie", .Title = "Mr.", .Description = "Software Engineer"} }ViewData("personList") = persons Dim renderer As New ChromePdfRenderer() ' Render Razor Page to PDF document Dim pdf AsPdfDocument = renderer.RenderRazorToPdf(Me) Response.Headers.Add("Content-Disposition", "inline") ReturnFile(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf")End Function
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
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 returnFile(pdf.BinaryData, "application/pdf", "viewToPdfMVCCore.pdf"); } returnView(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);
}
PublicAsync Function Persons() AsTask(OfIActionResult) Dim persons = New List(OfPerson) From { New PersonWith {.Name = "Alice", .Title = "Mrs.", .Description = "Software Engineer"}, New PersonWith {.Name = "Bob", .Title = "Mr.", .Description = "Software Engineer"}, New PersonWith {.Name = "Charlie", .Title = "Mr.", .Description = "Software Engineer"} } If _httpContextAccessor.HttpContext.Request.Method = HttpMethod.Post.MethodThen Dim renderer As New ChromePdfRenderer() ' Render View to PDF document Dim pdf AsPdfDocument = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Persons.cshtml", persons) Response.Headers.Add("Content-Disposition", "inline") ' Output PDF document ReturnFile(pdf.BinaryData, "application/pdf", "viewToPdfMVCCore.pdf") End If ReturnView(persons)End Function
Public Async Function Persons() As Task(Of IActionResult)
Dim 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"}
}
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)
Response.Headers.Add("Content-Disposition", "inline")
' Output PDF document
Return File(pdf.BinaryData, "application/pdf", "viewToPdfMVCCore.pdf")
End If
Return View(persons)
End Function
public ActionResultPersons(){ 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 returnFile(pdf.BinaryData, "application/pdf"); } returnView(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() AsActionResult Dim persons = New List(OfPerson) From { New PersonWith {.Name = "Alice", .Title = "Mrs.", .Description = "Software Engineer"}, New PersonWith {.Name = "Bob", .Title = "Mr.", .Description = "Software Engineer"}, New PersonWith {.Name = "Charlie", .Title = "Mr.", .Description = "Software Engineer"} } IfHttpContext.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 AsPdfDocument = renderer.RenderView(Me.HttpContext, viewPath, persons) Response.Headers.Add("Content-Disposition", "inline") ' View the PDF ReturnFile(pdf.BinaryData, "application/pdf") End If ReturnView(persons)End Function
Public Function Persons() As ActionResult
Dim 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"}
}
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)
Response.Headers.Add("Content-Disposition", "inline")
' View the PDF
Return File(pdf.BinaryData, "application/pdf")
End If
Return View(persons)
End Function
app.MapGet("/PrintPdf", async () =>{ // Set your IronPDF license keyIronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"; // Enable detailed logging for troubleshootingIronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All; // Render the Razor view to an HTML string string html = awaitRazorTemplateEngine.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 returnResults.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");
});
ImportsIronPdfImportsMicrosoft.AspNetCore.Httpapp.MapGet("/PrintPdf", Async Function() AsTask(OfIResult) ' Set your IronPDF license keyIronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01" ' Enable detailed logging for troubleshootingIronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All ' Render the Razor view to an HTML string Dim html AsString = AwaitRazorTemplateEngine.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 AsPdfDocument = renderer.RenderHtmlAsPdf(html, "./wwwroot") ' Return the PDF file as a response ReturnResults.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf")End Function)
Imports IronPdf
Imports Microsoft.AspNetCore.Http
app.MapGet("/PrintPdf", Async Function() As Task(Of IResult)
' 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)
using IronPdf;using System;ChromePdfRenderer renderer = new ChromePdfRenderer{ // setting login credentials to bypass basic authenticationLoginCredentials = new ChromeHttpLoginCredentials() {NetworkUsername = "testUser",NetworkPassword = "testPassword" }};var uri = new Uri("http://localhost:51169/Invoice");// Render web URL to PDFPdfDocument pdf = renderer.RenderUrlAsPdf(uri);// Export PDFpdf.SaveAs("UrlToPdfExample.Pdf");
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");
ImportsIronPdfImportsSystemPrivate renderer As New ChromePdfRendererWith { .LoginCredentials = New ChromeHttpLoginCredentials() With { .NetworkUsername = "testUser", .NetworkPassword = "testPassword" }}Private uri = New Uri("http://localhost:51169/Invoice")' Render web URL to PDFPrivate pdf AsPdfDocument = renderer.RenderUrlAsPdf(uri)' Export PDFpdf.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")
using IronPdf;// Instantiate ChromePdfRendererChromePdfRenderer 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 cookiesrenderer.ApplyCookies(uri, credentials);
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);
ImportsIronPdf' Instantiate ChromePdfRendererPrivate renderer As New ChromePdfRenderer()renderer.RenderingOptions.RequestContext = IronPdf.Rendering.RequestContexts.GlobalDim credentials As New ChromeHttpLoginCredentials() With { .NetworkUsername = "testUser", .NetworkPassword = "testPassword"}Dim uri AsString = "http://localhost:51169/Invoice"' Apply cookiesrenderer.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)
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 pagevar pdf = renderer.RenderUrlAsPdf("https://httpbin.org/bearer");pdf.SaveAs("output.pdf");
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");
ImportsIronPdfImportsSystem.Collections.GenericDim renderer = New ChromePdfRenderer()renderer.RenderingOptions.HttpRequestHeaders = New Dictionary(OfString, String) From { {"Authorization", "Bearer test-token-123"}}' Render PDF from authenticated pageDim pdf = renderer.RenderUrlAsPdf("https://httpbin.org/bearer")pdf.SaveAs("output.pdf")
Imports IronPdf
Imports System.Collections.Generic
Dim 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")
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");
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");
ImportsIronPdf' 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 HtmlHeaderFooterWith {.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 AsString = "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 AsPdfDocument = 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")
Dim renderer As New ChromePdfRenderer()renderer.RenderingOptions.MarginTop = 40renderer.RenderingOptions.MarginLeft = 20renderer.RenderingOptions.MarginRight = 20renderer.RenderingOptions.MarginBottom = 40
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.MarginTop = 40
renderer.RenderingOptions.MarginLeft = 20
renderer.RenderingOptions.MarginRight = 20
renderer.RenderingOptions.MarginBottom = 40
using IronPdf;ChromePdfRenderer renderer = new ChromePdfRenderer();// Set GrayScale to truerenderer.RenderingOptions.GrayScale = true;PdfDocument pdf = renderer.RenderUrlAsPdf("https://ironsoftware.com/");pdf.CopyPage(0).SaveAs("test.pdf");
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");
ImportsIronPdfDim renderer As New ChromePdfRenderer()' Set GrayScale to truerenderer.RenderingOptions.GrayScale = TrueDim pdf AsPdfDocument = renderer.RenderUrlAsPdf("https://ironsoftware.com/")pdf.CopyPage(0).SaveAs("test.pdf")
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Set GrayScale to true
renderer.RenderingOptions.GrayScale = True
Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://ironsoftware.com/")
pdf.CopyPage(0).SaveAs("test.pdf")
using IronPdf;// Instantiate RendererChromePdfRenderer renderer = new ChromePdfRenderer();// Configure render optionsrenderer.RenderingOptions = new ChromePdfRenderOptions{ // Enable table of content featureTableOfContents = TableOfContentsTypes.WithPageNumbers,};PdfDocument pdf = renderer.RenderHtmlFileAsPdf("tableOfContent.html");pdf.SaveAs("tableOfContents.pdf");
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");
ImportsIronPdf' Instantiate RendererPrivate renderer As New ChromePdfRenderer()' Configure render optionsrenderer.RenderingOptions = New ChromePdfRenderOptionsWith {.TableOfContents = TableOfContentsTypes.WithPageNumbers}Dim pdf AsPdfDocument = 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")
using IronPdf;ChromePdfRenderer renderer = new ChromePdfRenderer();// Chrome default renderingrenderer.RenderingOptions.PaperFit.UseChromeDefaultRendering();// Render web URL to PDFPdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");pdf.SaveAs("chromeDefault.pdf");
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");
ImportsIronPdfPrivate renderer As New ChromePdfRenderer()' Chrome default renderingrenderer.RenderingOptions.PaperFit.UseChromeDefaultRendering()' Render web URL to PDFDim pdf AsPdfDocument = 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")
Jacob Mellor 是 Iron Software 的首席技术官,也是一位开创 C# PDF 技术的有远见的工程师。作为 Iron Software 核心代码库的原始开发者,他从公司成立之初就开始塑造公司的产品架构,与首席执行官 Cameron Rimington 一起将公司转变为一家拥有 50 多名员工的公司,为 NASA、特斯拉和全球政府机构提供服务。