IronPDF 操作指南 保存 & 匯出 PDF 文檔 C# 匯出至 PDF 的程式碼範例教學。 Curtis Chau 更新:1月 10, 2026 下載 IronPDF NuGet 下載 DLL 下載 Windows 安裝程式 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 This article was translated from English: Does it need improvement? Translated View the article in English 使用 IronPdf 在 C# 中使用 SaveAs(), Stream 和 BinaryData 等簡單的方法將 HTML 內容匯出至 PDF。 此 C# PDF 函式庫可讓開發人員以程式化的方式將 HTML 轉換為 PDF 文件,並將其提供給 Web 瀏覽器或儲存至磁碟。 IronPDF 是一個C# PDF 庫,它允許您使用 C# 將 HTML 儲存為 PDF。 它還允許 C# / VB 開發人員以程式設計方式編輯 PDF 文件。 無論您是要產生報表、建立發票或轉換網頁,IronPDF 都能為 在 C# 應用程式中產生 PDF 提供強大的解決方案。 快速入門:使用 IronPDF 在 C# 中將 HTML 匯出為 PDF 使用 IronPDF 以 C# 將您的 HTML 內容匯出至 PDF。 本指南向您展示了如何將 HTML 轉換為 PDF 文件,並僅需幾行代碼即可保存。 IronPDF 簡化了 PDF 的產生,讓開發人員可以將 PDF 匯出功能整合到他們的應用程式中。 立即開始使用 NuGet 建立 PDF 檔案: 使用 NuGet 套件管理器安裝 IronPDF PM > Install-Package IronPdf 複製並運行這段程式碼。 new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>HelloPDF</h1>").SaveAs("myExportedFile.pdf"); 部署到您的生產環境進行測試 立即開始在您的專案中使用 IronPDF,免費試用! 免費試用30天 最小工作流程(5 個步驟) 從 NuGet 下載並安裝 C# PDF 匯出程式庫。 探索 PdfDocument 文件中的數位簽章方法 使用 System.IO.MemoryStream 將 PDF 儲存到記憶體中 將 PDF 檔案以二進位資料而非 HTML 格式提供給 Web。 將 PDF 匯出為文件 儲存 PDF 有哪些不同的選項? -->。 <!--說明:顯示程式碼執行輸出或結果的截圖 --> 在使用 C# 處理 PDF 文件時,IronPDF 提供多種選項來儲存和匯出您所產生的 PDF。 每種方法都服務於不同的使用個案,從簡單的檔案儲存到在 Web 應用程式中服務 PDF。 以下各節將介紹 [ 在 C# 中匯出和儲存 PDF 的可用選項](https://ironpdf.com/how-to/export-save-pdf-csharp/)。 ### 如何將 PDF 檔案儲存到磁碟 使用[`PdfDocument.SaveAs`](/object-reference/api/IronPdf.PdfDocument.html)方法將 PDF 儲存到磁碟。 對於桌面應用程式或需要在伺服器上永久儲存 PDF 時,這是最直接的方法。 ```csharp // Complete example for saving PDF to disk using IronPdf; // Initialize the Chrome PDF renderer var renderer = new ChromePdfRenderer(); // Create HTML content with styling string htmlContent = @" Date: " + DateTime.Now.ToString("yyyy-MM-dd") + @" Thank you for your business! "; // Render HTML to PDF PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent); // Save to disk with standard method pdf.SaveAs("invoice_12345.pdf"); // Save with password protection for sensitive documents pdf.Password = "secure123"; pdf.SaveAs("protected_invoice_12345.pdf"); ``` 此方法支援加入密碼保護。 請參閱以下文章,瞭解更多關於對匯出的 PDF 進行數位簽章的資訊:[ 數位簽署 PDF 文件](https://ironpdf.com/how-to/signing/)。如需其他安全性選項,請探索我們的 [PDF 權限和密碼指南](https://ironpdf.com/how-to/pdf-permissions-passwords/)。 ### How to Save a PDF File to MemoryStream in C# (`System.IO.MemoryStream`). [`IronPdf.PdfDocument.Stream`](/object-reference/api/IronPdf.PdfDocument.html)屬性使用`System.IO.MemoryStream`將 PDF 儲存到記憶體中。 當您需要在記憶體中操作 PDF 資料或將資料傳送至其他方法而不需要建立臨時檔案時,此方法是最理想的選擇。 進一步了解 [使用 PDF 記憶體串流](https://ironpdf.com/how-to/pdf-memory-stream/)。 ```csharp // Example: Save PDF to MemoryStream using IronPdf; using System.IO; var renderer = new ChromePdfRenderer(); // Render HTML content PdfDocument pdf = renderer.RenderHtmlAsPdf("Sales figures..."); // Get the PDF as a MemoryStream MemoryStream stream = pdf.Stream; // Example: Upload to cloud storage or database // UploadToCloudStorage(stream); // Example: Email as attachment without saving to disk // EmailService.SendWithAttachment(stream, "report.pdf"); // Remember to dispose of the stream when done stream.Dispose(); ``` ### 如何儲存為二進位數據 [`IronPdf.PdfDocument.BinaryData`](/object-reference/api/IronPdf.PdfDocument.html)屬性將 PDF 文件以二進位資料的形式匯出到記憶體中。 這對資料庫儲存或與需要位元組陣列的 API 整合時特別有用。 這將 PDF 輸出為`ByteArray` ,在 C# 中表示為`byte []` 。 ```csharp // Example: Convert PDF to binary data using IronPdf; var renderer = new ChromePdfRenderer(); // Configure rendering options for better quality renderer.RenderingOptions = new ChromePdfRenderOptions() { MarginTop = 20, MarginBottom = 20, MarginLeft = 10, MarginRight = 10, PaperSize = IronPdf.Rendering.PdfPaperSize.A4 }; // Render content to PDF PdfDocument pdf = renderer.RenderHtmlAsPdf(""); // Get binary data byte[] binaryData = pdf.BinaryData; // Example: Store in database // database.StorePdfDocument(documentId, binaryData); // Example: Send via API // apiClient.UploadDocument(binaryData); ``` 如需涉及二進位資料處理的更進階方案,請參閱我們的 [ 將 PDF 轉換為 MemoryStream](https://ironpdf.com/how-to/pdf-to-memory-stream/) 指南。 ### 如何從 Web 伺服器向瀏覽器提供服務 <!--說明:說明程式碼概念的圖表或截圖 --> 要將 PDF 文件提供給網絡,我們需要將其作為二進位資料而不是 HTML 格式發送。 對於使用者需要直接在瀏覽器中下載或檢視 PDF 的網路應用程式而言,這是非常重要的。 IronPDF 可與 MVC 和傳統 ASP.NET 應用程式整合。 #### MVC PDF匯出 在現代的 MVC 應用程式中,使用 `FileStreamResult` 直接提供 PDF。 這種方法對於 [ASP.NET Core MVC 應用程式](https://ironpdf.com/how-to/cshtml-to-pdf-mvc-core/)非常有效: ```csharp // MVC Controller method for PDF export public IActionResult DownloadInvoice(int invoiceId) { // Generate your HTML content string htmlContent = GenerateInvoiceHtml(invoiceId); // Create PDF using IronPDF var renderer = new ChromePdfRenderer(); PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent); // Get the PDF stream MemoryStream stream = pdf.Stream; // Reset stream position stream.Position = 0; // Return file to browser - will prompt download return new FileStreamResult(stream, "application/pdf") { FileDownloadName = $"invoice_{invoiceId}.pdf" }; } // Alternative: Display PDF in browser instead of downloading public IActionResult ViewInvoice(int invoiceId) { var renderer = new ChromePdfRenderer(); PdfDocument pdf = renderer.RenderHtmlAsPdf(GenerateInvoiceHtml(invoiceId)); // Return PDF for browser viewing return File(pdf.BinaryData, "application/pdf"); } ``` #### ASP.NET PDF匯出 對於傳統的 ASP.NET WebForms 應用程式,您可以直接透過 Response 物件提供 PDF: ```csharp // ASP.NET WebForms PDF export protected void ExportButton_Click(object sender, EventArgs e) { // Create your PDF document var renderer = new ChromePdfRenderer(); // Configure rendering options renderer.RenderingOptions = new ChromePdfRenderOptions() { PaperSize = IronPdf.Rendering.PdfPaperSize.Letter, PrintHtmlBackgrounds = true, CreatePdfFormsFromHtml = true }; // Generate PDF from current page or custom HTML PdfDocument MyPdfDocument = renderer.RenderHtmlAsPdf(GetReportHtml()); // Retrieves the PDF binary data byte[] Binary = MyPdfDocument.BinaryData; // Clears the existing response content Response.Clear(); // Sets the response content type to 'application/octet-stream', suitable for PDF files Response.ContentType = "application/octet-stream"; // Add content disposition header for download Response.AddHeader("Content-Disposition", "attachment; filename=report_" + DateTime.Now.ToString("yyyyMMdd") + ".pdf"); // Writes the binary data to the response output stream Context.Response.OutputStream.Write(Binary, 0, Binary.Length); // Flushes the response to send the data to the client Response.Flush(); // End the response Response.End(); } ``` ## 進階輸出情境 <!--說明:顯示進階匯出選項和結果的螢幕截圖 --> ### 批量 PDF 匯出 在處理多個 PDF 時,您可以優化匯出流程: ```csharp // Batch export multiple PDFs to a zip file public void ExportMultiplePdfsAsZip(List htmlDocuments, string zipFilePath) { using (var zipArchive = ZipFile.Open(zipFilePath, ZipArchiveMode.Create)) { var renderer = new ChromePdfRenderer(); for (int i = 0; i < htmlDocuments.Count; i++) { // Render each HTML document PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlDocuments[i]); // Add to zip archive var entry = zipArchive.CreateEntry($"document_{i + 1}.pdf"); using (var entryStream = entry.Open()) { pdf.Stream.CopyTo(entryStream); } } } } ``` ### 基於使用者權限的有條件匯出 ```csharp // Export with different options based on user role public byte[] ExportPdfWithPermissions(string htmlContent, UserRole userRole) { var renderer = new ChromePdfRenderer(); PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent); // Apply security based on user role if (userRole == UserRole.Guest) { // Restrict printing and copying for guests pdf.SecuritySettings.AllowUserPrinting = false; pdf.SecuritySettings.AllowUserCopyPasteContent = false; } else if (userRole == UserRole.Standard) { // Allow printing but not editing pdf.SecuritySettings.AllowUserPrinting = true; pdf.SecuritySettings.AllowUserEditing = false; } return pdf.BinaryData; } ``` ## PDF 匯出的最佳作法 在生產應用程式中輸出 PDF 時,請考慮這些最佳實務: 1.**記憶體管理**:對於大型 PDF 或高流量應用程式,請妥善處置 PDF 物件和串流,以防止記憶體洩漏。 考慮使用 `async` 方法以獲得更好的效能。 2.**錯誤處理**:匯出 PDF 時,務必執行適當的錯誤處理,尤其是在可能發生網路問題的 Web 應用程式中。 3.**壓縮**:對於大型 PDF,在提供給使用者之前,請使用 PDF 壓縮來減少檔案大小。 4.**元資料**:設定適當的 PDF 元資料,包括標題、作者和建立日期,以改善文件管理。 5.**跨平台相容性**:確保您的匯出功能能在不同的平台上運作。 IronPdf 支援 `Windows`, `Linux`, 和 `macOS`. ## 結論 IronPdf 提供了在 C# 應用程式中輸出 PDF 的全面選項,從簡單的檔案儲存到複雜的 Web 伺服器情境。 針對您的使用個案使用適當的匯出方法,可讓您有效率地產生 PDF 文件並傳送給使用者,同時維持安全性與效能標準。 常見問題解答 如何在 C# 中將 HTML 內容匯出至 PDF? 您可以使用 IronPDF 的 ChromePdfRenderer 類,在 C# 中將 HTML 匯出為 PDF。只需創建一個渲染器實例,使用 RenderHtmlAsPdf() 方法轉換您的 HTML 內容,然後用 SaveAs() 方法保存即可。IronPDF 可輕鬆地將 HTML 字串、檔案或 URL 直接轉換為 PDF 文件。 使用 C# 儲存 PDF 有哪些不同的方法? IronPDF 提供了多種儲存 PDF 的方法:SaveAs() 用於儲存至磁碟,Stream 用於在 Web 應用程式中提供 PDF 而無需建立臨時檔案,而 BinaryData 用於以位元組陣列的方式取得 PDF。IronPDF 中的每種方法都服務於不同的用例,從簡單的檔案儲存到動態的網頁傳送。 我可以將 PDF 儲存至記憶體而非磁碟嗎? 是的,IronPDF 允許您使用 System.IO.MemoryStream 將 PDF 儲存至記憶體。這對於想要直接向使用者提供 PDF 而不在伺服器上建立臨時檔案的 Web 應用程式非常有用。您可以使用 Stream 屬性或將 PDF 轉換為二進位資料。 如何在儲存 PDF 時加入密碼保護? IronPDF 透過在儲存前設定 PdfDocument 物件的 Password 屬性來啟用密碼保護。只需將密碼字串指定給 pdf.Password,然後使用 SaveAs() 建立需要密碼才能開啟的受保護 PDF 檔案。 我可以直接將 PDF 提供給 Web 瀏覽器而不儲存到磁碟嗎? 是的,IronPDF 允許您以二進位資料的形式直接向網頁瀏覽器提供 PDF。您可以使用 BinaryData 屬性,以位元組陣列的方式取得 PDF,並透過網頁應用程式的回應串流提供 PDF,省去暫存檔案的需求。 在一行中將 HTML 轉換並儲存為 PDF 的最簡單方法是什麼? IronPDF 提供了單一行式的解決方案:new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("Your HTML").SaveAs("output.pdf")。這會在單一語句中建立一個渲染器,將 HTML 轉換成 PDF,並將其儲存到磁碟中。 Curtis Chau 立即與工程團隊聊天 技術作家 Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。 審核人 Jeffrey T. Fritz 首席程序经理 - .NET 社区团队 Jeff 也是 .NET 和 Visual Studio 团队的首席程序经理。他是 .NET Conf 虚拟会议系列的执行制作人,并主持“Fritz 和朋友”这一每周两次的开发者的直播节目,在节目上讨论技术并与观众一起编写代码。Jeff 撰写研讨会、主持演讲,并计划大型 Microsoft 开发者活动(包括 Microsoft Build、Microsoft Ignite、.NET Conf 和 Microsoft MVP Summit)的内容。 準備好開始了嗎? Nuget 下載 16,685,821 | 版本: 2025.12 剛發表 免費下載 NuGet 下載總數:16,685,821 檢視授權