PDF工具 如何在Node.js中使用Puppeteer將HTML轉PDF Curtis Chau 更新:2026年1月18日 下載 IronPDF NuGet 下載 DLL 下載 Windows Installer 開始免費試用 LLM副本 LLM副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 在當今的數位世界中,能夠將網頁或 HTML 文件轉換為 PDF 文件至關重要。 這對於產生報告、建立發票或以更易於理解的方式共享資訊非常有用。 在這篇文章中,我們將探討如何使用Node.js和 Puppeteer(Google開發的開源程式庫)將 HTML 頁面轉換為 PDF。 木偶師入門 Puppeteer 是一個強大的Node.js庫,它允許開發人員控制無頭瀏覽器(主要是 Google Chrome 或 Chromium),並執行各種操作,例如網頁抓取、螢幕截圖和生成 PDF。 Puppeteer 提供了豐富的 API 來與瀏覽器交互,使其成為將 HTML 轉換為 PDF 的絕佳選擇。 為什麼選擇木偶師? *易用性:* Puppeteer 提供了一個簡單易用的 API,它抽象化了使用無頭瀏覽器的複雜性。 功能強大:** Puppeteer 提供了強大的功能,可用於操作網頁和與瀏覽器元素互動。 *可擴展性:借助 Puppeteer,您可以透過並行運行多個瀏覽器實例輕鬆擴展 PDF 生成過程。 設定你的 Node.js 項目 開始之前,您需要建立一個新的Node.js專案。 請依照以下步驟開始: 如果您還沒有安裝 Node.js,請安裝它(您可以從Node.js 網站下載)。 為您的專案建立一個新資料夾,並在 Visual Studio Code 或任何特定的程式碼編輯器中開啟它。 執行 npm init 為您的專案建立一個新的 package.json 檔案。 依照提示填寫所需資訊。 透過運行 npm install puppeteer 安裝 Puppeteer。 現在我們的專案已經搭建完畢,讓我們開始深入程式碼。 載入 HTML 模板並轉換為 PDF 文件 若要使用 Puppeteer 將 HTML 範本轉換為 PDF 文件,請依照下列步驟操作: 在資料夾中建立一個名為"HTML To PDF.js"的檔案。 導入 Puppeteer 和 fs const puppeteer = require('puppeteer'); const fs = require('fs'); 程式碼首先導入兩個重要的函式庫:puppeteer,一個用於控制 Chrome 和 Chromium 等無頭瀏覽器的多功能工具;以及 fs,一個用於處理檔案系統操作的內建 Node.js 模組。 Puppeteer 可讓您自動執行各種基於 Web 的任務,包括渲染 HTML、擷取螢幕截圖和產生 PDF 檔案。 定義 exportWebsiteAsPdf 函數 async function exportWebsiteAsPdf(html, outputPath) { // Create a browser instance const browser = await puppeteer.launch({ headless: true // Launches the browser in headless mode }); // Create a new page const page = await browser.newPage(); // Set the HTML content for the page, waiting for DOM content to load await page.setContent(html, { waitUntil: 'domcontentloaded' }); // To reflect CSS used for screens instead of print await page.emulateMediaType('screen'); // Download the PDF const PDF = await page.pdf({ path: outputPath, margin: { top: '100px', right: '50px', bottom: '100px', left: '50px' }, printBackground: true, format: 'A4', }); // Close the browser instance await browser.close(); return PDF; } exportWebsiteAsPdf 函數是我們程式碼片段的核心。 此非同步函數接受一個字串和一個字串作為輸入參數,並傳回一個 PDF 檔案。此函數執行以下步驟: 使用 Puppeteer 啟動一個新的無頭瀏覽器實例。 建立一個新的瀏覽器頁面。 將提供的 html 字串設定為頁面內容,等待 DOM 內容載入。 模擬"螢幕"媒體類型,套用螢幕使用的 CSS 樣式,而不是列印專用樣式。 根據載入的 HTML 內容產生 PDF 文件,指定邊距、背景列印和格式(A4)。 關閉瀏覽器實例。 返回已建立的 PDF 檔案。 使用 exportWebsiteAsPdf 函數 // Usage example // Get HTML content from HTML file const html = fs.readFileSync('test.html', 'utf-8'); // Convert the HTML content into a PDF and save it to the specified path exportWebsiteAsPdf(html, 'result.pdf').then(() => { console.log('PDF created successfully.'); }).catch((error) => { console.error('Error creating PDF:', error); }); 程式碼的最後一部分說明如何使用 exportWebsiteAsPdf 函數。 我們執行以下步驟: 使用 fs 模組的 readFileSync 方法從 HTML 檔案讀取 HTML 內容。 使用載入的 html 字串和所需的 outputPath 呼叫 exportWebsiteAsPdf 函數。 使用 .then 程式碼區塊處理成功建立 PDF,並將成功訊息記錄到控制台。 使用 .catch 區塊來管理 HTML 到 PDF 轉換過程中發生的任何錯誤,並將錯誤訊息記錄到控制台。 這段程式碼片段提供了一個全面的範例,說明如何使用 Node.js 和 Puppeteer 將 HTML 模板轉換為 PDF 檔案。 透過實施此解決方案,您可以有效地產生高品質的 PDF 文件,滿足各種應用程式和使用者的需求。 將 URL 轉換為 PDF 文件 除了轉換 HTML 模板外,Puppeteer 還允許您直接將 URL 轉換為 PDF 檔案。 導入 Puppeteer const puppeteer = require('puppeteer'); 程式碼首先導入 Puppeteer 庫,這是一個強大的工具,用於控制 Chrome 和 Chromium 等無頭瀏覽器。 Puppeteer 可以讓你自動執行各種基於 Web 的任務,包括渲染 HTML 程式碼、擷取螢幕截圖,以及在我們的範例中,產生 PDF 檔案。 定義 exportWebsiteAsPdf 函數 async function exportWebsiteAsPdf(websiteUrl, outputPath) { // Create a browser instance const browser = await puppeteer.launch({ headless: true // Launches the browser in headless mode }); // Create a new page const page = await browser.newPage(); // Open the URL in the current page await page.goto(websiteUrl, { waitUntil: 'networkidle0' }); // To reflect CSS used for screens instead of print await page.emulateMediaType('screen'); // Download the PDF const PDF = await page.pdf({ path: outputPath, margin: { top: '100px', right: '50px', bottom: '100px', left: '50px' }, printBackground: true, format: 'A4', }); // Close the browser instance await browser.close(); return PDF; } exportWebsiteAsPdf 函數是我們程式碼片段的核心。 此非同步函數接受一個 websiteUrl 和一個 outputPath 作為輸入參數,並傳回一個 PDF 檔案。此函數執行以下步驟: 使用 Puppeteer 啟動一個新的無頭瀏覽器實例。 建立一個新的瀏覽器頁面。 導覽至提供的 websiteUrl,並使用設定為 networkidle0 的 waitUntil 選項等待網路空閒。 模擬"螢幕"媒體類型,以確保應用程式螢幕使用的 CSS 而不是列印特定的樣式。 將載入的網頁轉換為具有指定邊距、背景列印和格式(A4)的 PDF 檔案。 關閉瀏覽器實例。 返回產生的 PDF 檔案。 使用 exportWebsiteAsPdf 函數 // Usage example // Convert the URL content into a PDF and save it to the specified path exportWebsiteAsPdf('https://ironpdf.com/', 'result.pdf').then(() => { console.log('PDF created successfully.'); }).catch((error) => { console.error('Error creating PDF:', error); }); 程式碼的最後一部分示範如何使用 exportWebsiteAsPdf 函數。 我們執行以下步驟: 使用所需的 exportWebsiteAsPdf 和 outputPath 呼叫 exportWebsiteAsPdf 函數。 使用 then 區塊來處理成功建立 PDF。 在這個程式碼區塊中,我們將成功訊息記錄到控制台。 使用 catch 區塊來處理網站轉換為 PDF 過程中發生的任何錯誤。 如果發生錯誤,我們會將錯誤訊息記錄到控制台。 透過將此程式碼片段整合到您的專案中,您可以使用 Node.js 和 Puppeteer 輕鬆地將 URL 轉換為高品質的 PDF 檔案。 適用於 C# 開發人員的最佳 HTML 轉 PDF 庫 探索IronPDF,這是一個流行的.NET庫,用於生成、編輯和提取 PDF 文件的內容。 它提供了一種簡單且高效的解決方案,可以從 HTML、文字、圖像和現有 PDF 文件建立 PDF。 IronPDF支援.NET Core、 .NET Framework和.NET 5.0+ 項目,使其成為各種應用程式的多功能選擇。 IronPDF的主要特點 使用IronPDF將 HTML 轉換為 PDF : IronPDF可讓您將 HTML 內容(包括 CSS)轉換為 PDF 檔案。 此功能可讓您從網頁或 HTML 範本建立像素級完美的 PDF 文件。 URL 渲染: IronPDF可以使用 URL 直接從伺服器取得網頁並將其轉換為 PDF 文件,從而輕鬆存檔網頁內容或從動態網頁產生報告。 文字、圖像和 PDF 合併: IronPDF可讓您將文字、圖像和現有 PDF 文件合併到一個 PDF 文件中。 此功能對於建立包含多個內容來源的複雜文件尤其有用。 PDF 操作: IronPDF提供編輯現有 PDF 文件的工具,例如新增或刪除頁面、修改元數據,甚至從 PDF 文件中提取文字和圖像。 結論 總之,產生和處理 PDF 文件是許多應用中的常見需求,擁有合適的工具至關重要。 本文提供的解決方案,例如使用 Puppeteer 和 Node.js 或IronPDF和.NET,為將 HTML 內容和 URL 轉換為專業、高品質的 PDF 文件提供了強大且高效的方法。 IronPDF尤其以其豐富的功能集脫穎而出,成為.NET開發人員的首選。 IronPDF提供免費試用版,讓您可以探索其各項功能。 用戶還可以從Iron Suite軟體包中受益,該軟體包包含五個專業的.NET庫,包括IronXL 、 IronPDF 、 IronOCR等。 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++中將HTML轉PDF開源PDF編輯器(更新列表)
更新2025年6月22日 發現2025年最佳PDF刪除軟件 探索2025年最佳PDF刪除解決方案,包括Adobe Acrobat Pro DC、Nitro PDF Pro、Foxit PDF Editor和PDF-XChange Editor。了解IronPDF如何自動化.NET中的刪除以增強安全性和合規性。 閱讀更多