如何在 C# 中透過網址轉換及下載 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 框架的動態內容。

使用 IronPDF 來建置網頁擷取工具、從即時資料生成報告,或建立網頁內容的歸檔。 對於尋求全面 HTML 轉 PDF 解決方案的開發人員,IronPDF 提供的功能遠不止於 URL 轉換。

快速入門:使用 IronPDF 將網頁轉換為 PDF

本指南將示範如何使用 ChromePdfRenderer 類別,以最少的程式碼將 URL 轉換為 PDF 檔案。

  1. using 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 轉換設定。 設定頁面邊距、紙張尺寸、方向等設定。

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");
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

處理 JavaScript 與動態內容

現代網頁仰賴 JavaScript 來渲染內容。 IronPDF 的 Chrome 渲染引擎透過 JavaScript 渲染功能擷取動態內容。

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");
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 的"頁首與頁尾"功能,加入包含頁碼、日期或公司資訊的頁首與頁尾。

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");
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 同時支援螢幕與 PRINT 兩種 CSS 媒體類型。了解 CSS 媒體類型如何影響輸出結果,有助於優化 PDF 的外觀呈現。 進一步了解 PDF 轉換中的 CSS 處理方式,以確保產出專業外觀的文件。

常見應用情境

URL 轉 PDF 功能適用於以下商業情境:

  1. 報表生成:將儀表板 URL 轉換為 PDF 報表
  2. 網頁歸檔:為合規或文件記錄目的建立 PDF 快照
  3. 發票生成:將網頁版發票轉換為 PDF 格式
  4. 內容發佈:將文章轉為可下載的 PDF 檔案
  5. 法律文件:為法律程序存檔網頁內容

最佳實務與效能建議

將 URL 轉換為 PDF 時,請遵循以下最佳實務:

  • 錯誤處理:將轉換程式碼封裝在 try-catch 區塊中,以處理網路問題
  • 超時設定:為載入緩慢的頁面設定超時值
  • 資源管理:使用 using 語句進行適當的資源釋放
  • 批次處理:可考慮針對多個 URL 進行平行處理

如需完整指引,請參閱完整的 URL 轉 PDF 文件,其中涵蓋其他情境與疑難排解。

結論

IronPDF 提供了一套可靠的解決方案,可透過 C# 將網址轉換為 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 採用 Chrome 渲染引擎,完全支援 JavaScript 執行,包括來自 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 University)的電腦科學學士學位,專精於前端開發,並精通 Node.js、TypeScript、JavaScript 及 React。他熱衷於打造直觀且美觀的用戶介面,喜歡運用現代框架,並創建結構完善、視覺上吸引人的手冊。

除了開發工作之外,Curtis 對物聯網(IoT)抱有濃厚興趣,致力於探索整合硬體與軟體的創新方法。閒暇時,他喜歡玩遊戲和開發 Discord 機器人,將對科技的熱愛與創意相結合。

準備開始了嗎?
Nuget 下載 19,014,616 | 版本: 2026.5 just released
Still Scrolling Icon

還在往下捲動嗎?

想要快速確認成果嗎? PM > Install-Package IronPdf
執行範例 觀看您的 HTML 轉為 PDF。