如何在 C# 中将 HTML 字符串呈现为 PDF | IronPDF

How to Convert HTML String to PDF in C

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPdf 使用 Chrome 浏览器渲染引擎,用 C# 将 HTML 字符串转换为 PDF 文档,支持所有 HTML5、CSS3 和 JavaScript 内容,只需一行代码即可完成基本转换。 该库为 创建 PDF 提供了强大的功能,同时保持了完美的渲染保真度。

IronPDF允许开发者在.NET Core和.NET Framework的C#、F#和VB.NET中轻松创建PDF文档。 IronPdf 支持将任何 HTML 字符串渲染为 PDF,渲染过程使用功能齐全的谷歌 Chromium 引擎版本。这确保了 HTML 内容在现代网络浏览器中的显示效果,使其成为从动态 HTML 内容生成报告、发票和文档的理想选择。

快速入门:几秒钟内将 HTML 字符串转换为 PDF

使用 IronPDF 将 HTML 字符串转换为 PDF 文件。 本指南演示了如何用最少的代码在 C# 中将 HTML 字符串转换为 PDF 文档。 非常适合需要将 PDF 渲染功能集成到其项目中的开发人员。

  1. 使用 NuGet 包管理器安装 https://www.nuget.org/packages/IronPdf

    PM > Install-Package IronPdf
  2. 复制并运行这段代码。

    IronPdf.ChromePdfRender.StaticRenderHtmlAsPdf("<p>Hello World</p>").SaveAs("string-to-pdf.pdf");
  3. 部署到您的生产环境中进行测试

    通过免费试用立即在您的项目中开始使用IronPDF

    arrow pointer


如何将简单的 HTML 字符串转换为 PDF?

以下是IronPDF使用 RenderHtmlAsPdf 方法将 HTML 字符串渲染成 PDF 的示例。 参数是要渲染为PDF的HTML字符串。 此方法是 ChromePdfRenderer 类的一部分,该类可对您的 PDF 生成需求的渲染选项进行广泛的控制。

:path=/static-assets/pdf/content-code-examples/how-to/html-string-to-pdf.cs
using IronPdf;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");

// Export to a file or Stream
pdf.SaveAs("output.pdf");
$vbLabelText   $csharpLabel

RenderHtmlAsPdf 方法返回一个 PdfDocument 对象,该对象是一个用于保存 PDF 信息的类。 该对象提供了许多操作 PDF 的方法,包括 合并 PDF添加水印设置安全选项

当从外部源获取 HTML 字符串并且需要禁用本地磁盘访问或跨域请求时,请将 ChromePdfRenderer.EnableWebSecurity 属性设置为 true。

对于包含 CSS 样式的复杂 HTML 内容,请使用 Base URLs & Asset Encoding 功能通过内联样式或引用外部样式表来增强 HTML 字符串:

// Example with inline CSS
var styledHtml = @"
<html>
<head>
    <style>
        body { font-family: Arial, sans-serif; margin: 40px; }
        h1 { color: #333; border-bottom: 2px solid #0066cc; }
        p { line-height: 1.6; }
    </style>
</head>
<body>
    <h1>Professional Report</h1>
    <p>This PDF was generated from HTML with custom styling.</p>
</body>
</html>";

var styledPdf = renderer.RenderHtmlAsPdf(styledHtml);
styledPdf.SaveAs("styled-output.pdf");
// Example with inline CSS
var styledHtml = @"
<html>
<head>
    <style>
        body { font-family: Arial, sans-serif; margin: 40px; }
        h1 { color: #333; border-bottom: 2px solid #0066cc; }
        p { line-height: 1.6; }
    </style>
</head>
<body>
    <h1>Professional Report</h1>
    <p>This PDF was generated from HTML with custom styling.</p>
</body>
</html>";

var styledPdf = renderer.RenderHtmlAsPdf(styledHtml);
styledPdf.SaveAs("styled-output.pdf");
$vbLabelText   $csharpLabel

生成的 PDF 看起来像什么?

这是代码生成的文件:

生成的 PDF 将保持 HTML 的准确格式和样式,因此非常适合 生成 PDF 报告或将网页内容转换为可打印的文档。

在将 HTML 转换为 PDF 时如何包含外部资产?

本例显示 IronPDF 从可选的 BasePath 加载外部图像资产。 设置BaseUrlOrPath属性提供了超链接、图像、CSS和JavaScript文件的相对文件路径或URL上下文。 在处理 PDF 中的 图像或需要引用外部资源时,此功能至关重要。

:path=/static-assets/pdf/content-code-examples/how-to/html-string-to-pdf-2.cs
using IronPdf;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Advanced Example with HTML Assets
// Load external html assets: Images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
$vbLabelText   $csharpLabel

对于涉及复杂布局或动态内容的高级场景,请利用 IronPDF 对 JavaScript 渲染的支持:

// Example with JavaScript-generated content
var jsHtml = @"
<html>
<head>
    <script>
        window.onload = function() {
            document.getElementById('dynamic').innerHTML = 
                'Generated on: ' + new Date().toLocaleString();
        };
    </script>
</head>
<body>
    <h1>Dynamic Content Example</h1>
    <div id='dynamic'></div>
</body>
</html>";

// Configure rendering to wait for JavaScript execution
renderer.RenderingOptions.WaitFor.RenderDelay = 500; // milliseconds
var dynamicPdf = renderer.RenderHtmlAsPdf(jsHtml, @"C:\site\");
dynamicPdf.SaveAs("dynamic-content.pdf");
// Example with JavaScript-generated content
var jsHtml = @"
<html>
<head>
    <script>
        window.onload = function() {
            document.getElementById('dynamic').innerHTML = 
                'Generated on: ' + new Date().toLocaleString();
        };
    </script>
</head>
<body>
    <h1>Dynamic Content Example</h1>
    <div id='dynamic'></div>
</body>
</html>";

// Configure rendering to wait for JavaScript execution
renderer.RenderingOptions.WaitFor.RenderDelay = 500; // milliseconds
var dynamicPdf = renderer.RenderHtmlAsPdf(jsHtml, @"C:\site\");
dynamicPdf.SaveAs("dynamic-content.pdf");
$vbLabelText   $csharpLabel

在处理外部资产时,您可能需要处理身份验证或特殊标头。 IronPDF 通过 HTTP Request Header 功能提供支持,允许您在获取资源时包含授权令牌或自定义标头。

为什么设置 BasePath 对于外部资源很重要?

这是代码生成的文件:

正确设置 BasePath 可确保正确解析 HTML 中的所有相对引用。 没有它,IronPDF 就无法定位图片、样式表或脚本等外部资源。这一点在以下情况下尤为重要

1.转换引用本地文件系统资源的 HTML 2.使用相对 URL 的内容管理系统 3.将现有网页内容转换为 PDF 格式 4.创建使用共享资产的模板

对于基于网络的资源,请使用完整的 URL 作为基本路径:

// Using a web URL as base path
var webBasedPdf = renderer.RenderHtmlAsPdf(
    "<link rel='stylesheet' href='/styles/main.css'><h1>Web Content</h1>", 
    "https://mywebsite.com"
);
// Using a web URL as base path
var webBasedPdf = renderer.RenderHtmlAsPdf(
    "<link rel='stylesheet' href='/styles/main.css'><h1>Web Content</h1>", 
    "https://mywebsite.com"
);
$vbLabelText   $csharpLabel

如需对 PDF 生成过程进行更多控制,请浏览 IronPDF 有关 自定义页边距页面方向PDF压缩 的大量文档,以便针对各种使用情况优化您的输出文件。

常见问题解答

如何用 C# 将简单的 HTML 字符串转换为 PDF?

您可以使用 IronPDF 的 ChromePdfRenderer 类中的 RenderHtmlAsPdf 方法将 HTML 字符串转换为 PDF。只需实例化渲染器,将 HTML 字符串传递给该方法,然后保存生成的 PdfDocument 对象即可。IronPDF 使用 Chrome 浏览器渲染引擎,以确保完美的保真度。

HTML 到 PDF 的转换使用什么渲染引擎?

IronPDF 使用功能齐全的 Google Chromium 引擎版本将 HTML 渲染为 PDF。这可确保您的 HTML 内容(包括 HTML5、CSS3 和 JavaScript)在现代网络浏览器中的显示效果完全一致。

我能否将带有 CSS 样式的 HTML 转换为 PDF?

是的,IronPDF 支持将带有 CSS 样式的 HTML 转换为 PDF。您可以直接在 HTML 字符串中使用内联样式,或使用基础 URL 和资产编码功能引用外部样式表,以确保样式内容的正确呈现。

将 HTML 转换为 PDF 的最快方法是什么?

最快捷的方法是使用 IronPDF 的静态方法:IronPdf.ChromePdfRenderer.StaticRenderHtmlAsPdf("Your HTML").SaveAs("output.pdf").这一行代码就能转换 HTML 字符串并将其保存为 PDF 文件。

转换 HTML 字符串时如何处理外部资产?

IronPDF 允许您为 PDF 中的外部资产配置 BasePath。这可确保在转换过程中正确加载 HTML 中引用的图片、样式表和其他资源。

从 HTML 转换为 PDF 时,能否自定义 PDF 输出?

是的,IronPDF 提供了广泛的 RenderingOptions(渲染选项),可对 PDF 输出进行微调。您可以通过 ChromePdfRenderer 类控制页面大小、页边距、页眉、页脚以及生成的 PDF 的许多其他方面。

转换后生成的 PDF 有哪些用途?

IronPDF 的 PdfDocument 对象提供了大量 PDF 操作方法,包括合并 PDF、添加水印、设置安全选项等。转换后的 PDF 可保存到磁盘、流式传输或根据需要进一步处理。

从外部资源转换 HTML 时如何处理安全性问题?

从外部资源转换 HTML 时,IronPDF 允许您将 ChromePdfRenderer 上的 EnableWebSecurity 属性设置为 true。这将禁止本地磁盘访问和跨源请求,从而增强安全性。

Curtis Chau
技术作家

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

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

准备开始了吗?
Nuget 下载 17,803,474 | 版本: 2026.3 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package IronPdf
运行示例看着你的HTML代码变成PDF文件。