使用IRONPDF 如何在C#中使用默認查看器打開PDF文件 Curtis Chau 更新日期:9月 21, 2025 Download IronPDF NuGet 下載 DLL 下載 Windows 安裝程式 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article 在預設檢視器中開啟 PDF 是一項常見任務。 當你在 .NET 應用程式中生成 PDF 時,經常需要這樣做。 使用 IronPDF 程式化創建和編輯 PDF 文件後,您通常需要立即將它們顯示給用戶,並在用戶選擇的預設應用程式中打開(如 Adobe Acrobat 或 Microsoft Edge)。 本指南將引導您完成如何使用 IronPDF 生成 PDF 文件,以及如何使用 System.Diagnostics.Process.Start 自動在 Windows 中打開它們的步驟。 將 IronPDF 強大的 HTML 到 PDF 轉換 功能與簡單的 Process 啟動方法結合,創造出一個無縫的工作流程,使您可以在默認應用程序中創建和顯示專業的PDF文件。 如何使用 IronPDF 生成和打開 PDF 文件? 最直接的方法涉及三個步驟: 使用 IronPDF 創建 PDF 文件。 將文件保存到目錄。 在用戶的預設應用程式中打開 PDF。 這裡是一個完整的工作示例,您可以在 Visual Studio 中使用新的控制台應用專案嘗試: using IronPdf; using System.Diagnostics; // Create a new PDF renderer var renderer = new ChromePdfRenderer(); // Generate PDF from HTML content var pdf = renderer.RenderHtmlAsPdf(@" <html> <body> <h1>Invoice #12345</h1> <p>Generated on: " + DateTime.Now.ToString("yyyy-MM-dd") + @"</p> <table> <tr><td>Product</td><td>Price</td></tr> <tr><td>IronPDF License</td><td>$799</td></tr> </table> </body> </html>"); // Save the PDF to a file string outputPath = "invoice.pdf"; pdf.SaveAs(outputPath); // Open the PDF in the default viewer Process.Start(new ProcessStartInfo { FileName = outputPath, UseShellExecute = true }); using IronPdf; using System.Diagnostics; // Create a new PDF renderer var renderer = new ChromePdfRenderer(); // Generate PDF from HTML content var pdf = renderer.RenderHtmlAsPdf(@" <html> <body> <h1>Invoice #12345</h1> <p>Generated on: " + DateTime.Now.ToString("yyyy-MM-dd") + @"</p> <table> <tr><td>Product</td><td>Price</td></tr> <tr><td>IronPDF License</td><td>$799</td></tr> </table> </body> </html>"); // Save the PDF to a file string outputPath = "invoice.pdf"; pdf.SaveAs(outputPath); // Open the PDF in the default viewer Process.Start(new ProcessStartInfo { FileName = outputPath, UseShellExecute = true }); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 此代碼首先創建一個 ChromePdfRenderer 實例,這是 IronPDF 用於將 HTML 轉換為 PDF 的主要類。 RenderHtmlAsPdf 方法將 HTML 字符串轉換為 PDF 文檔對象。 使用 SaveAs 保存 PDF 後,該代碼使用 Process.Start 與 ProcessStartInfo 打開文件,使其在預設的 PDF 檢視器中顯示。 此處的關鍵設置是 UseShellExecute = true,這告訴 Windows 使用其預設應用程式打開 PDF 文件。 輸出 如下面的圖片所示,IronPDF 成功生成了 PDF 文件,並使用預設檢視器顯示。 您會注意到在我這個例子中,這是 Opera GX。 為什麼在打開 PDF 文件時 UseShellExecute 會很重要? 在 .NET Core 和現代的 .NET 版本中,UseShellExecute 參數的預設值為 false。 如果不明確設置為 true,當你嘗試啟動一個 PDF 時,應用程式會拋出錯誤。 using IronPdf; using System.Diagnostics; using System.IO; // Generate a report with IronPDF var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.MarginTop = 50; renderer.RenderingOptions.MarginBottom = 50; var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page"); // Save to temp directory for immediate viewing string tempPath = Path.Combine(Path.GetTempPath(), $"URL_{Guid.NewGuid()}.pdf"); pdf.SaveAs(tempPath); // IMPORTANT: Set UseShellExecute = true for .NET Core/5+ var startInfo = new ProcessStartInfo { FileName = tempPath, UseShellExecute = true // Required in .NET Core/5+ to open PDF in default viewer }; Process.Start(startInfo); using IronPdf; using System.Diagnostics; using System.IO; // Generate a report with IronPDF var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.MarginTop = 50; renderer.RenderingOptions.MarginBottom = 50; var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page"); // Save to temp directory for immediate viewing string tempPath = Path.Combine(Path.GetTempPath(), $"URL_{Guid.NewGuid()}.pdf"); pdf.SaveAs(tempPath); // IMPORTANT: Set UseShellExecute = true for .NET Core/5+ var startInfo = new ProcessStartInfo { FileName = tempPath, UseShellExecute = true // Required in .NET Core/5+ to open PDF in default viewer }; Process.Start(startInfo); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel UseShellExecute 屬性決定是否使用操作系統的外殼來啟動進程。 當設置為 true 時,Windows 會使用文件關聯註冊表來確定應該用哪個預設 PDF 閱讀器來打開文件。若在現代 .NET 版本中不設置此選項,會遇到一個錯誤,提示文件無法打開。 使用帶有唯一文件名的臨時目錄(通過 Guid.NewGuid())可避免在生成多個 PDF 時發生文件衝突。 有關 將 URL 渲染為 PDF 的更多詳細信息,請參閱 IronPDF 的文檔。 輸出 如何正確處理文件路徑? 包含空格和特殊字符的文件路徑需要正確處理。 這裡有一個包括錯誤檢查的強大方法: using IronPdf; using System.Diagnostics; using System.IO; // Generate PDF from HTML file var renderer = new ChromePdfRenderer(); var htmlContent = File.ReadAllText("template.html"); var pdf = renderer.RenderHtmlAsPdf(htmlContent); // Create output directory if it doesn't exist string outputDir = @"C:\PDF Reports\Monthly"; Directory.CreateDirectory(outputDir); // Build file path with timestamp string fileName = $"Report_{DateTime.Now:yyyyMMdd_HHmmss}.pdf"; string fullPath = Path.Combine(outputDir, fileName); // Save the PDF pdf.SaveAs(fullPath); // Verify file exists before opening in default PDF viewer if (File.Exists(fullPath)) { Process.Start(new ProcessStartInfo { FileName = fullPath, UseShellExecute = true }); } else { Console.WriteLine($"Error: PDF file not found at {fullPath}"); } using IronPdf; using System.Diagnostics; using System.IO; // Generate PDF from HTML file var renderer = new ChromePdfRenderer(); var htmlContent = File.ReadAllText("template.html"); var pdf = renderer.RenderHtmlAsPdf(htmlContent); // Create output directory if it doesn't exist string outputDir = @"C:\PDF Reports\Monthly"; Directory.CreateDirectory(outputDir); // Build file path with timestamp string fileName = $"Report_{DateTime.Now:yyyyMMdd_HHmmss}.pdf"; string fullPath = Path.Combine(outputDir, fileName); // Save the PDF pdf.SaveAs(fullPath); // Verify file exists before opening in default PDF viewer if (File.Exists(fullPath)) { Process.Start(new ProcessStartInfo { FileName = fullPath, UseShellExecute = true }); } else { Console.WriteLine($"Error: PDF file not found at {fullPath}"); } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 此代碼展示了幾個最佳實踐:使用 Path.Combine 構建文件路徑以正確處理任何操作系統需求,必要時使用 Directory.CreateDirectory 創建目錄,並在嘗試在預設檢視器中打開 PDF 之前驗證文件是否存在。 文件名中的時間戳確保了唯一性,並提供了一個清晰的記錄,顯示每個 PDF 生成的時間。 若要了解更高級的 PDF 操作選項,請探索 IronPDF 的編輯功能。 生成的 PDF 的打開最佳實踐是什麼? 對於生產應用程序,考慮實施一個更完整的工作流程,正確處理 PDF 的生命周期: using IronPdf; using IronPdf.Rendering; using System.Diagnostics; using System.IO; public static void GenerateAndDisplayPdf(string htmlContent, string documentName) { try { // Configure IronPDF renderer with production settings var renderer = new ChromePdfRenderer { RenderingOptions = new ChromePdfRenderOptions { PaperSize =PdfPaperSize.A4, PrintHtmlBackgrounds = true, CreatePdfFormsFromHtml = true } }; // Generate the PDF var pdf = renderer.RenderHtmlAsPdf(htmlContent); // Use user's Documents folder for better accessibility string documentsPath = Environment.GetFolderPath( Environment.SpecialFolder.MyDocuments); string pdfFolder = Path.Combine(documentsPath, "Generated PDFs"); Directory.CreateDirectory(pdfFolder); string outputPath = Path.Combine(pdfFolder, $"{documentName}.pdf"); pdf.SaveAs(outputPath); // Open PDF in default viewer and don't wait for it to close var process = Process.Start(new ProcessStartInfo { FileName = outputPath, UseShellExecute = true // Essential for opening PDF in default application }); Console.WriteLine($"PDF opened: {outputPath}"); } catch (Exception ex) { Console.WriteLine($"Error generating or opening PDF: {ex.Message}"); } } using IronPdf; using IronPdf.Rendering; using System.Diagnostics; using System.IO; public static void GenerateAndDisplayPdf(string htmlContent, string documentName) { try { // Configure IronPDF renderer with production settings var renderer = new ChromePdfRenderer { RenderingOptions = new ChromePdfRenderOptions { PaperSize =PdfPaperSize.A4, PrintHtmlBackgrounds = true, CreatePdfFormsFromHtml = true } }; // Generate the PDF var pdf = renderer.RenderHtmlAsPdf(htmlContent); // Use user's Documents folder for better accessibility string documentsPath = Environment.GetFolderPath( Environment.SpecialFolder.MyDocuments); string pdfFolder = Path.Combine(documentsPath, "Generated PDFs"); Directory.CreateDirectory(pdfFolder); string outputPath = Path.Combine(pdfFolder, $"{documentName}.pdf"); pdf.SaveAs(outputPath); // Open PDF in default viewer and don't wait for it to close var process = Process.Start(new ProcessStartInfo { FileName = outputPath, UseShellExecute = true // Essential for opening PDF in default application }); Console.WriteLine($"PDF opened: {outputPath}"); } catch (Exception ex) { Console.WriteLine($"Error generating or opening PDF: {ex.Message}"); } } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 此示例包括錯誤處理,並將 PDF 保存到用戶的文檔文件夾中,這在真實世界的應用中效果更好。它還配置了適當的 渲染選項 為您的 PDF 文件提供真正定制的感覺。 該方法不會等待 PDF 檢視器關閉,使您的應用程式在用戶查看文件時能夠繼續運行,根據 Microsoft 关于 Process.Start 的文档,这种方法确保了正确的资源管理。 結論 從 .NET 程式中,在默認應用中打開 PDF 文件非常簡單,使用 IronPDF 和 System.Diagnostics.Process。 通過設置正確的參數(UseShellExecute = true)並提供有效路徑,您的 .NET 項目將能夠成功地在默認 PDF 閱讀器中啟動 PDF。 無論您在 Visual Studio 中工作,還是構建 Windows 桌面 exe,或是在 Web 應用程式中試驗,這種方法始終安全可靠。 IronPDF 處理 PDF 的創建,Windows 通過安裝在計算機上的預設應用程序處理預覽和顯示。 請注意注意:如果未安裝任何 PDF 檢視器,Windows 可能會彈出一個對話框,要求您選擇或下載一個。 本指南提供了一個綜合解決方案和代碼,用於在您的 .NET 應用程式中管理 PDF 文件,涵蓋從創建到顯示,無需超出 IronPDF 和標準 Microsoft .NET 運行時之外的額外軟件或依賴項。 準備好在您的應用中實施 PDF 生成和顯示了嗎? 從免費試用開始,以找到適合您需求的完美選擇。 常見問題解答 如何使用 C# 在預設檢視器中開啟 PDF 檔案? 在 C# 中,您可以使用 IronPDF 產生 PDF,然後使用 System.Diagnostics.Process.Start 在使用者的預設 PDF 應用程式中開啟它,從而在預設檢視器中開啟 PDF。 IronPDF是什麼? IronPDF 是一個 .NET 程式庫,可讓開發人員在應用程式中以程式設計方式建立、編輯和操作 PDF 檔案。 使用 IronPDF 的系統需求是什麼? IronPDF 與任何 .NET 應用程式相容,並可在 Windows、macOS 和 Linux 平台上運作。它需要安裝 .NET Framework 或 .NET Core/5+。 IronPDF能否預設使用Adobe Acrobat開啟PDF檔案? 是的,IronPDF 可以產生在使用者設定的預設 PDF 檢視器中開啟的 PDF 文件,該檢視器可以是 Adobe Acrobat、Microsoft Edge 或任何其他 PDF 檢視應用程式。 System.Diagnostics.Process.Start 如何與 IronPDF 協同工作? `System.Diagnostics.Process.Start` 用於在預設檢視器中開啟產生的 PDF 檔案。 IronPDF 建立文件後,此方法會啟動與 PDF 文件關聯的預設應用程式來顯示該文件。 是否可以使用 IronPDF 編輯 PDF 檔案? 是的,IronPDF 允許您在儲存或顯示現有 PDF 檔案之前,透過新增文字、圖像、註解等來編輯它們。 IronPDF 支援哪些程式語言? IronPDF 主要與 C# 一起使用,但也可以整合到使用 VB.NET 和其他 .NET 支援的語言的專案中。 IronPDF能否在產生PDF檔案後自動顯示? 是的,使用 IronPDF 產生 PDF 後,您可以使用 System.Diagnostics.Process.Start 自動顯示該 PDF,使其立即在使用者的預設檢視器中開啟。 是否有使用 IronPDF 的程式碼範例? IronPDF 文件提供了各種用於生成和操作 PDF 的程式碼範例,包括如何使用 C# 在預設檢視器中開啟它們。 IronPDF有哪些常見應用情境? IronPDF 的常見用途包括產生報告、發票和其他文檔,將 HTML 轉換為 PDF,以及在 .NET 應用程式中自動執行 PDF 顯示過程。 IronPDF 是否相容於 .NET 10?相容 .NET 10 能帶來哪些好處? 是的。 IronPDF 完全相容於 .NET 10,包括其執行時間和語言增強功能。將 IronPDF 與 .NET 10 結合使用,可讓您的應用程式受益於效能提升,例如減少堆疊分配、加快 PDF 產生速度以及與現代 API 和平台更順暢的整合。 Curtis Chau 立即與工程團隊聊天 技術作家 Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。 相關文章 發表日期 11月 13, 2025 如何在 C# 中合併兩個 PDF 位元組數組 使用 IronPDF 在 C# 中合併兩個 PDF 位元組數組。學習如何透過簡單的程式碼範例,將來自位元組數組、記憶體流和資料庫的多個 PDF 文件合併在一起。 閱讀更多 發表日期 11月 13, 2025 如何在 ASP.NET MVC 中創建 PDF 檢視器 為 ASP.NET MVC 應用程式構建一個強大的 PDF 檢視器。顯示 PDF 文件,將視圖轉換為 PDF,使用 IronPDF 添加互動功能。 閱讀更多 發表日期 11月 13, 2025 如何建立 .NET HTML 轉 PDF 轉換器 學習如何在.NET中使用IronPDF將HTML轉換為PDF。 閱讀更多 如何使用IronPDF創建Azure PDF生成器IronPDF實時編碼回顧:真實...
發表日期 11月 13, 2025 如何在 C# 中合併兩個 PDF 位元組數組 使用 IronPDF 在 C# 中合併兩個 PDF 位元組數組。學習如何透過簡單的程式碼範例,將來自位元組數組、記憶體流和資料庫的多個 PDF 文件合併在一起。 閱讀更多
發表日期 11月 13, 2025 如何在 ASP.NET MVC 中創建 PDF 檢視器 為 ASP.NET MVC 應用程式構建一個強大的 PDF 檢視器。顯示 PDF 文件,將視圖轉換為 PDF,使用 IronPDF 添加互動功能。 閱讀更多