使用IRONPDF 如何在C#開發人員中使用ChatGPT與IronPDF Curtis Chau 更新日期:6月 22, 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 1.0 什麼是 ChatGPT? ChatGPT 是 OpenAI 創建的人工智慧(AI) 聊天機器人。 “ChatGPT”這個詞結合了“Chat”(聊天),它暗示了系統的聊天機器人功能,以及“GPT”,代表生成預訓練轉換器,是一種大型語言模型(LLM)。 OpenAI 的基礎 GPT 模型,即 GPT-3.5 和 GPT-4,是 ChatGPT 的基礎,它已被微調(一種轉移學習的方法),用於對話應用,利用監督學習和強化學習技術的組合,包括機器學習、自然語言處理和人工智慧。 ChatGPT 可以理解和生成類人文本。 本文將展示如何開發一個 MAUI 應用程序,該應用程序利用 OpenAI ChatGPT API 接收信息,根據用戶查詢提供結果,然後使用 IronPDF 將這些結果導出為 PDF 文件以供日後使用。 1.1 設置 OpenAI 帳戶 要註冊 OpenAI 帳戶,請執行以下操作: 訪問 OpenAI 官方網站。 在網站首頁,找到並點擊“註冊”按鈕。 這將引導您進入帳戶創建表單。 填寫註冊表單的必要欄位。 點擊發送到您註冊電子郵件帳戶的驗證鏈接以確認您的電子郵件地址。 如果您的註冊成功,則應能夠通過輸入註冊時提供的登錄信息來訪問您的 OpenAI 帳戶。 1.2 獲取 OpenAI API 密鑰 要訪問 OpenAI,請登錄網站並使用您的帳戶信息登錄。 訪問 OpenAI 網站 導航到 OpenAI 平台的 API 部分。 然後帳戶設置 > 查看 API 密鑰,您可以在此找到。 現在您可以創建一個新的秘密 API 密鑰。 創建 API 密鑰 2.0 開始使用 .NET MAUI 應用程序 您需要安裝 Visual Studio 2022 和 .NET 7 框架,然後才能創建用 C# 編寫的 .NET MAUI 應用程序。 然後,按照下一步創建和編寫 .NET MAUI 應用程序。 2.1 打開 Visual Studio 打開 Visual Studio,然後從菜單中選擇“創建新項目”,並在搜索欄中輸入“.NET MAUI”。 2.2 選擇 .NET MAUI 應用程序 在 Visual Studio 中,從搜索結果中選擇 .NET MAUI 應用程序模板。 選擇後,給它一個合適的名稱並選擇項目的位置。 配置完成後點擊“下一步”。 在 Visual Studio 中創建新的 .NET MAUI 應用程序 2.3 選擇框架 選擇必要的框架; 例如,建議選擇最新的 .NET 框架。 選擇框架版本後,按 Visual Studio 中的 創建 按鈕。 配置新項目 在 Visual Studio 2022 中,將創建一個新的 .NET MAUI 項目。 .NET MAUI 默認會開發一個簡單的計數器應用程式。 .NET 框架選擇 通過修改 .NET MAUI 應用程序,可以整合 ChatGPT OpenAI 並使用 IronPDF C# PDF 庫在此平台變體上將結果導出為 PDF 文件。 2.4 安裝 OpenAI 包 在 NuGet 包管理器控制台中輸入下一個命令。 Install-Package OpenAI 此命令將安裝 OpenAI 包,該包提供了與 C# 使用的 ChatGPT 互動所需的 API 訪問權限。 2.5 安裝 IronPDF 輸入以下命令以安裝 IronPDF 包: Install-Package IronPdf 以上命令會將 IronPDF 安裝到 MAUI 項目中。 IronPDF 用於將 HTML 內容渲染成 PDF 文件,並且是從應用程序導出數據到 PDF 文件的重要組成部分。 3.0 什麼是 IronPDF? 開發者可以借助於 IronPDF—a robust PDF SDK(強大的 PDF SDK)基礎,快速創建、讀取和編輯 PDF 文檔。 IronPDF 庫使用 Chrome 引擎將 HTML 轉換為 PDF。 該庫支持的多數網絡組件包括 MAUI、Xamarin、Blazor、Unity、HoloLens 應用程式、Windows Forms、HTML、ASPX、Razor HTML、.NET Core、ASP.NET 和 WPF。 Microsoft.NET 和 .NET Core 程式編寫可以在傳統 Windows 應用程式和 ASP.NET Web 應用中使用。 使用 HTML5、JavaScript、CSS 和圖片,IronPDF 允許您創建具有標題和頁腳的吸引人的 PDF 文件。 API 庫包括強大的 HTML-to-PDF 轉換器,可以處理 PDF 以及獨立的 PDF 轉換工具和引擎,不依賴於任何外部來源。 使用者可以使用 IronPDF 生成 PDF,包括圖像文件、HTML、HTML5、ASPX 和 Razor/MVC View。 The library offers programs for text searching, extracting text and images from PDF pages, and converting PDF pages to images. 还有一個用於互動式表單完成與提交的程式。 該庫還提供將鏈接作為 PDF 出版物的基礎,以及用戶代理、代理、cookie、HTTP 標頭和表單變量,用於認證後的 HTML 登錄表單。 IronPDF 接受用戶名和密碼以換取訪問受密碼保護的 PDF 文件。 要了解有關 IronPDF 的更多信息,請參考HTML-to-PDF 轉換教程頁面。 4.0 使用 IronPDF 導出 ChatGPT API 結果 在“MauiProgram.cs”文件中添加以下代碼: builder.Services.AddChatGpt(options => { options.UseOpenAI("API key here"); // Replace with your actual OpenAI API key options.DefaultModel = OpenAIChatGptModels.Gpt35Turbo; // Set the default model options.MessageLimit = 10; // Limit number of messages per session options.MessageExpiration = TimeSpan.FromMinutes(5); // Set message expiration time }); builder.Services.AddChatGpt(options => { options.UseOpenAI("API key here"); // Replace with your actual OpenAI API key options.DefaultModel = OpenAIChatGptModels.Gpt35Turbo; // Set the default model options.MessageLimit = 10; // Limit number of messages per session options.MessageExpiration = TimeSpan.FromMinutes(5); // Set message expiration time }); builder.Services.AddChatGpt(Sub(options) options.UseOpenAI("API key here") ' Replace with your actual OpenAI API key options.DefaultModel = OpenAIChatGptModels.Gpt35Turbo ' Set the default model options.MessageLimit = 10 ' Limit number of messages per session options.MessageExpiration = TimeSpan.FromMinutes(5) ' Set message expiration time End Sub) $vbLabelText $csharpLabel 此代碼片段為 ChatGPT API 註冊了一個服務,然後應用程序內的其他類別或頁面可以使用它。 在應用程序的主頁上添加以下代碼,用於頁面加載方法。 這有助於獲得 ChatGPT 服務實例,並將其存儲到本地對象中。 _chatGptClient = Handler.MauiContext.Services.GetService<IChatGptClient>(); _chatGptClient = Handler.MauiContext.Services.GetService<IChatGptClient>(); _chatGptClient = Handler.MauiContext.Services.GetService(Of IChatGptClient)() $vbLabelText $csharpLabel 這段代碼從服務提供者檢索 ChatGPT 客戶端實例,允許主頁與ChatGPT API 進行互動。 接下來,像下面的 XAML 代碼一樣創建一個用戶介面: <?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="ChatGPT_MauiApp.MainPage" BackgroundColor="black"> <StackLayout> <StackLayout Orientation="Horizontal" Spacing="25" Padding="30,0"> <ScrollView WidthRequest="700" HeightRequest="200" x:Name="scrollView"> <TableView Intent="Data" WidthRequest="700" x:Name="Table_View" BackgroundColor="DarkSlateGrey"> <TableRoot> <!-- TableSection can be populated with dynamic data --> </TableRoot> </TableView> </ScrollView> </StackLayout> <StackLayout Padding="30,0"> <Editor x:Name="Userquest" Text="" HorizontalOptions="Start" FontSize="12" Placeholder=" Enter your Queries" HeightRequest="25" WidthRequest="700" /> </StackLayout> <StackLayout Padding="30,10,10,0"> <FlexLayout> <Button x:Name="Sendquery" Text="Send Query" SemanticProperties.Hint="Click to send query to BOT" Clicked="SendqueryClicked" HorizontalOptions="Center" BackgroundColor="Green" TextColor="WhiteSmoke" /> <Button x:Name="Export" Text="Export" SemanticProperties.Hint="Click to export data" Clicked="OnExportClicked" HorizontalOptions="Center" BackgroundColor="DodgerBlue" TextColor="WhiteSmoke" /> </FlexLayout> </StackLayout> </StackLayout> </ContentPage> <?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="ChatGPT_MauiApp.MainPage" BackgroundColor="black"> <StackLayout> <StackLayout Orientation="Horizontal" Spacing="25" Padding="30,0"> <ScrollView WidthRequest="700" HeightRequest="200" x:Name="scrollView"> <TableView Intent="Data" WidthRequest="700" x:Name="Table_View" BackgroundColor="DarkSlateGrey"> <TableRoot> <!-- TableSection can be populated with dynamic data --> </TableRoot> </TableView> </ScrollView> </StackLayout> <StackLayout Padding="30,0"> <Editor x:Name="Userquest" Text="" HorizontalOptions="Start" FontSize="12" Placeholder=" Enter your Queries" HeightRequest="25" WidthRequest="700" /> </StackLayout> <StackLayout Padding="30,10,10,0"> <FlexLayout> <Button x:Name="Sendquery" Text="Send Query" SemanticProperties.Hint="Click to send query to BOT" Clicked="SendqueryClicked" HorizontalOptions="Center" BackgroundColor="Green" TextColor="WhiteSmoke" /> <Button x:Name="Export" Text="Export" SemanticProperties.Hint="Click to export data" Clicked="OnExportClicked" HorizontalOptions="Center" BackgroundColor="DodgerBlue" TextColor="WhiteSmoke" /> </FlexLayout> </StackLayout> </StackLayout> </ContentPage> XML 上述ContentPage定義了應用程序的 UI 佈局。 用戶可以輸入查詢,通過“發送查詢”按鈕與ChatGPT API 進行互動,並使用“導出”按鈕將結果導出為 PDF。 結果顯示在TableView中。 接下來是用於處理按鈕點擊和導出數據的後端邏輯: private void OnExportClicked(object sender, EventArgs e) { StringBuilder db = new(); foreach (var tableSection in Table_View.Root.ToList()) { foreach (var cell in tableSection) { if (cell is TextCell textCell) { db.Append("<p style='color:red;text-align:left;'>" + textCell.Text + "</p>"); db.Append("<p style='color:black;text-align:justify;'>" + textCell.Detail + "</p>"); } } } // Create and save the PDF var renderer = new IronPdf.ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(db.ToString()); pdf.SaveAs("F:\\Download\\Demo.pdf"); } private async void SendqueryClicked(object sender, EventArgs e) { if (!string.IsNullOrEmpty(Userquest.Text)) { var query = Userquest.Text; Userquest.Text = ""; var tableSection = AddQueryToTable(query); ChatGptResponse response = await _chatGptClient.AskAsync(_sessionGuid, query); var resp = response.GetMessage(); AddResponseToTable(tableSection, resp); } } private TableSection AddQueryToTable(string query) { var textCell = new TextCell { Text = query, TextColor = Colors.Red, DetailColor = Colors.WhiteSmoke, Detail = "" }; var tableSection = new TableSection { textCell }; Table_View.Root.Add(tableSection); return tableSection; } private void AddResponseToTable(TableSection section, string response) { if (section.FirstOrDefault() is TextCell textCell) { textCell.Detail = response; } } private void OnExportClicked(object sender, EventArgs e) { StringBuilder db = new(); foreach (var tableSection in Table_View.Root.ToList()) { foreach (var cell in tableSection) { if (cell is TextCell textCell) { db.Append("<p style='color:red;text-align:left;'>" + textCell.Text + "</p>"); db.Append("<p style='color:black;text-align:justify;'>" + textCell.Detail + "</p>"); } } } // Create and save the PDF var renderer = new IronPdf.ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(db.ToString()); pdf.SaveAs("F:\\Download\\Demo.pdf"); } private async void SendqueryClicked(object sender, EventArgs e) { if (!string.IsNullOrEmpty(Userquest.Text)) { var query = Userquest.Text; Userquest.Text = ""; var tableSection = AddQueryToTable(query); ChatGptResponse response = await _chatGptClient.AskAsync(_sessionGuid, query); var resp = response.GetMessage(); AddResponseToTable(tableSection, resp); } } private TableSection AddQueryToTable(string query) { var textCell = new TextCell { Text = query, TextColor = Colors.Red, DetailColor = Colors.WhiteSmoke, Detail = "" }; var tableSection = new TableSection { textCell }; Table_View.Root.Add(tableSection); return tableSection; } private void AddResponseToTable(TableSection section, string response) { if (section.FirstOrDefault() is TextCell textCell) { textCell.Detail = response; } } Private Sub OnExportClicked(ByVal sender As Object, ByVal e As EventArgs) Dim db As New StringBuilder() For Each tableSection In Table_View.Root.ToList() For Each cell In tableSection Dim tempVar As Boolean = TypeOf cell Is TextCell Dim textCell As TextCell = If(tempVar, CType(cell, TextCell), Nothing) If tempVar Then db.Append("<p style='color:red;text-align:left;'>" & textCell.Text & "</p>") db.Append("<p style='color:black;text-align:justify;'>" & textCell.Detail & "</p>") End If Next cell Next tableSection ' Create and save the PDF Dim renderer = New IronPdf.ChromePdfRenderer() Dim pdf = renderer.RenderHtmlAsPdf(db.ToString()) pdf.SaveAs("F:\Download\Demo.pdf") End Sub Private Async Sub SendqueryClicked(ByVal sender As Object, ByVal e As EventArgs) If Not String.IsNullOrEmpty(Userquest.Text) Then Dim query = Userquest.Text Userquest.Text = "" Dim tableSection = AddQueryToTable(query) Dim response As ChatGptResponse = Await _chatGptClient.AskAsync(_sessionGuid, query) Dim resp = response.GetMessage() AddResponseToTable(tableSection, resp) End If End Sub Private Function AddQueryToTable(ByVal query As String) As TableSection Dim textCell As New TextCell With { .Text = query, .TextColor = Colors.Red, .DetailColor = Colors.WhiteSmoke, .Detail = "" } Dim tableSection As New TableSection From {textCell} Table_View.Root.Add(tableSection) Return tableSection End Function Private Sub AddResponseToTable(ByVal section As TableSection, ByVal response As String) Dim tempVar As Boolean = TypeOf section.FirstOrDefault() Is TextCell Dim textCell As TextCell = If(tempVar, CType(section.FirstOrDefault(), TextCell), Nothing) If tempVar Then textCell.Detail = response End If End Sub $vbLabelText $csharpLabel 解釋: OnExportClicked方法使用 IronPDF 從 UI 收集的 HTML 內容創建 PDF。 生成的 PDF 被保存到指定的位置。 SendqueryClicked方法將用戶的查詢發送到 OpenAI API,使用_chatGptClient顯示返回的回應。 它還將查詢和響應添加到TableView中。 輔助方法AddQueryToTable和AddResponseToTable幫助使用用戶查詢和聊天機器人響應更新 UI 元件。 添加以上代碼後,嘗試運行您的方案。 輸入查詢並點擊“發送查詢”按鈕獲取結果。 這將把用戶的查詢發送到 ChatGPT API,檢索結果,並將消息顯示在屏幕上。 在應用程序中添加文本查詢 點擊“導出”按鈕將結果導出到 PDF。 導出的 PDF 文件 現在,我們可以使用 ChatGPT 創建一個聊天機器人,並在 MAUI App 上使用 IronPDF 將該聊天導出。利用上述概念,可以從 ChatGPT API 中包含圖片、音頻和視頻,以獲得更準確的結果。 5.0 結論 本文的目標是開發一個 MAUI 應用程序,利用 OpenAI ChatGPT API 接收信息,根據用戶查詢提供結果,並將這些結果導出為 PDF 文件。為了改進建議的質量,請隨意通過改變問題進行探索。 要查看不同模型是否會提供更好的結果,您也可以嘗試修改 “MauiProgram.cs” 中 AddChatGpt 方法中的ChatGptModels 枚舉值。 ChatGPT API 是一個強大的 AI 程式,允許我們根據用戶查詢提供結果。 ChatGPT API 的成本是基於發送的請求數量計算的。 IronPDF 用於進行 API 請求並導出結果為 PDF 以供未來使用,避免重複查詢相同的 API 請求。 我們可以僅用幾行代碼就使用 IronPDF 創建 PDF。 此應用程序適合初學者,僅需要基礎知識。 沒有其他包以任何方式依賴於 IronPDF。 例如,這是個單包庫。 IronPDF 開發者可以選擇各種合適他們需求的許可證。 還有免費試用版本。 有關 IronPDF 完整的價格和許可證信息,請參閱IronPDF 許可證頁面。 常見問題解答 如何將 ChatGPT 整合到 .NET MAUI 應用程式中? 要將 ChatGPT 整合到 .NET MAUI 應用程式中,首先需要註冊一個 OpenAI 帳號並取得 API 金鑰。然後,透過 NuGet 將 OpenAI 套件安裝到專案中,並在應用程式中配置 API 以處理使用者查詢。 如何在MAUI應用程式中將API結果轉換為PDF? 在 MAUI 應用程式中,您可以使用 IronPDF 將 API 結果轉換為 PDF。從 ChatGPT API 取得回應後,使用 IronPDF 的方法將 HTML 內容渲染為 PDF。 設定基於 ChatGPT 的 MAUI 應用需要哪些步驟? 要設定一個由 ChatGPT 驅動的 MAUI 應用,請在 Visual Studio 中建立一個新的 .NET MAUI 項目,安裝 OpenAI 和 IronPDF 套件,在程式碼中配置 API 設置,並編寫邏輯來處理查詢並輸出到 PDF。 IronPDF 在建立 PDF 時能否處理 HTML、JavaScript 和 CSS 內容? 是的,IronPDF 在建立 PDF 時可以處理 HTML、JavaScript 和 CSS 內容。它使用 Chrome 渲染引擎將 HTML 內容轉換為 PDF 文件。 我的應用程式中是否可以自訂 ChatGPT API 設定? 是的,您可以透過在 MauiProgram.cs 檔案中調整模型類型、訊息限制和過期時間等參數,在您的應用程式中自訂 ChatGPT API 設定。 在 MAUI 應用程式中使用 IronPDF 有哪些好處? IronPDF 提供了一個強大的 SDK,用於建立、讀取和編輯 PDF 文件。它支援將 HTML 內容轉換為 PDF,支援文字擷取,並提供各種功能來增強 MAUI 應用程式中的 PDF 處理能力。 IronPDF 有免費試用版嗎? 是的,IronPDF 提供免費試用,讓開發人員在決定購買授權方案之前探索其功能和功能。 如何在MAUI中安裝ChatGPT PDF專案所需的軟體包? 使用 Visual Studio 中的 NuGet 套件管理器控制台安裝 OpenAI 和 IronPDF 套件。執行Install-Package OpenAI和Install-Package IronPDF ,將它們新增至您的專案。 IronPDF在處理PDF文件中扮演什麼角色? IronPDF 用於建立、編輯和轉換 PDF 文件。它允許開發人員將網頁內容轉換為 PDF、執行文字搜尋和提取圖像,使其成為需要 PDF 功能的應用程式的理想選擇。 IronPDF 是否完全相容於 .NET 10? 是的,IronPDF 與 .NET 10 完全相容。它支援所有主要的 .NET 版本——包括 .NET 10、9、8、7、6、Core 和 .NET Framework——並且設計為可在 .NET 10 專案中開箱即用,無需特殊配置。 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在C#中使用Fluent Validation如何在.NET中創建PDF簽名
發表日期 11月 13, 2025 如何在 C# 中合併兩個 PDF 位元組數組 使用 IronPDF 在 C# 中合併兩個 PDF 位元組數組。學習如何透過簡單的程式碼範例,將來自位元組數組、記憶體流和資料庫的多個 PDF 文件合併在一起。 閱讀更多
發表日期 11月 13, 2025 如何在 ASP.NET MVC 中創建 PDF 檢視器 為 ASP.NET MVC 應用程式構建一個強大的 PDF 檢視器。顯示 PDF 文件,將視圖轉換為 PDF,使用 IronPDF 添加互動功能。 閱讀更多