如何在Node.js中使用IronPdfEngine

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

IronPdfEngine是一個gRPC伺服器,負責處理所有PDF操作——建立、編輯和閱讀——代表Node.js客戶端。 @ironsoftware/ironpdf套件是一個薄的API封裝,通過gRPC與IronPdfEngine通信; 您Node.js程式碼中的每個方法調用都在該伺服器進程中執行。 預設情況下,IronPDF for Node.js作為本地子過程生成IronPdfEngine,但您也可以針對遠端託管的實例進行共享或容器化部署。

快速入門:設置Node.js的IronPdfEngine

安裝該套件,IronPdfEngine會在首次PDF操作時自動運行:

 npm i @ironsoftware/ironpdf

為何Node.js的IronPDF需要IronPdfEngine?

Node.js的IronPDF沒有內建獨立的PDF渲染器。 Node.js套件是一個gRPC客戶端,IronPdfEngine是執行實際渲染、編輯和閱讀工作的伺服器。 當您的應用程式調用任何IronPDF方法時,請求通過gRPC到達引擎進程,然後將結果返回到您的Node.js程式碼。

這種架構保持Node.js套件輕量化並隔離渲染環境。 這也意味著引擎版本必須與套件版本完全匹配——不支持跨版本組合。

IronPdfGlobalConfig.ironPdfEngineVersion屬性以驗證相容性。


如何在本地運行IronPdfEngine?

本地部署是預設模式。 Node.js的IronPDF在啟動時作為子過程生成IronPdfEngine,直到您的應用程式關閉之前與其通信。 提供兩種安裝方法,每種方法有不同的權衡。

選項1:在運行時下載IronPdfEngine

安裝@ironsoftware/ironpdf之後,不需要額外的套件。 首次運行時,IronPDF檢測主機平台(例如,Windows x64)並從互聯網下載匹配的IronPdfEngine二進制文件。

 npm i @ironsoftware/ironpdf

優點:

  • 保持應用程式包小。
  • 部署到多個平台而無需特定平台配置。

缺點:

  • 在前幾次運行中需要網路存取。
  • 在初始運行時下載二進制文件時啟動時間較慢。

選項2(推薦):將IronPdfEngine作為依賴項安裝

Node.js的IronPDF支持專用引擎包,這些包捆綁特定平台的IronPdfEngine二進制文件。 在主庫 alongside the main library旁安裝這些包之一或多個,以消除運行時下載。

重要ironpdf-engine-xxx-xxx包必須同一版本。 引擎包版本號是指IronPDF的發佈,而不是內部引擎構建。

Windows x64:

npm install @ironsoftware/ironpdf-engine-windows-x64

Windows x86:

npm install @ironsoftware/ironpdf-engine-windows-x86

Linux x64:

npm install @ironsoftware/ironpdf-engine-linux-x64

macOS x64:

npm install @ironsoftware/ironpdf-engine-macos-x64

macOS arm64:

npm install @ironsoftware/ironpdf-engine-macos-arm64

優點:

  • 啓動更快——運行時無需下載。
  • 安裝依賴後無需網路存取。

缺點:

  • 應用程式包尺寸更大。
  • 在構建時需要指定目標平臺。

如何連接到遠程IronPdfEngine?

當PDF生成是一個共享服務時,遠程部署是合適的——例如,在容器化的微服務架構中,Kubernetes集羣中多個Node.js服務共享一個引擎pod,或者在任何將渲染過程集中化以減少每個服務開銷的環境中。 在連接之前,請按照如何拉取和運行IronPdfEngine的指南拉取並啓動IronPdfEngine Docker鏡像。

如何驗證所需的引擎版本?

引擎版本必須與Node.js套件版本匹配。 請閱讀ironPdfEngineVersion屬性以確認要拉取的版本:

:path=/static-assets/ironpdf-nodejs/content-code-examples/get-started/use-ironpdfengine-8.js
const ironPdfEngineVersion = IronPdfGlobalConfig.ironPdfEngineVersion;
console.log(`Required IronPdfEngine version: ${ironPdfEngineVersion}`);
JAVASCRIPT

在指定Docker鏡像標籤時使用列印的版本號。 運行不匹配的版本將導致gRPC通信錯誤。

如何配置遠程連接?

假設IronPdfEngine正在123.456.7.8:33350運行。 將配置調用放在應用程式的開頭——在任何IronPDF方法調用之前。

:path=/static-assets/ironpdf-nodejs/content-code-examples/get-started/use-ironpdfengine-9.js
IronPdfGlobalConfig.setConfig({
    ironPdfEngineDockerAddress: "123.456.7.8:33350"
});
JAVASCRIPT

地址必須從Node.js主機可存取。驗證防火牆規則未阻止應用程式伺服器和引擎主機之間的33350端口。

提示使用遠程IronPdfEngine時,您不需要安裝任何ironpdf-engine-xxx-xxx依賴包。 一旦設置ironPdfEngineDockerAddress,本地引擎會被完全忽略。


下一步是什麼?

設置IronPdfEngine是Node.js中所有PDF工作的基礎。 一旦引擎運行——本地或遠程——整個IronPDF API都可用:將HTML轉換為PDF、合併文件、新增標章和水印、提取文字等。

常見問題

什麼是IronPdfEngine,為什麼需要它用於Node.js?

IronPdfEngine是一個gRPC伺服器,處理所有PDF呈現、編輯和讀取操作。@ironsoftware/ironpdf Node.js套件是一個通過gRPC與IronPdfEngine通信的客戶端封裝器,所以無論是本地還是遠程,必須運行該引擎才能成功進行任何PDF操作。

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

在您的專案目錄中運行npm install @ironsoftware/ironpdf。在首次執行時,IronPDF會檢測主機平台並自動下載匹配的IronPdfEngine二進制文件。

執行時下載與捆綁依賴項選項有何不同?

執行時下載選項不需要額外的套件但需要首次運行時的互聯網存取,並且初次啟動較慢。捆綁依賴項選項(選項2,推薦)安裝如@ironsoftware/ironpdf-engine-windows-x64的平臺特定套件,捆綁引擎二進制文件,啟動更快,並且安裝後不需要互聯網存取—在增加包大小的代價下。

如何確保IronPdfEngine版本與我的IronPDF套件版本匹配?

在運行時讀取IronPdfGlobalConfig.ironPdfEngineVersion屬性以獲取所需的精確版本字串。ironpdf套件和任何ironpdf-engine-xxx-xxx依賴項必須是相同版本;不支持跨版本組合。

何時應使用遠程IronPdfEngine而非本地?

遠程IronPdfEngine適用於容器化的微服務架構,Kubernetes部署中多個Node.js服務共享單個呈現pod,或任何集中化PDF處理以減少每個服務資源開銷的場景。

如何將Node.js連接到遠程IronPdfEngine?

在應用程式的開始之前調用IronPdfGlobalConfig.setConfig({ ironPdfEngineDockerAddress: "host:port" }),替換host:port為遠程引擎的IP地址和端口(預設為33350)。確保地址是可達的,並且未被防火牆阻擋。

在使用遠程IronPdfEngine時,我需要安裝引擎依賴套件嗎?

不需要。當設置ironPdfEngineDockerAddress時,IronPDF完全繞過本地引擎。對於遠程部署無需安裝任何ironpdf-engine-xxx-xxx套件。

IronPdfEngine支持哪些平台?

特定於平台引擎的套件適用於Windows x64、Windows x86、Linux x64、macOS x64和macOS arm64。安裝與您的部署目標匹配的套件,或使用執行時下載選項從單一安裝支持多個平台。

我可以在同一專案中安裝多個特定於平台的引擎套件嗎?

可以。您可以在同一專案中安裝多個ironpdf-engine-xxx-xxx套件。IronPDF在運行時選擇主機平台的正確二進制文件,這對於跨多個操作系統構建和部署的專案非常有用。

IronPdfEngine使用哪個端口進行gRPC通信?

IronPdfEngine預設監聽端口33350。在配置遠程連接時,將該端口包括在ironPdfEngineDockerAddress值中,並驗證該端口在Node.js主機和引擎主機之間是開放的。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

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

還在滾動嗎?

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