如何在Node.js中建立PDF檔案

This article was translated from English: Does it need improvement?
Translated
View the article in English

在Node.js中程式生成PDF檔案需要一個能夠準確處理HTML渲染、支援現代CSS並與Node的異步模式清晰整合的程式庫。 IronPDF 使用基於Chromium的渲染引擎將HTML內容轉換為與Chrome列印輸出匹配的PDF,支援完整的CSS、內聯JavaScript和開箱即用的響應式佈局。

本指南涵蓋了完整的工作流程:安裝、從HTML字串、HTML檔案和URLs生成PDF、配置輸出選項、以及應用企業功能如標題、頁腳、數位簽名和加密。

快速入門:在Node.js中建立PDF

  1. 通過npm安裝IronPDF:npm install @ironsoftware/ironpdf
  2. PdfDocument
  3. 使用您的HTML內容呼叫PdfDocument.fromHtml()
  4. 呼叫.saveAs()將PDF檔案寫入磁碟
:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/quickstart.js

在生產環境運行前為您的平台配置IronPdfEngine。 查看適用於Windows、Linux、macOS和Docker的IronPdfEngine設置指南

如何安裝IronPDF for Node.js?

使用npm安裝@ironsoftware/ironpdf包。 該包適用於Node.js 12.0或更高版本,同時支援ESM和CommonJS模組格式。

//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/install.sh
npm install @ironsoftware/ironpdf
//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/install.sh
npm install @ironsoftware/ironpdf
SHELL

IronPDF for Node.js依賴於IronPDF引擎二進制檔案,其負責處理基於Chromium的渲染。 引擎在首次運行時自動下載,但您可以預先安裝平台特定的包以避免運行時下載。 這在受限網路環境或基於Docker的CI管線中非常有用:

IronPDF引擎平台包可在離線或受限環境中預先安裝
平台
Windows x64@ironsoftware/ironpdf-engine-windows-x64
Linux x64@ironsoftware/ironpdf-engine-linux-x64
macOS x64@ironsoftware/ironpdf-engine-macos-x64
macOS ARM@ironsoftware/ironpdf-engine-macos-arm64

請注意有效的授權金鑰可移除生成的PDF上的浮水印。 在第一次IronPdfGlobalConfig.setConfig({ licenseKey: "YOUR-KEY" })來應用它。)]} 請遵循完整的授權金鑰設置說明

IronPDF的系統要求是什麼?

IronPDF for Node.js在Windows、Linux、macOS和Docker環境的Node.js 12.0或更高版本上運行。 該程式庫支援x64和ARM64架構,使其適用於本地開發和容器化部署。 對於雲環境,IronPDF還支援連接到遠端IronPDF引擎,而不是本地運行引擎。


如何在Node.js中從HTML建立PDF?

使用PdfDocument.fromHtml()從HTML字串生成PDF。 該方法接受任何有效的HTML,包括內聯<style>區塊、通過CDN載入的外部字型和佈局系統如CSS Grid或Flexbox。 Chromium渲染器在生成PDF之前解析所有資源。

:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/html-string-to-pdf.js

PdfDocument實例。 使用您期望的輸出路徑呼叫.then()處理器。 Chromium引擎在捕獲輸出之前處理字體載入、外部樣式表和資產解析。 有關更多模式,請查看HTML字串轉PDF範例

如何從HTML檔案建立PDF?

使用.html檔案。 此方法對於模板文件特別有效,其中HTML與應用程式邏輯分開維護。

:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/html-file-to-pdf.js

渲染器從HTML檔案的目錄解析相對資產路徑,因此本地CSS和圖像引用無需額外配置即可運行。 請參閱HTML檔案轉PDF範例以獲得其他選項,包括如何覆寫資產解析的基準URL。

如何從URL生成PDF?

使用PdfDocument.fromUrl()將現有的網頁渲染為PDF。 渲染器在捕獲輸出之前,以完整的瀏覽器會話的方式載入頁面,執行JavaScript、應用CSS,並等待動態內容。

:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/url-to-pdf.js

對於通過JavaScript異步載入內容的頁面,將此與renderDelay選項(以毫秒為單位)結合使用,以允許在捕獲之前有額外時間。 URL轉PDF範例展示了延遲配置和身份驗證標頭。


Icon Quote related to 如何從URL生成PDF?

我最喜歡的程式庫是IronPDF。它允許快速高效地操作PDF文件。它還有許多有價值的功能,例如導出到PDF/A格式和數位簽署PDF文件。

Milan Jovanovic related to 如何從URL生成PDF?

Milan Jovanovic

Microsoft MVP

查看案例研究
Icon Quote related to 如何從URL生成PDF?

IronOCR意味著我們每年可以從手動處理中節省$40,000,同時提高生產力,釋放資源以進行高影響的任務。我會強烈推薦它。

Brent Matzelle related to 如何從URL生成PDF?

Brent Matzelle

首席技術官,OPYN

查看案例研究
Icon Quote related to 如何從URL生成PDF?

IronSuite在我們的運營中扮演著至關重要的角色。這些工具增加了包括建立平面圖和改善庫存管理在內的業務效率。

David Jones related to 如何從URL生成PDF?

David Jones

首席軟體工程師,Agorus Build

查看案例研究

如何配置PDF輸出設置?

將配置物件作為第二個參數傳遞給PdfDocument.fromUrl()。 配置物件接受紙張尺寸、邊距、方向和渲染選項。

:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/pdf-settings.js

主要配置選項包括:

  • PdfPaperSize枚舉值(A4、Letter、Legal和自定義尺寸
  • landscape:為橫向頁面方向設置true
  • printBackground:包含CSS背景顏色和圖像
  • marginTop/Bottom/Left/Right:以毫米為單位的頁面邊距
  • renderDelay:用於JavaScript大量頁面捕捉前的等待毫秒數

如何將頁眉和頁腳新增到PDF?

通過配置物件中的htmlFooter屬性新增標頭和頁腳。 兩者都接受完整的HTML字串,從而能夠將樣式內容與頁碼、日期和動態文字結合。

:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/headers-footers.js

使用{total-pages}標記在頁腳HTML中; IronPDF在渲染時間替換正確的值。有關更多標頭和頁腳模式,包括HTML標頭和頁腳進階標頭技巧,請參閱連結的範例。


如何為PDF新增安全和元資料?

使用PdfDocument安全方法將密碼保護和加密應用到生成的PDF。 該程式庫支援擁有者和使用者密碼,提供列印、複製和編輯的詳細權限控制。

:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/security.js

加密和解密在應用密碼時預設使用AES 256位加密。 對於文件身份驗證工作流程,IronPDF還支援使用X.509證書的數位簽名

提示對於需要長期檔案遵從性的文件,請使用PdfDocument.fromHtml(),然後使用PDF/A轉換方法。 IronPDF支援PDF/A合規PDF/UA可存取性標準


如何合併和操作現有的PDF?

PdfDocument提供合併、分割和修改現有PDF文件的方法。 使用PdfDocument.fromFile()載入現有的PDF,並使用操作方法新增或移除頁面、印章內容或替換文字。

:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/merge-pdfs.js

PdfDocument實例的陣列並返回一個單一的合併文件。 頁面順序遵循陣列順序,因此輸出保留輸入文件的順序。

其他常見的操作操作:

對於高容量場景,多執行緒PDF生成可讓您並行處理多個文件。 PDF壓縮可減少檔案大小以進行儲存和傳輸。


如何為複雜內容生成PDF,如圖表和Angular頁面?

IronPDF使用完全Chromium瀏覽器會話渲染頁面,這意味著生成圖表、圖表或資料視覺化的JavaScript庫正確渲染,包括JavaScript圖表庫。 使用像Angular這樣的框架構建的單頁應用程式也可以使用Angular轉PDF範例乾淨轉換。

對於Unicode密集型文件或多語言輸出,IronPDF處理Unicode和國際字元集無需額外配置。 Google字型整合範例顯示如何在渲染的HTML中載入網頁字形,以確保輸出PDF的字型一致性。

請注意IronPDF的Chromium渲染器在捕捉PDF之前執行JavaScript。 如果您的圖表庫或SPA需要在DOM載入後額外時間來渲染資料,請以毫秒為單位設置renderDelay以給予頁面完全渲染的時間。


Node.js中建立PDF的下一步是什麼?

本指南涵蓋了IronPDF的核心工作流程:安裝程式庫、從HTML字串、檔案和URL生成PDF、配置輸出設置、新增頁眉和頁腳、應用安全措施以及操作現有PDF。

繼續了解完整的HTML到PDF教學以更深入了解渲染選項,或瀏覽API參考以獲得完整的PdfDocument方法和配置屬性列表。

開始您的免費試用以生成無浮水印的PDF,或查看授權選項以進行生產部署。

常見問題

在Node.js中建立PDF文件的最簡單方法是什麼?

使用npm install @ironsoftware/ironpdf安裝IronPDF,然後使用您的HTML字串調用PdfDocument.fromHtml(),並使用saveAs()保存結果。該程式庫會自動處理所有渲染。

我如何安裝IronPDF用於Node.js?

在您的專案目錄中運行npm install @ironsoftware/ironpdf。IronPDF引擎的二進制檔案在第一次使用時會自動下載。對於離線或CI環境,單獨安裝平台特定的引擎包,例如@ironsoftware/ironpdf-engine-linux-x64

我可以在保持CSS樣式和格式的情況下將HTML轉換為PDF嗎?

可以。IronPDF使用基於Chromium的渲染引擎,在將HTML轉換為PDF時保留所有CSS樣式、外部字體和JavaScript執行。輸出效果與Chrome的列印預覽行為一致。

除了基本的HTML轉換外,還有哪些PDF功能可用?

IronPDF支持數位簽名、AES 256位加密、具有細粒度權限的密碼保護、自定義標頭和頁尾與頁碼標記、PDF合併、頁面移除、HTML標記、文字提取、PDF/A合規性和多執行緒生成。

如何從磁碟上的HTML文件生成PDF?

使用PdfDocument.fromFile('./path/to/template.html')。渲染器會從HTML文件的目錄解析相對資產路徑,因此本地CSS和圖像參考無需額外配置即可運行。

我可以使用IronPDF從現有的PDF文件中提取文字嗎?

可以。使用PdfDocument.fromFile()載入現有PDF,然後使用文字提取方法從任何頁面讀取內容。IronPDF支持建立新PDF和處理現有文件。

IronPDF在渲染HTML時支持JavaScript執行嗎?

可以。Chromium渲染器在捕捉PDF之前會執行JavaScript。對於異步載入內容的頁面,將renderDelay選項設定為毫秒,讓頁面在捕捉前有更多時間。

Darrius Serrant
全端軟體工程師(WebOps)

Darrius Serrant擁有邁阿密大學的電腦科學學士學位,並在Iron Software擔任全端WebOps行銷工程師。從小就對程式設計有興趣,他認為計算既神秘又易於理解,成為創意和問題解決的完美媒介。

在Iron Software,Darrius喜歡創造新事物並簡化複雜的概念,使其更易於理解。作為我們的常駐開發人員之一,他還志願教學,將他的專業知識傳授給下一代。

對Darrius來說,他的工作是有意義的,因為它有價值且對社會有真正的影響。

準備好開始了嗎?
版本: 2026.6 剛剛發布
Still Scrolling Icon

還在滾動嗎?

想要快速的證據嗎?
運行範例觀看您的HTML變為PDF。