如何在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,包括從JavaScript框架(如Angular、React和Vue.js)獲得的動態內容。

使用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()方法將Wikipedia網頁轉換為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

Microsoft MVP

查看案例研究
Icon Quote related to 使用RenderingOptions進行高級配置

IronOCR意味著我們每年可以從手動處理中節省$40,000,同時提高生產力,釋放資源以進行高影響的任務。我會強烈推薦它。

Brent Matzelle related to 使用RenderingOptions進行高級配置

Brent Matzelle

首席技術官,OPYN

查看案例研究
Icon Quote related to 使用RenderingOptions進行高級配置

IronSuite在我們的運營中扮演著至關重要的角色。這些工具增加了包括建立平面圖和改善庫存管理在內的業務效率。

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

新增頁眉和頁腳

通過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

為PDF輸出優化CSS

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轉PDF文件,涵蓋其他場景和故障排除。

結論

IronPDF提供了一個可靠的方案來在C#中將URL轉換為PDF。 憑藉其Chrome渲染引擎、自定義選項和JavaScript支持,它可以處理從簡單的網頁到復雜的動態應用程式。 使用IronPDF的URL轉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使用支持JavaScript執行的Chrome渲染引擎,包括像Angular、React和Vue.js這樣的現代框架的動態內容。這確保了可互動網頁的準確PDF表示。

URL轉PDF轉換支持哪些協議?

IronPDF的RenderUrlAsPdf方法支持HTTP和HTTPS協議。該方法需要指向您要轉換的HTML文件的絕對URI。

我可以在從URL轉換時自定義PDF輸出嗎?

是的,IronPDF通過RenderingOptions屬性提供了廣泛的自定義選項。您可以配置頁面邊距、紙張大小、方向、CSS媒體型別、背景列印和表單建立設置,以根據您的需求調整PDF輸出。

URL轉PDF轉換的實際應用場景有哪些?

IronPDF可用於構建網路抓取器、從實時資料生成報告或建立網頁內容檔案庫。該程式庫能夠呈現動態內容,使其非常適合捕捉在瀏覽器中顯示的完整網頁。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

準備開始了嗎?
Nuget 下載 20,296,129 | 版本: 2026.7 剛剛發布
Still Scrolling Icon

還在捲動嗎?

想快速獲得證明嗎? PM > Install-Package IronPdf
執行範例 看您的HTML變成PDF。