PDF工具 如何在C++中將HTML轉PDF Curtis Chau 更新:2025年7月28日 下載 IronPDF NuGet 下載 DLL 下載 Windows Installer 開始免費試用 LLM副本 LLM副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 在許多應用程式中,將 HTML 檔案或內容轉換為 PDF 頁面是一項非常有價值的功能。 在 C++ 中,從頭開始建立一個用於產生 HTML 轉 PDF 格式檔案的應用程式可能非常繁瑣。 在本文中,我們將探討如何使用 wkhtmltopdf 函式庫在 C++ 中將 HTML 轉換為 PDF。 WKHTMLTOPDF庫 wkhtmltopdf是一個開源命令列工具,可將 HTML 純文字頁面無縫轉換為高品質的 PDF 文件。 利用 C++ 程式中的對應功能,我們可以輕鬆地將 HTML 字串內容轉換為 PDF 格式。 讓我們深入了解使用 wkhtmltopdf 庫在 C++ 中將 HTML 頁面轉換為 PDF 的逐步過程。 先決條件 若要在 C++ 中建立 HTML 到 PDF 檔案轉換器,請確保符合以下先決條件: 您的系統上已安裝 C++ 編譯器,例如 GCC 或 Clang。 已安裝wkhtmltopdf 庫。 您可以從wkhtmltopdf 官方網站下載最新版本,並按照您的作業系統說明進行安裝。 具備 C++ 程式設計基礎。 在 Code::Blocks 中建立一個 C++ HtmltoPdf 專案 若要在 Code::Blocks 中建立 C++ PDF 轉換項目,請依照下列步驟操作: 開啟 Code::Blocks IDE。 前往"檔案"選單,選擇"新建",然後選擇"專案"以開啟"新建專案"精靈。 在"新建專案"精靈中,選擇"控制台應用程式"。 選擇 C++ 語言。 設定項目標題和儲存位置。 點選"下一步"繼續。 選擇適當的 C++ 編譯器和建置目標,例如 Debug 或 Release。 點擊"完成"創建項目。 設定搜尋目錄 為了確保 Code::Blocks 能夠找到必要的頭文件,我們需要設定搜尋目錄: 點選選單列中的"項目"選單,然後選擇"建置選項"。 請務必選擇"調試"。 在"建置選項"對話方塊中,選擇"搜尋目錄"標籤。 在"編譯器"標籤下,按一下"新增"按鈕。 瀏覽至wkhtmltox頭檔所在的目錄(例如, C:\Program Files\wkhtmltopdf\include ),然後選擇它。 最後,按一下"確定"關閉對話框。 圖書館連結 要連結到wkhtmltox庫,請按照以下步驟操作: 再次點選選單列中的"項目"選單,然後選擇"建置選項"。 請務必選擇"調試"。 在"產生選項"對話方塊中,選擇"連結器設定"標籤。 在"連結庫"標籤下,按一下"新增"按鈕。 瀏覽至wkhtmltox庫檔案所在的目錄(例如, C:\Program Files\wkhtmltopdf\lib ),然後選擇對應的庫檔案。 點擊"開啟"將庫新增到您的專案中。 最後,按一下"確定"關閉對話方塊。 如何在 C++ 中輕鬆將 HTML 轉換為 PDF 步驟 1:包含用於轉換 HTML 檔案的程式庫 首先,請在您的 C++ 程式中包含必要的頭文件,以使用 wkhtmltopdf 庫的功能。 請在 main.cpp 原始碼檔案的開頭包含以下頭文件,如下例所示: #include <iostream> #include <fstream> #include <string> #include <wkhtmltox/pdf.h> #include <iostream> #include <fstream> #include <string> #include <wkhtmltox/pdf.h> C++ 步驟 2:初始化轉換器 要將 HTML 轉換為 PDF,我們需要初始化 wkhtmltopdf 轉換器。 程式碼如下: // Initialize the wkhtmltopdf library wkhtmltopdf_init(false); // Create global settings object wkhtmltopdf_global_settings* gs = wkhtmltopdf_create_global_settings(); // Create object settings object wkhtmltopdf_object_settings* os = wkhtmltopdf_create_object_settings(); // Create the PDF converter with global settings wkhtmltopdf_converter* converter = wkhtmltopdf_create_converter(gs); // Initialize the wkhtmltopdf library wkhtmltopdf_init(false); // Create global settings object wkhtmltopdf_global_settings* gs = wkhtmltopdf_create_global_settings(); // Create object settings object wkhtmltopdf_object_settings* os = wkhtmltopdf_create_object_settings(); // Create the PDF converter with global settings wkhtmltopdf_converter* converter = wkhtmltopdf_create_converter(gs); C++ 步驟 3:設定 HTML 內容 現在,讓我們提供需要轉換為 PDF 的 HTML 內容。 您可以載入 HTML 文件,也可以直接提供字串。 std::string htmlString = "<html><body><h1>Hello, World!</h1></body></html>"; // Add the HTML content to the converter wkhtmltopdf_add_object(converter, os, htmlString.c_str()); std::string htmlString = "<html><body><h1>Hello, World!</h1></body></html>"; // Add the HTML content to the converter wkhtmltopdf_add_object(converter, os, htmlString.c_str()); C++ 步驟 4:將 HTML 轉換為 PDF 轉換器和 HTML 內容準備好後,我們就可以開始將 HTML 轉換為 PDF 檔案了。請使用以下程式碼片段: // Perform the actual conversion if (!wkhtmltopdf_convert(converter)) { std::cerr << "Conversion failed!" << std::endl; } // Perform the actual conversion if (!wkhtmltopdf_convert(converter)) { std::cerr << "Conversion failed!" << std::endl; } C++ 步驟 5:將輸出獲取為記憶體緩衝區 使用 wkhtmltopdf_get_output 函數,我們可以將現有的 PDF 資料作為記憶體緩衝區流取得。 它也會傳回 PDF 的長度。 以下範例將執行此任務: // Retrieve the PDF data in memory buffer const unsigned char* pdfData; int pdfLength = wkhtmltopdf_get_output(converter, &pdfData); // Retrieve the PDF data in memory buffer const unsigned char* pdfData; int pdfLength = wkhtmltopdf_get_output(converter, &pdfData); C++ 步驟 6:儲存 PDF 文件 轉換完成後,我們需要將產生的 PDF 檔案儲存到磁碟。 指定要儲存 PDF 檔案的檔案路徑。 然後使用輸出文件流,以二進位模式開啟該文件,並將 pdfData 寫入其中。 最後,關閉文件: const char* outputPath = "file.pdf"; std::ofstream outputFile(outputPath, std::ios::binary); // Write the PDF data to the file outputFile.write(reinterpret_cast<const char*>(pdfData), pdfLength); outputFile.close(); const char* outputPath = "file.pdf"; std::ofstream outputFile(outputPath, std::ios::binary); // Write the PDF data to the file outputFile.write(reinterpret_cast<const char*>(pdfData), pdfLength); outputFile.close(); C++ 步驟 7:清理 將 HTML 轉換為 PDF 後,必須清理 wkhtmltopdf 指派的資源: // Clean up the converter and settings wkhtmltopdf_destroy_converter(converter); wkhtmltopdf_destroy_object_settings(os); wkhtmltopdf_destroy_global_settings(gs); // Deinitialize the wkhtmltopdf library wkhtmltopdf_deinit(); std::cout << "PDF saved successfully." << std::endl; // Clean up the converter and settings wkhtmltopdf_destroy_converter(converter); wkhtmltopdf_destroy_object_settings(os); wkhtmltopdf_destroy_global_settings(gs); // Deinitialize the wkhtmltopdf library wkhtmltopdf_deinit(); std::cout << "PDF saved successfully." << std::endl; C++ 步驟 8:執行程式碼並產生 PDF 文件 現在,建立專案並使用 F9 執行程式碼。輸出結果將產生並保存在專案資料夾中。 產生的PDF文件如下: HTML File to PDF File in C IronPDF IronPDF HTML 到 PDF 轉換庫是一個強大的.NET和.NET Core C# 庫,它允許開發人員輕鬆地從 HTML 內容產生 PDF 文件。 它提供了一個簡單直覺的 API,簡化了將 HTML 網頁轉換為 PDF 的過程,使其成為各種應用程式和用例的熱門選擇。 IronPDF的主要優勢之一是其多功能性。 它不僅支援轉換簡單的 HTML 文件,還支援轉換帶有 CSS 樣式、 JavaScript互動甚至動態內容的複雜網頁。 此外,您還可以開發不同的 PDF 轉換器,並快速存取其轉換方法。 以下是使用 C# 中的IronPDF將 HTML 字串轉換為 PDF 的程式碼範例: using IronPdf; // Instantiate Renderer var renderer = new ChromePdfRenderer(); // Create PDF content from an HTML string using C# var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>"); // Export to a file or Stream pdf.SaveAs("output.pdf"); using IronPdf; // Instantiate Renderer var renderer = new ChromePdfRenderer(); // Create PDF content from an HTML string using C# var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>"); // Export to a file or Stream pdf.SaveAs("output.pdf"); $vbLabelText $csharpLabel PDF 輸出結果: 有關如何將不同的 HTML 文件、網頁 URL 和圖像轉換為 PDF 的更多詳細信息,請訪問此HTML 轉 PDF 程式碼範例。 使用IronPDF,在.NET Framework語言中,從 HTML 內容產生 PDF 檔案變得非常簡單。 它直覺的 API 和豐富的功能集使其成為需要在 C# 專案中將HTML 轉換為 PDF 的開發人員的寶貴工具。 無論是產生報告、發票,或是任何其他需要精確的 HTML 轉 PDF 的文檔, IronPDF都是一個可靠且有效率的解決方案。 IronPDF可免費用於開發用途,但用於商業用途則需獲得許可。 它還提供IronPDF 全部功能的免費試用版,供商業用途測試其全部功能。 您可以從IronPDF下載該軟體。 Curtis Chau 立即與工程團隊聊天 技術作家 Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。 相關文章 更新2025年6月22日 發現2025年最佳PDF刪除軟件 探索2025年最佳PDF刪除解決方案,包括Adobe Acrobat Pro DC、Nitro PDF Pro、Foxit PDF Editor和PDF-XChange Editor。了解IronPDF如何自動化.NET中的刪除以增強安全性和合規性。 閱讀更多 更新2025年6月22日 iPhone上最佳PDF閱讀器(免費和付費工具比較) 在本文中,我們將探索一些適合iPhone的最佳PDF閱讀器,並總結為何IronPDF脫穎而出成為最佳選擇。 閱讀更多 更新2025年6月26日 Windows上最佳免費PDF編輯器(免費和付費工具比較) 本文探討2025年可用的頂級免費PDF編輯器,並總結出最強大和靈活的選擇:IronPDF。 閱讀更多 如何在C++中讀取PDF文件如何在Node.js中使用Puppeteer...
更新2025年6月22日 發現2025年最佳PDF刪除軟件 探索2025年最佳PDF刪除解決方案,包括Adobe Acrobat Pro DC、Nitro PDF Pro、Foxit PDF Editor和PDF-XChange Editor。了解IronPDF如何自動化.NET中的刪除以增強安全性和合規性。 閱讀更多