跳過到頁腳內容
使用IRONPDF

如何使用 C# 和 IronPDF 在 ASP .NET 中將網頁轉換為 PDF

在 ASP.NET 應用程式中,將網頁和 HTML 頁面轉換為 PDF 文件是產生報表、發票和可下載內容的常見需求。 IronPDF是一個 .NET 程式庫,它提供了一個簡單而強大的解決方案,可以使用 C# 在 ASP.NET 中將網頁轉換為 PDF,只需幾行程式碼即可將輸入的 HTML、網頁和 HTML 檔案轉換為專業的 PDF 檔案。

這對於任何現代 .NET 專案來說都至關重要。 所以,請繼續關注,我們將探討將 HTML 和網頁內容轉換為高品質 PDF 文件的不同方法!

開始使用 IronPdf

若要在 ASP.NET 應用程式中開始將網頁轉換為 PDF,請透過 NuGet 套件管理器控制台安裝 IronPDF:

Install-Package IronPdf

安裝完成後,將 using 語句加入您的 C# 檔案:

using IronPdf;
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

IronPDF 可與 ASP.NET Web Forms 和 ASP.NET Core 應用程式無縫協作,在所有 .NET 框架中提供一致的 HTML 到 PDF 轉換。 部署時,可以考慮將其與 Azure 函數結合使用,以實現無伺服器擴充。

如何將HTML字串轉換為PDF?

ChromePdfRenderer類別是 IronPDF 的主要 PDF 轉換器,用於將 HTML 內容轉換為 PDF 文件。 這種方法非常適合從動態建立的 HTML 字串產生 PDF 檔案:

using IronPdf;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        // Create the PDF converter
        var renderer = new ChromePdfRenderer();
        // Convert HTML string to PDF
        string htmlContent = "<h1>Sales Report</h1><p>Quarterly sales data...</p>";
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
        // Save the PDF file
        pdfDocument.SaveAs("report.pdf");
    }
}
using IronPdf;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        // Create the PDF converter
        var renderer = new ChromePdfRenderer();
        // Convert HTML string to PDF
        string htmlContent = "<h1>Sales Report</h1><p>Quarterly sales data...</p>";
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
        // Save the PDF file
        pdfDocument.SaveAs("report.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

HTML 轉 PDF 檔案輸出

如何使用 C# 和 IronPDF 在 ASP.NET 中將網頁轉換為 PDF:圖 1 - 簡單的 HTML 轉 PDF 輸出

RenderHtmlAsPdf方法會保留 PDF 文件中的所有 CSS 樣式、圖片和 HTML 元素。 當使用引用外部資源(例如 CSS 或圖像)的 HTML 程式碼時,請指定基本路徑:

var renderer = new ChromePdfRenderer();
string html = @"
    <link rel='stylesheet' href='styles.css'>
    <h1>Company Report</h1>
    <div style='text-align: center'>Annual Summary</div>";
// Set base path for external resources
var pdf = renderer.RenderHtmlAsPdf(html, @"C:\Assets\");
pdf.SaveAs("annual-report.pdf");
var renderer = new ChromePdfRenderer();
string html = @"
    <link rel='stylesheet' href='styles.css'>
    <h1>Company Report</h1>
    <div style='text-align: center'>Annual Summary</div>";
// Set base path for external resources
var pdf = renderer.RenderHtmlAsPdf(html, @"C:\Assets\");
pdf.SaveAs("annual-report.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

如何在 ASP.NET 中將目前網頁轉換為 PDF?

對於 ASP.NET Web Forms 應用程序,IronPDF 提供了一個極其簡單的單行解決方案,可將網頁直接轉換為 PDF:

protected void Page_Load(object sender, EventArgs e)
{
    // Convert current ASPX page to PDF
    IronPdf.AspxToPdf.RenderThisPageAsPdf();
}
protected void Page_Load(object sender, EventArgs e)
{
    // Convert current ASPX page to PDF
    IronPdf.AspxToPdf.RenderThisPageAsPdf();
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ASPX 轉 PDF 輸出

如何使用 C# 和 IronPDF 在 ASP.NET 中將網頁轉換為 PDF:圖 2 - ASPX 轉 PDF 範例輸出

這一行程式碼可以將整個目前網頁及其所有 HTML 結構、樣式和動態內容轉換為 PDF 文件,可在 Adobe Reader 或其他 PDF 檢視器中查看。 您可以自訂輸出行為:

// Display PDF directly in browser
IronPdf.AspxToPdf.RenderThisPageAsPdf(
    IronPdf.AspxToPdf.FileBehavior.InBrowser,
    "invoice.pdf"
);
// Display PDF directly in browser
IronPdf.AspxToPdf.RenderThisPageAsPdf(
    IronPdf.AspxToPdf.FileBehavior.InBrowser,
    "invoice.pdf"
);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

對於ASP.NET Core MVC應用程序,請使用ChromePdfRenderer轉換 HTML 視圖。 通常情況下,你會在 Visual Studio 中完成這個 .NET 專案:

public IActionResult GeneratePdf()
{
    try
    {
        // 1. Initialize the PDF Renderer
        var renderer = new IronPdf.ChromePdfRenderer();
        // 2. Construct the URL that IronPDF will convert.
        // This URL calls the 'Report' action above.
        string url = $"{Request.Scheme}://{Request.Host}/Home/Report";
        // Optional: Customize Rendering Options (e.g., margins)
        renderer.RenderingOptions.MarginTop = 15;
        renderer.RenderingOptions.MarginBottom = 15;
        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            CenterText = "{page} of {total-pages}",
            FontSize = 10
        };
        // 3. Render the URL as a PDF
        var pdf = renderer.RenderUrlAsPdf(url);
        // 4. Send the PDF file to the browser
        // The user will be prompted to download 'report.pdf'
        return File(pdf.BinaryData, "application/pdf", "report.pdf");
    }
    catch (Exception ex)
    {
        // Log the error and return a generic error page or message
        // Console.WriteLine(ex.Message);
        return Content($"Error generating PDF: {ex.Message}");
    }
}
public IActionResult GeneratePdf()
{
    try
    {
        // 1. Initialize the PDF Renderer
        var renderer = new IronPdf.ChromePdfRenderer();
        // 2. Construct the URL that IronPDF will convert.
        // This URL calls the 'Report' action above.
        string url = $"{Request.Scheme}://{Request.Host}/Home/Report";
        // Optional: Customize Rendering Options (e.g., margins)
        renderer.RenderingOptions.MarginTop = 15;
        renderer.RenderingOptions.MarginBottom = 15;
        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            CenterText = "{page} of {total-pages}",
            FontSize = 10
        };
        // 3. Render the URL as a PDF
        var pdf = renderer.RenderUrlAsPdf(url);
        // 4. Send the PDF file to the browser
        // The user will be prompted to download 'report.pdf'
        return File(pdf.BinaryData, "application/pdf", "report.pdf");
    }
    catch (Exception ex)
    {
        // Log the error and return a generic error page or message
        // Console.WriteLine(ex.Message);
        return Content($"Error generating PDF: {ex.Message}");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ASP.NET MVC 輸出

如何使用 C# 和 IronPDF 在 ASP.NET 中將網頁轉換為 PDF:圖 3 - ASP.NET MVC PDF 輸出

如何將URL轉換為PDF?

IronPDF 可以輕鬆地將任何 URL 中的 HTML 程式碼轉換為 PDF 文件。 這項強大的功能既適用於外部網站,也適用於內部應用程式頁面:

var renderer = new ChromePdfRenderer();
// Convert external webpage to PDF
var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.SaveAs("website.pdf");
var renderer = new ChromePdfRenderer();
// Convert external webpage to PDF
var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.SaveAs("website.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

輸出

如何在 ASP.NET 中使用 C# 和 IronPDF 將網頁轉換為 PDF:圖 4 - URL 到 PDF 輸出

對於包含 JavaScript 或動態內容的頁面,您可以使用無頭模式或啟用 JavaScript 執行:

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(1000); // Wait for JS to load
var pdf = renderer.RenderUrlAsPdf("https://app.example.com/dashboard");
pdf.SaveAs("dashboard.pdf");
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(1000); // Wait for JS to load
var pdf = renderer.RenderUrlAsPdf("https://app.example.com/dashboard");
pdf.SaveAs("dashboard.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

如何配置PDF生成設定?

IronPDF 提供豐富的 PDF 轉換自訂選項,以滿足您的特定需求:

var renderer = new ChromePdfRenderer();
// Configure page layout
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape;
// Set margins in millimeters
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 15;
renderer.RenderingOptions.MarginRight = 15;
// Enable background colors and images
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
// Generate PDF with custom settings
var pdf = renderer.RenderHtmlAsPdf("<h1>Custom Layout</h1>");
pdf.SaveAs("custom.pdf");
var renderer = new ChromePdfRenderer();
// Configure page layout
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape;
// Set margins in millimeters
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 15;
renderer.RenderingOptions.MarginRight = 15;
// Enable background colors and images
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
// Generate PDF with custom settings
var pdf = renderer.RenderHtmlAsPdf("<h1>Custom Layout</h1>");
pdf.SaveAs("custom.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

輸出

如何在 ASP.NET 中使用 C# 和 IronPDF 將網頁轉換為 PDF:圖 5 - 自訂 PDF

如何為PDF檔案新增頁首和頁尾?

專業PDF文件通常需要包含頁首和頁腳,其中包含頁碼和其他資訊:

var renderer = new ChromePdfRenderer();
// Add text header and footer
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    CenterText = "Monthly Report",
    DrawDividerLine = true,
    FontSize = 16
};
renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
    LeftText = "{date} {time}",
    RightText = "Page {page} of {total-pages}",
    FontSize = 10
};
var pdf = renderer.RenderHtmlAsPdf("<h1>Report Content</h1>");
pdf.SaveAs("report-with-header.pdf");
var renderer = new ChromePdfRenderer();
// Add text header and footer
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    CenterText = "Monthly Report",
    DrawDividerLine = true,
    FontSize = 16
};
renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
    LeftText = "{date} {time}",
    RightText = "Page {page} of {total-pages}",
    FontSize = 10
};
var pdf = renderer.RenderHtmlAsPdf("<h1>Report Content</h1>");
pdf.SaveAs("report-with-header.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

輸出

如何在 ASP.NET 中使用 C# 和 IronPDF 將網頁轉換為 PDF:圖 6 - 輸出帶有頁首和頁尾的 PDF

對於更複雜的標題,請使用 HTML 格式:

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center; border-bottom: 1px solid #ccc;'>" +
                   "<h2>Company Name</h2></div>",
    MaxHeight = 30
};
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center; border-bottom: 1px solid #ccc;'>" +
                   "<h2>Company Name</h2></div>",
    MaxHeight = 30
};
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

使用不同的HTML來源

IronPDF 提供了多種從各種 HTML 來源產生 PDF 的方法:

轉換 HTML 文件

var renderer = new ChromePdfRenderer();
// Convert HTML file to PDF
var pdf = renderer.RenderHtmlFileAsPdf(@"C:\Templates\invoice.html");
var renderer = new ChromePdfRenderer();
// Convert HTML file to PDF
var pdf = renderer.RenderHtmlFileAsPdf(@"C:\Templates\invoice.html");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

使用 Base64 影像進行轉換

string htmlWithImage = @"
    <h1>Product Catalog</h1>
    <img src='data:image/png;base64,iVBORw0KGgoAAAANS...' />";
var pdf = renderer.RenderHtmlAsPdf(htmlWithImage);
string htmlWithImage = @"
    <h1>Product Catalog</h1>
    <img src='data:image/png;base64,iVBORw0KGgoAAAANS...' />";
var pdf = renderer.RenderHtmlAsPdf(htmlWithImage);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

結論

IronPDF 讓在 ASP.NET 應用程式中將 HTML 轉換為 PDF 變得異常簡單。 無論您需要從 HTML 字串產生 PDF 文件、轉換 HTML 文件,還是將整個網頁轉換為 PDF,IronPDF 都提供了一個強大的 HTML 轉 PDF 轉換器,可以保留所有 HTML 內容、CSS 樣式和 JavaScript 功能。 它既適用於大型應用程序,也適用於輕量級工具,例如行動應用程式或簡單的命令列實用程式。

PDF 程式庫可以處理從簡單的 HTML 文件到複雜的 Web 內容的一切,使其成為 .NET 應用程式中進行 PDF 轉換的理想選擇。 透過支援頁首、頁尾、安全性設定和各種 HTML 來源,您可以用最少的程式碼建立符合專業標準的 PDF 文件。

立即透過免費試用版開始使用 IronPDF,體驗在 ASP.NET 專案中無縫進行 HTML 到 PDF 的轉換。 對於生產用途,請了解我們靈活的授權選項,這些選項可根據您的需求進行擴展。

常見問題解答

如何在 ASP.NET 中將網頁轉換為 PDF?

您可以使用 IronPDF 這個 .NET 函式庫,在 ASP.NET 應用程式中將網頁轉換為 PDF。它讓您只需要幾行 C# 程式碼,就能從 HTML 內容產生專業的 PDF 檔案。

在 ASP.NET 中將 HTML 轉換為 PDF 的典型用例有哪些?

常見的使用案例包括產生報表、建立發票,以及從 ASP.NET 應用程式內的網頁提供 PDF 格式的可下載內容。

IronPDF 是否適合生成專業級 PDF?

是的,IronPDF 旨在將 HTML 和網頁轉換為高品質、專業的 PDF 文件,適合商業和企業應用。

在 ASP.NET 應用程式中使用 IronPDF 有多容易?

IronPDF 對使用者非常友善。它允許開發人員以最少的程式碼將 HTML 轉換成 PDF,因此很容易整合到現有的 ASP.NET 應用程式中。

IronPdf 可以處理複雜的 CSS 和 JavaScript 網頁嗎?

是的,IronPDF 可以處理包含 CSS 和 JavaScript 的複雜網頁,確保生成的 PDF 能保持原始網頁的外觀和感覺。

是否可以使用 IronPDF 自動從網頁生成 PDF?

絕對可以IronPDF 可以集成到自動化工作流程中,在 ASP.NET 應用程式中以程式化方式從網頁生成 PDF。

IronPDF 是否支持将 HTML 文件直接转换为 PDF?

是的,IronPDF 不僅允許您轉換網頁,還允許您將本機的 HTML 檔案直接轉換為 PDF 文件。

IronPDF 在 PDF 轉換時使用何種程式語言?

IronPDF 使用 C# 在 ASP.NET 應用程式中將 HTML 和網頁轉換為 PDF。

IronPDF 是否能夠從動態網頁內容生成 PDF?

是的,IronPDF 可以處理動態網頁內容,確保產生的 PDF 反映轉換時網頁的最新版本。

使用 IronPDF 進行 HTML 至 PDF 的轉換有哪些優點?

IronPDF 提供了一種強大且直接的方式將 HTML 轉換為 PDF,具有易於使用、高品質輸出、支援複雜佈局以及自動化功能等優點。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。