IronPDF 操作指南 CSHTML 到 PDF(無頭) 如何在 C# 中無頭地將 Razor 視圖轉換為 PDF 柯蒂斯·週 更新:1月 10, 2026 下載 IronPDF NuGet 下載 DLL 下載 Windows Installer 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 分享 分享到 X(Twitter) 在領英上分享 複製連結 電子郵件文章 This article was translated from English: Does it need improvement? Translated View the article in English 透過使用 Razor.Templating.Core 將 cshtml 檔案轉換為 HTML,然後再使用 IronPDF 的 RenderHtmlAsPdf 方法在不需要 GUI 或瀏覽器視窗的情況下,將 Razor View 轉換為 PDF。 Headless rendering 在沒有圖形使用者介面的情況下處理網頁內容。 雖然 IronPDF.Extensions.Razor 非常有用,但它缺乏無頭渲染功能。 本指南解決了這個缺口。 我們會使用 Razor.Templating.Core 將 cshtml 轉換為 HTML,然後再使用 IronPDF 來產生 PDF。 快速入門:幾秒鐘內將 Razor 視圖轉換為 PDF 使用 IronPDF 的無頭轉換功能將 Razor View 轉換為 PDF。 使用 IronPDF.HtmlToPdf.StaticRender.RenderHtmlAsPdf 將 Razor View 中的 HTML 渲染成 PDF。 此方法可在 ASP.NET Core 環境中無縫運作。 立即開始使用 NuGet 建立 PDF 檔案: 使用 NuGet 套件管理器安裝 IronPDF PM > Install-Package IronPdf 複製並運行這段程式碼。 var html = await RazorTemplateEngine.RenderAsync("Views/Template.cshtml", model); new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf(html).SaveAs("output.pdf"); 部署到您的生產環境進行測試 立即開始在您的專案中使用 IronPDF,免費試用! 免費試用30天 最小工作流程(5 個步驟) 下載用於在 ASP.NET Core Web 應用程式中將 Razor 視圖轉換為 PDF 的 C# 程式庫 創建一個新的 Razor 視圖並編輯文件以顯示數據 使用RenderAsync方法將 Razor 視圖轉換為 HTML 使用RenderHtmlAsPdf方法將 HTML 轉換為 PDF 下載示例項目以快速開始 安裝 Razor.Templating.Core,在 ASP.NET Core Web Apps 中將 Razor 視圖轉換為 HTML。 # Install the Razor.Templating.Core package using NuGet Package Manager Install-Package Razor.Templating.Core # Install the Razor.Templating.Core package using NuGet Package Manager Install-Package Razor.Templating.Core SHELL 如何設定我的 ASP.NET Core 專案進行 Razor to PDF 轉換? <!--說明:顯示程式碼執行輸出或結果的截圖 --> 您需要一個 ASP.NET Core Web App (Model-View-Controller) 專案來轉換 View 到 PDF。 設定包括在 Visual Studio 中建立專案、安裝 NuGet 套件,以及設定您的專案結構。 類似的技術,請參閱 [ 在 MVC Core 中將 CSHTML 轉換為 PDF](https://ironpdf.com/how-to/cshtml-to-pdf-mvc-core/) 或 [ 使用 Razor Pages 將 CSHTML 轉換為 PDF](https://ironpdf.com/how-to/cshtml-to-pdf-razor/) 。 ### 為什麼我需要 Razor.Templating.Core 而不是 IronPdf.Extensions.Razor? Razor.Templating.Core提供真正的無頭渲染-無需網頁上下文或瀏覽器視窗即可將Razor視圖轉換為HTML。 這適用於背景服務、主控台應用程式或無 UI 環境。 IronPdf.Extensions.Razor需要網頁情境才能運作。 哪種專案類型最適合無頭 PDF 生成? ASP.NET Core Web App (Model-View-Controller) 專案提供必要的 Razor View 基礎架構,並有彈性的部署選項。 在背景服務、Azure 函式或主控台應用程式中使用此方法。 請參閱 [將 IronPDF 部署到 Azure](https://ironpdf.com/how-to/azure/) 以進行雲端生成。 如何安裝所需的 NuGet 套件? 使用 NuGet Package Manager 安裝套件。 您需要 IronPDF 和 Razor.Templating.Core: ```csharp // Install via Package Manager Console Install-Package IronPdf Install-Package Razor.Templating.Core // Or add to your .csproj file // // ``` 我該如何為 PDF 生成建立和配置 Razor View? - 右鍵按一下"Home"資料夾。 選擇 "新增" 然後選擇 "新增檢視"。 - 建立一個空的 Razor View,命名為"Data.cshtml"。 。 我應該在我的 Razor View 中加入哪些 HTML 內容? 新增您想要渲染為 PDF 的 HTML: ```html Name Title Description John Doe Software Engineer Experienced software engineer specializing in web development. Alice Smith Project Manager Seasoned project manager with expertise in agile methodologies. Michael Johnson Data Analyst Skilled data analyst proficient in statistical analysis and data visualization. ``` 對於複雜的佈局,請使用 [CSS 和列印樣式](https://ironpdf.com/how-to/html-to-pdf-responsive-css/),以確保完美的 PDF 呈現。 IronPDF 支援現代化的 CSS3 功能,可呈現精密的文件佈局。 為何使用表格來顯示 PDF 資料? 表格提供結構化、有條理的資訊,能很好地翻譯成印刷文件。 它們在不同的平台上保持一致的格式,並能以 PDF 格式閱讀。 IronPDF 的渲染引擎可以很好地處理表格佈局,保留邊框、間距和對齊方式。 如需進階格式,請探索 [ 自訂頁邊距離](https://ironpdf.com/how-to/custom-margins/),以最佳化排版。 PDF 輸出的常見樣式考量為何? 對於 PDF 輸出,請使用印刷專用的 CSS 媒體查詢、固定像素值而非相對單位,以及內嵌字型以達到一致的呈現效果。 IronPdf 支援 [web 字型和圖示字型](https://ironpdf.com/how-to/webfonts-webicons/),以達到品牌一致性。 考慮 [ 多頁文件的分頁符](https://ironpdf.com/how-to/html-to-pdf-page-breaks/),以及適當的頁邊,以達到專業的外觀。 如何為無頭 PDF 渲染配置 Program.cs? 在 "Program.cs "中,加入以下程式碼。 它使用 Razor.Templating.Core 中的 `RenderAsync` 將 Razor 視圖轉換為 HTML,然後實際化 `ChromePdfRenderer` 並將 HTML 傳送給 `RenderHtmlAsPdf` 。 使用 `RenderingOptions` 自訂文字、頁首、頁尾、頁邊距和頁碼。 ```csharp app.MapGet("/PrintPdf", async () => { // Set your IronPDF license key IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"; // Enable detailed logging for troubleshooting IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All; // Render the Razor view to an HTML string string html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml"); // Create a new instance of ChromePdfRenderer ChromePdfRenderer renderer = new ChromePdfRenderer(); // Configure rendering options for professional output renderer.RenderingOptions.PaperSize = IronPdf.PdfPaperSize.A4; renderer.RenderingOptions.MarginTop = 25; renderer.RenderingOptions.MarginBottom = 25; renderer.RenderingOptions.MarginLeft = 20; renderer.RenderingOptions.MarginRight = 20; // Render the HTML string as a PDF document PdfDocument pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot"); // Return the PDF file as a response return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf"); }); ``` 我可以將哪些渲染選項套用至我的 PDF? IronPdf 提供廣泛的渲染選項。 新增[頁頭與頁尾](https://ironpdf.com/how-to/headers-and-footers/)、設定[自訂紙張大小](https://ironpdf.com/how-to/custom-paper-size/)、控制[頁面方向](https://ironpdf.com/how-to/page-orientation-rotation/),以及新增[水印](https://ironpdf.com/how-to/custom-watermark/)。 `ChromePdfRenderer`提供超過 50 種自訂 PDF 產生的屬性。 如何處理 PDF 生成過程中的錯誤? 實施錯誤處理,以產生穩健的 PDF: ```csharp try { var html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml"); var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot"); return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf"); } catch (Exception ex) { // Log the error details IronPdf.Logging.Logger.Log($"PDF generation failed: {ex.Message}"); return Results.Problem("Failed to generate PDF", statusCode: 500); } ``` 何時應該啟用詳細記錄? 在開發和疑難排解期間啟用詳細記錄。 IronPDF 的日誌可提供對渲染的深入瞭解,有助於識別 HTML 解析、資產載入或配置問題。 對於生產,請使用 [ 自訂日誌](https://ironpdf.com/how-to/custom-logging/) 與您應用程式的日誌基礎架構整合。 為什麼我需要修改資產連結路徑? 導覽至"檢視">"共用">"_Layout.cshtml"。 在 link 標籤中,將 `"~/"` 改為 `"./"` 因為 `"~/"` 在 IronPDF 中運作不佳。 我還應該注意哪些與路徑相關的問題? 除了 tilde (~) 路徑問題之外,還要確保圖片來源使用絕對路徑或適當的相對參照。 對於外部資源,請使用 [基本 URL](https://ironpdf.com/how-to/base-urls/) 以確保資產能正確載入。 有關 Azure Blob Storage 圖片,請參閱 [從 Azure Blob Storage 嵌入圖片](https://ironpdf.com/how-to/images-azure-blob-storage/)。 靜態資產如何影響 PDF 生成? 靜態資產(CSS、JavaScript、圖片)會影響 PDF 生成的效能和品質。 確保資產可在呈現過程中存取,使用最佳化的圖片,並考慮嵌入關鍵的 CSS 以加快呈現速度。 了解 [ 重 JavaScript 內容的渲染延遲和超時](https://ironpdf.com/how-to/javascript-to-pdf/)。 如何測試我的無頭 PDF 生成? 執行專案以產生 PDF 文件。 #### 輸出 PDF 我的最終 PDF 應該是什麼樣子? 您的 PDF 應該保持所有 Razor View 格式 - 表格結構、字型、顏色和排版。 譯文的大小必須正確,頁邊必須整齊,外觀必須專業。 為了驗證輸出品質,請使用 IronPDF 的 [ 光柵化功能](https://ironpdf.com/how-to/rasterize-pdf-to-images/) 以圖像方式預覽頁面。 如何排除常見的 PDF 渲染問題? 常見的問題包括樣式遺失、版面破損或內容不完整。 啟用詳細的日誌、驗證資產路徑,並確保 HTML 能正常驗證。 對於複雜的佈局,請在轉換前使用 [ Chrome 除錯工具](https://ironpdf.com/how-to/pixel-perfect-html-to-pdf/) 來預覽 HTML。 針對特定的呈現問題,請使用 [WaitFor delays](https://ironpdf.com/how-to/waitfor/) 以確保內容在呈現之前已載入。 哪裡可以下載完整的工作範例? 以壓縮版 Visual Studio ASP.NET Core Web App (Model-View-Controller) 專案的形式下載完整程式碼。 [點擊此處下載項目。](/static-assets/pdf/how-to/cshtml-to-pdf-razor-headlessly/ViewToPdfMVCCoreHeadlesslySample.zip) 執行範例專案的先決條件為何? 您需要 Visual Studio 2019 或更高版本,以及 .NET 6.0 SDK 或更高版本。 本專案需要網際網路連線以還原 NuGet 套件。 執行前請更新 Program.cs 中的 IronPDF 授權金鑰。 如需部署,請檢閱 [Windows 安裝指南](https://ironpdf.com/how-to/windows/),以瞭解其他要求。 如何針對我的使用個案自訂範例? 本範本可為您的特定需求提供基礎。 新增動態資料模型、對頻繁產生的 PDF 實作快取,或與現有驗證整合。 對於進階方案,請探索 [async PDF 生成](https://ironpdf.com/how-to/async/)以改善效能,或實作 [ PDF 壓縮](https://ironpdf.com/how-to/pdf-compression/)以縮小檔案大小。 新增 [ 數位簽名](https://ironpdf.com/how-to/signing/)以確保文件的真實性,或新增 [ 密碼保護](https://ironpdf.com/how-to/pdf-permissions-passwords/)以保護敏感文件。 常見問題解答 如何在 C# 中將 Razor 視圖轉換為 PDF 而無需 GUI? 使用 Razor.Templating.Core 將 cshtml 檔案轉換為 HTML,然後再使用 IronPDF 的 RenderHtmlAsPdf 方法無頭生成 PDF。這兩個步驟讓您可以將 Razor View 轉換成 PDF 文件,而不需要圖形使用者介面或瀏覽器視窗。 將 Razor 視圖無頭渲染為 PDF 的最快方法是什麼? 最快的方法是使用兩行程式碼:首先使用 RazorTemplateEngine.RenderAsync 將您的 Razor 視圖轉換為 HTML,然後再使用 IronPDF 的 ChromePdfRenderer().RenderHtmlAsPdf(html).SaveAs() 方法建立並儲存 PDF 檔案。 為什麼我應該使用 Razor.Templating.Core 而不是 IronPdf.Extensions.Razor? Razor.Templating.Core 提供真正的無頭渲染功能,讓您可以在沒有網頁上下文或瀏覽器視窗的情況下將 Razor 視圖轉換為 HTML。雖然IronPdf.Extensions.Razor很有用,但它需要網頁上下文才能運作,因此Razor.Templating.Core更適合背景服務和控制台應用程式。 無頭 PDF 生成需要哪種類型的 ASP.NET Core 專案? 使用 ASP.NET Core Web App (Model-View-Controller) 專案,提供必要的 Razor View 基礎架構與彈性部署選項。此設定與 IronPDF 的背景服務、Azure Functions 或主控台應用程式搭配使用效果極佳。 如何安裝 Razor to PDF 轉換所需的套件? 使用 NuGet 套件管理程式安裝 Razor.Templating.Core,指令為「Install-Package Razor.Templating.Core」。您還需要在專案中安裝 IronPDF,以處理 HTML 到 PDF 的轉換步驟。 我可以在雲端環境中使用這種無頭 PDF 生成方法嗎? 是的,IronPDF 的無頭 Razor to PDF 轉換在雲端環境中運作出色,包括 Azure Functions、AWS Lambda 和容器化應用程式,使其成為可擴充的文件生成服務的理想選擇。 柯蒂斯·週 現在就和工程團隊聊天吧 技術撰稿人 Curtis Chau擁有卡爾頓大學電腦科學學士學位,專長於前端開發,精通Node.js、TypeScript、JavaScript和React。他熱衷於打造直覺美觀的使用者介面,喜歡使用現代框架,並擅長撰寫結構清晰、視覺效果出色的使用者手冊。除了開發工作之外,柯蒂斯對物聯網 (IoT) 也抱有濃厚的興趣,致力於探索硬體和軟體整合的創新方法。閒暇時,他喜歡玩遊戲和製作 Discord 機器人,將他對科技的熱愛與創造力結合。 準備好開始了嗎? Nuget 下載 17,012,929 | 版本: 2025.12 剛剛發布 免費下載 NuGet 總下載量: 17,012,929 查看許可證