跳至页脚内容
使用IRONPDF

如何使用IronPDF在C#中将HTML转换为.NET 10的PDF

在 C# 中将HTML 转换为 PDF 是 .NET 开发人员构建企业或 SaaS 应用程序时最常见的需求之一。 无论您是需要从网页内容、HTML 文档还是 HTML 字符串生成 PDF 文件,将 HTML 转换为专业 PDF 格式的能力对于生成报告、发票和其他可打印资产至关重要。

IronPDF 库是一个强大的 HTML 到 PDF 转换器,专为 .NET Framework 应用程序和现代 .NET 10 项目构建。 它允许您轻松将 HTML、CSS 样式,甚至 JavaScript 渲染转换为高质量、完全样式化的 PDF 文档——只需几行 C# 代码。

Convert Html To Pdf Csharp Net 10 1 related to 如何使用IronPDF在C#中将HTML转换为.NET 10的PDF

为什么选择 IronPDF 来进行 HTML 到 PDF 转换?

与需要在 PDF 画布上手动绘制元素的旧版 PDF 库不同,IronPDF 使用完整的 Chromium 引擎渲染 HTML 内容。这意味着您的 HTML 文件、CSS 和图像文件将像浏览器一样被处理,精确保留布局、字体和 HTML 元素。 它非常适合:

  • 从 Web 应用程序动态生成报告

  • 将网页或仪表板渲染为 PDF 文件

  • 将 HTML 片段转换为 PDF 文档

  • 从模板自动化大规模 PDF 生成

  • 操作现有 PDF 文档以进行标记或合并

IronPDF 作为一个完整的转换库来创建 PDF 文档,为 .NET 开发人员提供简单性和对 PDF 生成的强大控制。

1. 在 .NET 10 项目中安装 IronPDF

首先,您需要创建一个新的.NET 10 项目。

Convert Html To Pdf Csharp Net 10 2 related to 1. 在 .NET 10 项目中安装 IronPDF

截至今天,.NET 10 仍然处于预览阶段,但它完全兼容IronPDF

Convert Html To Pdf Csharp Net 10 3 related to 1. 在 .NET 10 项目中安装 IronPDF

我们将在这里演示 HTML 到 PDF 转换如何无缝结合最新的 .NET 功能和 IronPDF 的 Chrome 渲染引擎。

现在,是时候安装 IronPDF 了!

您可以直接从 NuGet 包管理器为解决方案中安装 IronPDF。

Convert Html To Pdf Csharp Net 10 4 related to 1. 在 .NET 10 项目中安装 IronPDF

还可以选择其他安装方式。 在您的解决方案资源管理器中,打开终端或命令行界面 (CLI) 并运行:

dotnet add package IronPdf
dotnet add package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronPdf
$vbLabelText   $csharpLabel

或者使用 NuGet 包管理器控制台:

PM > Install-Package IronPdf

Convert Html To Pdf Csharp Net 10 5 related to 1. 在 .NET 10 项目中安装 IronPDF

现在您已准备好开始编码。

2. 基本 HTML 到 PDF 转换

让我们从一个 C# HTML 到 PDF 示例开始,将 HTML 内容转换为 PDF 文件。

using IronPdf;

class Program
{
    public static void Main()
    {
        var renderer = new ChromePdfRenderer();

        string html = "<html><body><h1>HTML to PDF C# Example</h1><p>This demonstrates PDF conversion in .NET 10.</p></body></html>";

        PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("basic_output.pdf");
    }
}
using IronPdf;

class Program
{
    public static void Main()
    {
        var renderer = new ChromePdfRenderer();

        string html = "<html><body><h1>HTML to PDF C# Example</h1><p>This demonstrates PDF conversion in .NET 10.</p></body></html>";

        PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("basic_output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

解释:

  • ChromePdfRenderer 是主要的 HTML 到 PDF 转换类。

  • RenderHtmlAsPdf 方法将 HTML 字符串转换为 PDF 文档。

  • 生成的 PDF 可以保存为 PDF 文件或作为流返回。

只需几行代码,我们就构建了一个可以工作的 HTML 到 PDF 转换器。

Convert Html To Pdf Csharp Net 10 6 related to 2. 基本 HTML 到 PDF 转换

3. 转换 HTML 文件和 URL 到 PDF

a. 转换 HTML 文件

您可以将磁盘上的 HTML 文件 转换为 PDF(包括链接的资源,如 CSS 或图像):

var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("template.html");
pdf.SaveAs("file_conversion.pdf");
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("template.html");
pdf.SaveAs("file_conversion.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

此方法读取您的本地 HTML 文件,并在有链接资源(CSS、JS、图像)可用时自动加载它们。

Convert Html To Pdf Csharp Net 10 7 related to a. 转换 HTML 文件

b. 转换网页(URL 转换)

如果您的输入是网页或现有 URL,只需直接渲染即可:

var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderUrlAsPdf("https://ironpdf.com");
pdf.SaveAs("webpage_conversion.pdf");
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderUrlAsPdf("https://ironpdf.com");
pdf.SaveAs("webpage_conversion.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

上面的代码执行 URL 直接转换,从指定的 URL 渲染 HTML 文档并全 JavaScript 渲染和 CSS。

Convert Html To Pdf Csharp Net 10 8 related to b. 转换网页(URL 转换)

4. 高级示例:将含有样式和 JavaScript 的 HTML 内容转换

Many web pages rely on dynamic HTML elements, CSS styles, and JavaScript rendering (charts, dashboards, etc.). IronPDF 完全支持这一点。

var renderer = new ChromePdfRenderer();

renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(2000); // wait for dynamic JS
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;

PdfDocument pdf = renderer.RenderHtmlFileAsPdf("Reports/sales.html");
pdf.SaveAs("styled_output.pdf");
var renderer = new ChromePdfRenderer();

renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(2000); // wait for dynamic JS
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;

PdfDocument pdf = renderer.RenderHtmlFileAsPdf("Reports/sales.html");
pdf.SaveAs("styled_output.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

上面的代码确保 IronPDF 在渲染之前等待动态网页内容完全加载,从而实现准确的视觉保真度。

Convert Html To Pdf Csharp Net 10 9 related to 4. 高级示例:将含有样式和 JavaScript 的 HTML 内容转换

5. 添加页眉、页脚和页码

您可以轻松地将专业页眉和页脚添加到生成的 PDF 文档中。

renderer.RenderingOptions.FirstPageNumber = 1;
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center; font-size:14px; margin-top:20px;'>Sales Report</div>"
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center; font-size:14px; margin-bottom:20px;'>Page {page} of {total-pages}</div>"
};
renderer.RenderingOptions.FirstPageNumber = 1;
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center; font-size:14px; margin-top:20px;'>Sales Report</div>"
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center; font-size:14px; margin-bottom:20px;'>Page {page} of {total-pages}</div>"
};
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDF 将这些视为临时 HTML 文件,因此您可以使用 CSS 对其进行样式化,并包含诸如日期或公司名称之类的自定义数据。

Convert Html To Pdf Csharp Net 10 10 related to 5. 添加页眉、页脚和页码

6. 从多个 HTML 片段生成 PDF

如果您想通过组合多个 HTML 片段来生成 PDF 文件,您可以合并它们:

var renderer = new ChromePdfRenderer();

PdfDocument part1 = renderer.RenderHtmlAsPdf("<h1>Section 1</h1>");
PdfDocument part2 = renderer.RenderHtmlAsPdf("<h1>Section 2</h1>");

var merged = PdfDocument.Merge(part1, part2);
merged.SaveAs("Merged.pdf");
var renderer = new ChromePdfRenderer();

PdfDocument part1 = renderer.RenderHtmlAsPdf("<h1>Section 1</h1>");
PdfDocument part2 = renderer.RenderHtmlAsPdf("<h1>Section 2</h1>");

var merged = PdfDocument.Merge(part1, part2);
merged.SaveAs("Merged.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

这在您从不同的 HTML 代码片段创建多部分报告时非常有帮助。

Convert Html To Pdf Csharp Net 10 11 related to 6. 从多个 HTML 片段生成 PDF

7. 在 Web API 中将 HTML 转换为 PDF

在 ASP.NET Web API 中,您可以生成并返回一个不保存到磁盘的 PDF 文档,使用 MemoryStream:

[HttpGet("download")]
public IActionResult GetPdf()
{
    var renderer = new ChromePdfRenderer();
    string html = "<h1>Web Report</h1><p>Generated dynamically.</p>";

    var pdf = renderer.RenderHtmlAsPdf(html);
    var bytes = pdf.BinaryData;

    return File(bytes, "application/pdf", "report.pdf");
}
[HttpGet("download")]
public IActionResult GetPdf()
{
    var renderer = new ChromePdfRenderer();
    string html = "<h1>Web Report</h1><p>Generated dynamically.</p>";

    var pdf = renderer.RenderHtmlAsPdf(html);
    var bytes = pdf.BinaryData;

    return File(bytes, "application/pdf", "report.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

这种模式非常适合在 .NET 10 web 应用程序中进行服务器端 PDF 生成。

8. 自定义 HTML 渲染选项

您可以控制 HTML 元素和链接资源的渲染方式:

renderer.RenderingOptions.BaseUrl = "https://mywebsite.com/";
renderer.RenderingOptions.CustomHeaders.Add("Authorization", "Bearer token");
renderer.RenderingOptions.WaitFor.NavigationTimeout = 10000;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.BaseUrl = "https://mywebsite.com/";
renderer.RenderingOptions.CustomHeaders.Add("Authorization", "Bearer token");
renderer.RenderingOptions.WaitFor.NavigationTimeout = 10000;
renderer.RenderingOptions.EnableJavaScript = true;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

这在渲染具有外部资源的网页时很有用,或者在执行 web 抓取后进行 PDF 转换时。

9. 命令行工具和控制台示例

您还可以构建一个小型命令行工具用于批量 HTML 到 PDF 转换:

using IronPdf;
using System;

class Program
{
    public static void Main(string[] args)
    {
        string inputFile = args[0];
        string outputPath = args[1];

        var renderer = new ChromePdfRenderer();
        PdfDocument pdf = renderer.RenderHtmlFileAsPdf(inputFile);
        pdf.SaveAs(outputPath);

        Console.WriteLine("PDF generated successfully!");
    }
}
using IronPdf;
using System;

class Program
{
    public static void Main(string[] args)
    {
        string inputFile = args[0];
        string outputPath = args[1];

        var renderer = new ChromePdfRenderer();
        PdfDocument pdf = renderer.RenderHtmlFileAsPdf(inputFile);
        pdf.SaveAs(outputPath);

        Console.WriteLine("PDF generated successfully!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

从命令行界面 (CLI) 运行:

dotnet run "input.html" "output.pdf"

Convert Html To Pdf Csharp Net 10 12 related to 9. 命令行工具和控制台示例

您刚刚为 .NET 开发人员构建了一个简单的命令行 PDF 转换器。

Convert Html To Pdf Csharp Net 10 13 related to 9. 命令行工具和控制台示例

10. 使用异步模式的高级 .NET 示例

您还可以为现代 .NET 10 应用程序使用异步模式:

public static async Task Main()
{
    var renderer = new ChromePdfRenderer();
    string url = "https://example.com/dashboard";

    PdfDocument pdf = await Task.Run(() => renderer.RenderUrlAsPdfAsync(url));
    pdf.SaveAs("async_output.pdf");
}
public static async Task Main()
{
    var renderer = new ChromePdfRenderer();
    string url = "https://example.com/dashboard";

    PdfDocument pdf = await Task.Run(() => renderer.RenderUrlAsPdfAsync(url));
    pdf.SaveAs("async_output.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

这非常适合处理高流量 PDF 生成的可扩展系统或云 API。

11. 大规模 PDF 生成的最佳实践

  • 在生成多个 PDF 时重复使用 ChromePdfRenderer 实例。

  • 将临时文件存储在快速的 SSD 支持位置。

  • 对于批量 PDF 生成,使用异步任务。

  • 在不需要时避免过多的 JavaScript 渲染。

  • 验证您的 HTML 输入文件,以防止在转换过程中出现错误。

这些优化确保企业级 .NET 解决方案的平滑 PDF 转换。

12. 结论

借助 IronPDF 和 .NET 10,无论是处理 HTML 字符串、本地 HTML 文件还是现有 URL,将 HTML 内容转换为令人惊叹的专业 PDF 文件都非常简单。

无论是简单的代码片段还是大规模的 PDF 生成,IronPDF 都为您提供了一个完整的 HTML 到 PDF 转换器,支持 JavaScript、CSS、定制页眉和链接资源。

只需几行代码,您就可以生成 PDF 文档、自动化报告生成,或将 PDF 转换器库直接嵌入到您的 .NET 应用程序中。

开始使用IronPDF 免费试用版来尝试您的 HTML 到 PDF 项目。 立即下载,体验如何轻松地从 HTML 内容生成高质量 PDF 文件。

常见问题解答

在C#中将HTML转换为PDF的主要用途是什么?

在C#中将HTML转换为PDF的主要用途是从网页内容、HTML文档或HTML字符串中生成专业的PDF文件。这对于在企业或SaaS应用程序中创建报告、发票和其他可打印资源至关重要。

为什么HTML到PDF转换对.NET开发人员很重要?

HTML到PDF转换对.NET开发人员很重要,因为它使他们能够将文档生成功能集成到他们的应用程序中,这对于生成高质量、可共享和可打印的文档(如报告和发票)至关重要。

IronPDF能处理大型HTML文档并转换为PDF吗?

是的,IronPDF可以有效处理大型HTML文档并将其转换为PDF,而不会影响性能或质量。

IronPDF是否支持将HTML字符串转换为PDF?

IronPDF支持将HTML字符串转换为PDF,允许开发人员直接从HTML内容动态生成PDF文档。

哪些类型的应用程序从使用IronPDF进行HTML到PDF转换中受益?

企业和SaaS应用程序从使用IronPDF进行HTML到PDF转换中受益良多,因为它使它们能够自动创建专业文档,如报告和发票。

IronPDF如何确保从HTML生成高质量PDF输出?

IronPDF通过使用先进的渲染技术确保高质量的PDF输出,这些技术可以准确地将HTML、CSS和JavaScript转换为专业的PDF。

是否可以使用IronPDF自定义从HTML生成的PDF的外观?

是的,IronPDF允许广泛自定义从HTML生成的PDF的外观,包括布局、字体和样式,以符合特定的设计要求。

IronPDF能将网页直接转换为PDF吗?

IronPDF可以将网页直接转换为PDF,使开发人员能够轻松地将实时网页内容转换为静态、可共享的PDF文档。

IronPDF是否支持在PDF文档中集成图形和图像?

IronPDF支持图形和图像的集成,确保转换后的PDF文档保持原始HTML内容的视觉元素。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。