IRONSOFTWAREHOME

Iron Suite for .NET

10个.NET库。一整套文档。

IRONPDF
IRONWORD
IRONXL
IRONPPT
IRONOCR
IRONBARCODE
IRONQR
IRONPRINT
IRONZIP
IRONWEBSCRAPER
使用 IRON SUITE

从 HTML 文件在 C# 中创建 PDF

Curtis Chau
Curtis Chau
Updated: 2026年6月15日

IronPDF 通过编程方式将 HTML 转换为 PDF 文档。

如何在C#中创建PDF - HTML到PDF示例

本文的源代码可用于 C#,作为一个 C# HTML 到 PDF 项目源代码下载

以下教程将引导您使用 IronPDF 作为 C# PDF 生成器的过程。 它涵盖了基础知识以及许多高级 C# PDF 主题。

HTML 转 PDF 演练

此演示将带您了解如何使用IronPDF的示例。 从 Iron Software 请求更多用例演示

这个演示包括Hello World,RenderHtmlAsPdfRenderUrlAsPdf示例。 所有示例都可以在 IronPDF 示例解决方案中的相应项目下找到。

步骤 1:安装

您可以通过NuGet安装IronPDF。 包名称为 IronPDF NuGet Package

或者您可以使用 直接库下载

步骤 2:Hello World

一旦将 IronPDF 安装并引用到您的项目中,您就可以立即开始使用它,只需输入几个字符串:

// Create a new instance of ChromePdfRenderer
var chromePdfRenderer = new ChromePdfRenderer();

然后如果您需要将 HTML 转换为 PDF:

// Define HTML content to turn into PDF
var html = @"<h1>Hello World!</h1><br><p>This is IronPdf.</p>";

// Render the HTML string as a PDF
using var pdf = chromePdfRenderer.RenderHtmlAsPdf(html);

// Save the resulting PDF to a file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRenderer.Pdf"));

或者如果您想将网页转换为 PDF 文件:

// URI of the page to turn into PDF
var uri = new Uri("http://www.google.com/ncr");

// Render the webpage as a PDF
using var pdf = chromePdfRenderer.RenderUrlAsPdf(uri);

// Save the resulting PDF to a file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"));

就是这样! 相应的结果是:

从HTML文件在C#中创建PDF,图1:将HTML转换为PDF的结果 将 HTML 转换为 PDF 的结果

从HTML文件在C#中创建PDF,图2:将网页转换为PDF的结果 将网页转换为 PDF 的结果

请在 IronPDFDemo.HelloWorld 项目下找到代码示例。

步骤 3:RenderHtmlAsPdf

示例 1

要评估一个更贴近现实的示例,想象一个需要转换为 PDF 的 HTML 发票。 下面是如何做到这一点的代码。

**注意:**您可以在 IronPDFDemo.DemoWebSite 项目中找到发票 HTML(~/Static/TestInvoice1.html)。 请注意,发票有用于"打印"媒体类型的自定义 CSS。

浏览器中的源发票看起来像这样:

从HTML文件在C#中创建PDF,图4:


要将其转换为 PDF 文件,使用与上面的 HelloWorld 示例类似的代码,区别是源 HTML 文件不同。

// Read HTML from file
var html = File.ReadAllText(Path.Combine(Directory.GetCurrentDirectory(), "TestInvoice1.html"));
var chromePdfRenderer = new ChromePdfRenderer();
using var pdf = chromePdfRenderer.RenderHtmlAsPdf(html);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRendererExample1.Pdf"));

结果是:

从HTML文件在C#中创建PDF,图5:从HTML生成PDF文件 从 HTML 生成 PDF 文件

看起来不错! 请在 IronPDFDemo.RenderHtmlAdPdfDemo 项目下找到代码示例。

也可以查看关于如何在 IronPDF 中使用 HTML 文档或字符串与字节数组的问题

示例 2

本节将帮助定制示例 1 中生成的 PDF。例如,它将添加自定义边距、带有文档标题的页眉、带有创建日期和页码的页脚,以及标准发票所具有的用于"打印"媒体类型的自定义 CSS。 为此,ChromePdfRenderer构造函数。

// Configure rendering options with margins, headers, and footers
var pdfRenderingOptions = new ChromePdfRenderOptions()
{
    MarginTop = 50,
    MarginBottom = 50,
    TextHeader = new TextHeaderFooter()
    {
        CenterText = "{pdf-title}",
        DrawDividerLine = true,
        FontSize = 16
    },
    TextFooter = new TextHeaderFooter()
    {
        LeftText = "{date} {time}",
        RightText = "Page {page} of {total-pages}",
        DrawDividerLine = true,
        FontSize = 14
    },
    CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
};

var chromePdfRenderer = new ChromePdfRenderer(pdfRenderingOptions);

**提示:**可以通过设置ChromePdfRenderer实例的相应字段,来替代在构造函数中传递选项作为参数:

var chromePdfRenderer = new ChromePdfRenderer();
chromePdfRenderer.RenderingOptions = pdfRenderingOptions;

**注意:**页眉和页脚功能合并功能,这意味着所有合并字段({pdf-title})可以用相应的数据填充。

其余的代码与示例 1 相同。结果是:

从HTML文件在C#中创建PDF,图6:生成一个带页眉和页脚的发票 生成带有页眉和页脚的发票

现在已经就位自定义边距、页眉、页脚和"打印"媒体类型的 CSS。 请在 IronPDFDemo.RenderHtmlAdPdfDemo 项目下找到代码示例。 更多设置可在 IronPDF API 参考中找到。

步骤 4:RenderUrlAsPdf

设置

要运行此部分的示例,您需要在本地托管 IronPDFDemo.DemoWebSite。 在 IIS Express 中这样做:

  1. 导航到 DemoWebSite
  2. 右键单击 > 设置为启动项目
  3. 启动而不调试(Ctrl+F5)
  4. 导航到您的{baseurl}/Static/TestInvoice1.html以确保其正常工作。 这是URL http://localhost:51169/Static/TestInvoice1.html(如果您不更改相应的项目设置,对您来说也会相同)。

示例 1

在本节中,将托管的 DemoWebSite 发票转换为 PDF,使用与 HelloWorld 示例相同的代码。 区别在于托管的 URL:

// URL of the hosted invoice webpage
var uri = new Uri("http://localhost:51169/Static/TestInvoice1.html");
var urlToPdf = new ChromePdfRenderer();
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample1.Pdf"));

结果是:

从HTML文件在C#中创建PDF,图7:生成一个托管网站的PDF 生成托管网站为 PDF

这很棒,外观与预期一致。 请在 IronPDFDemo.RenderUrlAsPdfDemo 项目中找到代码示例。

示例 2

许多网站通常受到身份验证方法的保护。 本节中,使用提供的用户名和密码在渲染 PDF 文件的过程中进行一些自定义:自定义边距、带有文档标题的页眉、带有创建日期和页码的页脚,以及标准发票所具有的用于"打印"媒体类型的自定义 CSS。 发票的URL位于http://localhost:51169/Invoice

访问http://localhost:51169/Invoice会出现"需要身份验证"表单:

从HTML文件在C#中创建PDF,图8:需要身份验证的表单 需要身份验证表单

**注意:**凭证是"testUser"/"testPassword"。

那么如何绕过身份验证呢? 通过设置HttpLoginCredentials

// URL of the protected invoice webpage
var uri = new Uri("http://localhost:51169/Invoice");

// Configure renderer with login credentials to bypass authentication
var urlToPdf = new ChromePdfRenderer
{
    RenderingOptions = new ChromePdfRenderOptions()
    {
        MarginTop = 50,
        MarginBottom = 50,
        TextHeader = new TextHeaderFooter()
        {
            CenterText = "{pdf-title}",
            DrawDividerLine = true,
            FontSize = 16
        },
        TextFooter = new TextHeaderFooter()
        {
            LeftText = "{date} {time}",
            RightText = "Page {page} of {total-pages}",
            DrawDividerLine = true,
            FontSize = 14
        },
        CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
    },

    // Set login credentials to bypass basic authentication
    LoginCredentials = new HttpLoginCredentials()
    {
        NetworkUsername = "testUser",
        NetworkPassword = "testPassword"
    }
};

using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample2.Pdf"));

**注意:**使用的自定义与 ChromePdfRenderer 示例 2 相同。

结果是:

从HTML文件在C#中创建PDF,图9:生成一个带凭证的HTML网站到PDF文件 用凭证生成 HTML 网站的 PDF 文件

一切都已就位。 请在 IronPDFDemo.RenderUrlAsPdfDemo 项目中找到代码示例。 如果您想知道没有 HttpLoginCredentials 的结果会如何,您可以看到:

从HTML文件在C#中创建PDF,图10:生成一个没有凭证的空PDF文件 生成没有凭证的空 PDF 文件

也请参阅 Jean 的.NET HTML 转 PDF 教程

此外,IronPDF 还可以以不同的方式与 PDF 交互:

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户