如何在Azure上使用.NET生成HTML到PDF

如何使用 C# 在 Azure 功能上使用 IronPDF 將 HTML 轉換為 PDF。

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

IronPDF 可在 Azure 平台上生成、處理和讀取 PDF 文件,包括 MVC 網站和 Azure 函式。 本指南說明如何在 Azure Functions 中實作 HTML 至 PDF 的轉換,並針對生產環境進行適當的組態與最佳化。

如果您在 Docker 容器中執行 Azure Functions,請參考此 Azure Docker Linux 教學課程

快速入門:使用 Azure 上的 IronPDF 將 HTML 轉換為 PDF

開始使用 IronPDF 在您的 Azure 應用程式中將 HTML 轉換為 PDF。 本快速指南演示了如何使用 IronPDF 的 API 方法將 URL 呈現成 PDF 文件。 本範例展示 IronPDF 將 PDF 功能整合至 Azure 解決方案的簡易性。 按照範例開始產生 PDF,不會遺失格式,讓您的 Azure 專案快速運作。

Nuget Icon立即開始使用 NuGet 建立 PDF 檔案:

  1. 使用 NuGet 套件管理器安裝 IronPDF

    PM > Install-Package IronPdf

  2. 複製並運行這段程式碼。

    var pdf = new IronPdf.ChromePdfRenderer()
        .RenderHtmlAsPdf("<h1>Hello Azure!</h1>")
        .SaveAs("output-azure.pdf");
  3. 部署到您的生產環境進行測試

    立即開始在您的專案中使用 IronPDF,免費試用!
    arrow pointer

操作指南

如何設定我的專案? <!--說明:顯示程式碼執行輸出或結果的截圖 -->

我應該安裝哪個 IronPDF 套件? 第一步是使用 NuGet 安裝 IronPDF: - 在基於 Windows 的 Azure Functions 中,請使用`IronPdf`套件 - [NuGet IronPdf 套件(Windows 版)](https://www.nuget.org/packages/IronPdf/) - 在基於 Linux 的 Azure Functions 上,請使用`IronPdf.Linux`套件 -[適用於 Linux 的 NuGet IronPdf 套件](https://www.nuget.org/packages/IronPdf.Linux/) ```shell :ProductInstall ``` *或者,使用[IronPDF 直接下載包(適用於 Azure)](https://ironpdf.com/packages/IronPdf.Package.For.azure.zip)連結手動安裝 .dll 檔案。* 如需更多進階安裝選項,請查看我們全面的 [NuGet 套件指南](https://ironpdf.com/get-started/advanced-installation-nuget/)。

我需要設定哪些 Azure 選項?

我應該選擇哪個 Azure 主機層級? Azure Basic **B1** 是渲染需求所需的最低託管層級。 如果您正在建置高吞吐量系統,則可能需要對其進行升級。 B1 層為 [Chrome PDF 渲染引擎](https://ironpdf.com/how-to/ironpdf-2021-chrome-rendering-engine-eap/)提供足夠的資源,該引擎為 IronPDF 的 HTML-to-PDF 轉換提供動力。 如果未選擇**應用服務計劃**類型,IronPdf 可能無法渲染 PDF 文件。
Azure 功能 App 創建表單,App 服務計劃選項在計劃類型下拉選單中突出顯示

為什麼要取消勾選"從套件檔案執行"? 發布 Azure Functions 應用程式時,請確保**未**選取`Run from package file` 。 此選項可建立唯讀部署,防止 IronPDF 在執行期間擷取必要的執行時相依性。
Azure Functions 發佈對話框顯示未勾選

如何為 .NET 6 進行配置? 微軟最近從 .NET 6 及更高版本中移除了映像處理庫,導致許多舊版 API 無法正常運作。因此,您需要配置專案以允許呼叫這些舊版 API。 1. 在 Linux 上,設定 `Installation.LinuxAndDockerDependenciesAutoConfig=true;` 以確保在機器上安裝 `libgdiplus` 2. 將以下內容加入 .NET 6 專案的 .csproj 檔案: ```xml true ``` 3. 在專案中建立一個名為`runtimeconfig.template.json`的文件,並填入以下內容: ```json { "configProperties": { "System.Drawing.EnableUnixSupport": true } } ``` 5. 最後,在程式開頭新增以下程式碼行,以啟用 Unix 對 System.Drawing 的支援: ```csharp System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true); ```

何時該在 Azure 上使用 Docker? 要在 Azure 上取得控制權、SVG 字型存取權限和效能控制能力,一種方法是從 Docker 容器中使用 IronPDF 應用程式和函數。 這種方法可以更好地控制運行環境,並消除許多特定平台的限制。 我們有針對 Linux 和 Windows 實例的[IronPDF Azure Docker 全面教程](/get-started/ironpdf-docker/),建議您閱讀。

Azure 函式程式碼是什麼樣子? 本範例會自動輸出記錄項目至內建的 Azure 記錄器 (請參閱 `ILogger log`)。 如需詳細的日誌設定,請參閱我們的 [ 自訂日誌指南](https://ironpdf.com/how-to/custom-logging/)。 ```csharp [FunctionName("PrintPdf")] public static async Task Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, ILogger log, ExecutionContext context) { log.LogInformation("Entered PrintPdf API function..."); // Apply license key IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"; // Configure logging IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.Custom; IronPdf.Logging.Logger.CustomLogger = log; IronPdf.Logging.Logger.EnableDebugging = false; // Configure IronPdf settings Installation.LinuxAndDockerDependenciesAutoConfig = false; Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled; try { log.LogInformation("About to render pdf..."); // Create a renderer and render the URL as PDF ChromePdfRenderer renderer = new ChromePdfRenderer(); var pdf = renderer.RenderUrlAsPdf("https://www.google.com/"); log.LogInformation("Finished rendering pdf..."); // Return the rendered PDF as a file download return new FileContentResult(pdf.BinaryData, "application/pdf") { FileDownloadName = "google.pdf" }; } catch (Exception e) { log.LogError(e, "Error while rendering pdf"); } return new OkObjectResult("OK"); } ``` ### 進階 HTML 字串渲染範例 對於涉及自訂 HTML 與 CSS 造型的更複雜情況,您可以使用 [HTML String to PDF](https://ironpdf.com/how-to/html-string-to-pdf/) 功能: ```csharp [FunctionName("RenderHtmlWithCss")] public static async Task RenderHtmlWithCss( [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("Processing HTML to PDF request"); // Read HTML content from request body string htmlContent = await new StreamReader(req.Body).ReadToEndAsync(); // Configure renderer with custom options var renderer = new ChromePdfRenderer() { RenderingOptions = new ChromePdfRenderOptions() { MarginTop = 20, MarginBottom = 20, MarginLeft = 10, MarginRight = 10, CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print, PrintHtmlBackgrounds = true, CreatePdfFormsFromHtml = true } }; try { // Add custom CSS string styledHtml = $@" {htmlContent} "; var pdf = renderer.RenderHtmlAsPdf(styledHtml); return new FileContentResult(pdf.BinaryData, "application/pdf") { FileDownloadName = "styled-document.pdf" }; } catch (Exception ex) { log.LogError(ex, "Failed to render HTML to PDF"); return new BadRequestObjectResult("Error processing HTML content"); } } ``` 關於在您的 Azure Functions 中管理授權,請參閱我們的 [Using License Keys](https://ironpdf.com/get-started/license-keys/) 文件。

已知問題有哪些?

為什麼 SVG 字型無法在共用主機計劃上渲染? 一個限制是, [Azure 託管平台概述](https://azure.microsoft.com/en-us/)不支援在其價格較低的共用 Web 應用程式層中載入 SVG 字型(例如 Google Fonts)的伺服器。 這是由於安全性限制阻止了對 Windows GDI+ 圖形物件的存取。 我們建議使用[Windows 或 Linux Docker 容器指南來執行 IronPDF](/get-started/ironpdf-docker/) ,或使用 Azure 上的 VPS 來解決需要最佳字體渲染的問題。 ### Why Is Azure Free Tier Hosting Slow? Azure 免費層和共用層以及按需付費方案不適合 PDF 渲染。 我們推薦 Azure B1 主機/進階套餐,這也是我們自己使用的套餐。 將`HTML to PDF`對任何電腦來說都是一項相當大的"工作量",類似於在您自己的電腦上開啟並渲染網頁。**由於使用了真正的瀏覽器引擎**,因此我們需要進行相應的配置,並預期渲染時間與同等效能的桌上型電腦類似。

如何在本地調試 Azure 函式? 若要進行本機開發與測試,請參閱我們的 [Debugging Azure Functions Project on Local Machine](https://ironpdf.com/troubleshooting/debugging-azure-functions-on-local-machine-ironpdf/) 指南。 這有助於您在部署到 Azure 之前發現並解決問題。

在哪裡可以找到 Azure 日誌? 在排解 PDF 生成问题时,Azure 日志非常宝贵。 請參閱我們的 [Azure 日誌檔案](https://ironpdf.com/troubleshooting/azure-log-files/)指南,瞭解有關存取和詮釋 IronPdf 作業特定日誌的說明。

如何建立工程支援請求? 若要建立請求單,請參閱 [如何為 IronPDF 提出工程支援請求](/troubleshooting/engineering-request-pdf/)指南。 ## 生產的最佳實務 1.**請務必使用適當的主機層級** - `B1` 或更高層級以獲得可靠的效能 2.**正確設定記錄** - 使用 Azure Application Insights 進行生產監控 3.**優雅地處理異常** - 實作暫態故障的重試邏輯 4.**優化 HTML 內容** - 儘量減少外部資源,並盡可能使用 base64 編碼的圖片 5.**徹底測試** - 在 Azure 部署之前在本機驗證 PDF 的產生 6.**監控資源使用量** - 追蹤記憶體和 CPU 消耗量,以進行適當的擴充

常見問題解答

生成 PDF 所需的最低 Azure 主機層級是什麼?

IronPDF 需要 Azure Basic B1 層作為滿足 PDF 渲染需求的最低託管層級。B1 層級可為 Chrome PDF 渲染引擎提供足夠的資源,該引擎為 IronPDF 的 HTML 至 PDF 轉換功能提供動力。

基於 Windows 的 Azure Functions 應該安裝哪個套件?

對於基於 Windows 的 Azure 函式,請從 NuGet 安裝 IronPDF 套件。此套件已針對 Windows 環境進行最佳化,並利用 Chrome 渲染引擎提供完整的 PDF 生成功能。

如何在 Azure Functions 中將 HTML 轉換為 PDF?

使用 IronPDF 的 ChromePdfRenderer,只需一行代碼即可將 HTML 轉換為 PDF。只需建立一個新的實例,並使用您的 HTML 內容呼叫 RenderHtmlAsPdf(),然後儲存所產生的 PDF 檔案。

如果我沒有選擇正確的 App 服務計畫會如何?

如果未選擇 App 服務計劃的計劃類型,可能會導致 IronPDF 無法渲染 PDF 文件。Azure 主機環境的適當配置對 PDF 渲染引擎的正常運作至關重要。

為什麼出版時必須取消勾選「從套件檔案執行」?

在發佈您的 Azure Functions 應用程式時,必須取消勾選「從套件檔案執行」,以確保 IronPDF 能夠在 Azure 環境中正確存取和使用其渲染元件與相依性。

我可以使用基於 Linux 的 Azure 函式來產生 PDF 嗎?

是的,對於基於 Linux 的 Azure Functions,請使用 NuGet 的 IronPdf.Linux 套件。此套件專為 Linux 環境最佳化,同時提供相同的 PDF 生成功能。

如果我需要更高的 PDF 生成吞吐量,該怎麼辦?

對於高吞吐量系統,您可能需要升級至 B1 層以上。IronPDF 可根據您的 Azure 資源進行擴展,讓您可以透過選擇更高的效能層級來處理增加的 PDF 生成需求。

柯蒂斯·週
技術撰稿人

Curtis Chau擁有卡爾頓大學電腦科學學士學位,專長於前端開發,精通Node.js、TypeScript、JavaScript和React。他熱衷於打造直覺美觀的使用者介面,喜歡使用現代框架,並擅長撰寫結構清晰、視覺效果出色的使用者手冊。

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

準備好開始了嗎?
Nuget 下載 17,012,929 | 版本: 2025.12 剛剛發布