如何在 C# 中将 URL 转换并下载为 PDF

如何使用 IronPDF 在 C# 中将 URL 渲染为 PDF.

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

IronPDF使C#开发人员能够通过一行代码将任何URL转换为PDF,使用ChromePdfRenderer类渲染完整支持JavaScript、CSS和图像的网页。

该库利用 Chrome 浏览器的渲染引擎,确保以 PDF 格式准确呈现网页,包括来自 Angular、React 和 Vue.js 等 JavaScript 框架的动态内容。

using IronPDF 构建网络刮刮器、从实时数据生成报告或创建网络内容档案。 对于寻求全面HTML转PDF解决方案的开发人员,IronPDF提供了URL转换以外的广泛功能。

快速入门:使用IronPDF将网页转换为 PDF

本指南演示如何使用ChromePdfRenderer类通过最少的代码将URL转换为PDF。

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

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

    new IronPdf.ChromePdfRenderer().RenderUrlAsPdf("https://example.com").SaveAs("example.pdf");
  3. 部署到您的生产环境中进行测试

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

    arrow pointer


如何使用 IronPDF 将 URL 转换为 PDF?

该示例显示IronPDF使用RenderUrlAsPdf()方法将维基百科网页渲染为PDF。 这种方法需要一个指向 HTML 文档的绝对 URI。

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

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

// Create a PDF from a URL or local file path
var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");

// Export to a file or Stream
pdf.SaveAs("url.pdf");
Imports IronPdf

' Instantiate Renderer
Private renderer = New ChromePdfRenderer()

' Create a PDF from a URL or local file path
Private pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")

' Export to a file or Stream
pdf.SaveAs("url.pdf")
$vbLabelText   $csharpLabel

RenderUrlAsPdf方法支持HTTP和HTTPS协议。 在继续之前,请完成安装概述,以便在您的开发环境中设置 IronPDF。

对于复杂的场景,请探索额外的URL转PDF示例,这些示例演示了身份验证、自定义标题和渲染选项。

生成的 PDF 看起来像什么?

这是代码生成的文件:

使用RenderingOptions的高级配置

通过RenderingOptions属性定制PDF转换。 配置页边距、纸张大小、方向等。

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

// Advanced renderer with custom options
var renderer = new ChromePdfRenderer();

// Configure rendering options
renderer.RenderingOptions.MarginTop = 40;
renderer.RenderingOptions.MarginBottom = 40;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;

// Set custom paper size
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait;

// Render URL to PDF with custom settings
var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.SaveAs("customized-output.pdf");
Imports IronPdf

' Advanced renderer with custom options
Dim renderer As New ChromePdfRenderer()

' Configure rendering options
renderer.RenderingOptions.MarginTop = 40
renderer.RenderingOptions.MarginBottom = 40
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
renderer.RenderingOptions.PrintHtmlBackgrounds = True
renderer.RenderingOptions.CreatePdfFormsFromHtml = True

' Set custom paper size
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait

' Render URL to PDF with custom settings
Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
pdf.SaveAs("customized-output.pdf")
$vbLabelText   $csharpLabel
Icon Quote related to 使用RenderingOptions的高级配置

我最喜欢的这种库是 IronPDF。它允许快速高效地操作 PDF 文件。它还具有许多有价值的功能,比如导出为 PDF/A 格式和数字签名 PDF 文档。

Milan Jovanovic related to 使用RenderingOptions的高级配置

Milan Jovanovic

微软MVP

查看案例研究
Icon Quote related to 使用RenderingOptions的高级配置

IronOCR 意味着我们每年可以节省 $40,000 的人工处理成本,同时提高生产力,并释放资源用于高影响任务。我强烈推荐它。

Brent Matzelle related to 使用RenderingOptions的高级配置

Brent Matzelle

首席技术官,OPYN

查看案例研究
Icon Quote related to 使用RenderingOptions的高级配置

Iron Suite 在我们的运营中起着至关重要的作用。这些工具提高了业务各方面的效率,包括创建平面图和改善库存管理。

David Jones related to 使用RenderingOptions的高级配置

David Jones

首席软件工程师,Agorus Build

查看案例研究

处理 JavaScript 和动态内容

现代网页依赖 JavaScript 来呈现内容。 IronPDF 的 Chrome 渲染引擎通过JavaScript 渲染功能捕捉动态内容。

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

var renderer = new ChromePdfRenderer();

// Wait for JavaScript to execute
renderer.RenderingOptions.WaitFor.RenderDelay(2000); // Wait 2 seconds

// Or wait for specific JavaScript events
renderer.RenderingOptions.WaitFor.JavaScript(1500); // Maximum wait time
renderer.RenderingOptions.WaitFor.HtmlElement("div.dynamic-content", 5000);

var pdf = renderer.RenderUrlAsPdf("https://example.com/dynamic-page");
pdf.SaveAs("dynamic-content.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

' Wait for JavaScript to execute
renderer.RenderingOptions.WaitFor.RenderDelay(2000) ' Wait 2 seconds

' Or wait for specific JavaScript events
renderer.RenderingOptions.WaitFor.JavaScript(1500) ' Maximum wait time
renderer.RenderingOptions.WaitFor.HtmlElement("div.dynamic-content", 5000)

Dim pdf = renderer.RenderUrlAsPdf("https://example.com/dynamic-page")
pdf.SaveAs("dynamic-content.pdf")
$vbLabelText   $csharpLabel

添加页眉和页脚

using IronPDF 的页眉和页脚功能添加页眉和页脚,包括页码、日期或公司信息。

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

var renderer = new ChromePdfRenderer();

// Add header with dynamic content
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    Height = 30,
    HtmlFragment = "<div style='text-align:center;font-size:12px;'>{page} of {total-pages}</div>",
    DrawDividerLine = true
};

// Add footer with company info
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    Height = 25,
    HtmlFragment = "<div style='text-align:center;font-size:10px;'>© 2024 Your Company Name</div>",
    DrawDividerLine = true
};

var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.SaveAs("with-headers-footers.pdf");
Imports IronPdf

Dim renderer = New ChromePdfRenderer()

' Add header with dynamic content
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
    .Height = 30,
    .HtmlFragment = "<div style='text-align:center;font-size:12px;'>{page} of {total-pages}</div>",
    .DrawDividerLine = True
}

' Add footer with company info
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
    .Height = 25,
    .HtmlFragment = "<div style='text-align:center;font-size:10px;'>© 2024 Your Company Name</div>",
    .DrawDividerLine = True
}

Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
pdf.SaveAs("with-headers-footers.pdf")
$vbLabelText   $csharpLabel

优化 CSS 以实现 PDF 输出

IronPDF 支持屏幕和打印 CSS 媒体类型。了解 CSS 媒体类型对输出的影响有助于优化 PDF 的外观。 了解有关 CSS 处理 PDF 转换的更多信息,以确保文档具有专业外观。

常见使用案例

URL 到 PDF 的转换正是为这些业务场景服务的:

1.报告生成:将仪表板 URL 转换为 PDF 报告 2.网络存档:为合规性或文档创建 PDF 快照 3.发票生成:将基于网络的发票转换为 PDF 格式 4.内容发布:将文章转化为可下载的 PDF 文件 5.法律文档:为法律程序归档网页内容

最佳实践和性能提示

在将 URL 转换为 PDF 时,请考虑以下最佳实践:

  • 错误处理:将转换代码包含在try-catch块中以处理网络问题
  • 超时设置:为加载缓慢的页面配置超时
  • 资源管理:使用using语句进行适当处理
  • 批处理:考虑对多个URL进行并行处理

要获得全面的指导,请浏览涵盖其他应用场景和故障排除的完整 URL to PDF 文档

结论

IronPDF 为用 C# 将 URL 转换为 PDF 提供了可靠的解决方案。 凭借 Chrome 渲染引擎、定制选项和 JavaScript 支持,它可以处理从简单的网页到复杂的动态应用程序。 利用 IronPDF 的 URL to PDF 功能构建企业报表系统或网络刮板。

常见问题解答

如何用 C# 将 URL 转换为 PDF?

只需一行代码,您就可以使用 IronPDF 的 ChromePdfRenderer 类在 C# 中将 URL 转换为 PDF:new IronPdf.ChromePdfRenderer().RenderUrlAsPdf("https://example.com").SaveAs("example.pdf").该方法渲染的网页完全支持 JavaScript、CSS 和图像。

URL 转换为 PDF 是否支持 JavaScript 内容?

是的,IronPDF 使用的 Chrome 渲染引擎完全支持 JavaScript 执行,包括 Angular、React 和 Vue.js 等现代框架的动态内容。这可确保交互式网页的 PDF 呈现准确无误。

URL 到 PDF 的转换支持哪些协议?

IronPDF 的 RenderUrlAsPdf 方法支持 HTTP 和 HTTPS 协议。该方法需要一个指向要转换的 HTML 文档的绝对 URI。

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

是的,IronPDF 通过 RenderingOptions 属性提供了广泛的自定义功能。您可以配置页边距、纸张大小、方向、CSS 媒体类型、背景打印和表单创建设置,以根据您的需要定制 PDF 输出。

URL 转换为 PDF 有哪些实际用例?

IronPDF 可用于构建网络搜刮器、根据实时数据生成报告或创建网络内容档案。该库能够渲染动态内容,因此非常适合捕获浏览器中显示的完整网页。

Curtis Chau
技术作家

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

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

准备开始了吗?
Nuget 下载 20,296,129 | 版本: 2026.7 刚刚发布
Still Scrolling Icon

还在滚动吗?

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