如何在 Node.js 中從模板生成 PDF 文件
本文將探討如何使用名為IronPDF for Node.js 的PDF 庫,從 HTML 範本產生 PDF 文件的範例。
什麼是適用於 Node.js 的 IronPDF?
IronPDF for Node.js是一款功能強大且用途廣泛的工具,可與 Node.js 無縫集成,使開發人員能夠在應用程式中輕鬆產生、操作和管理 PDF 文件。 IronPDF 擁有全面的功能集和直覺的 API,使開發人員能夠簡化各種與 PDF 創建相關的任務,從創建視覺上吸引人的文件到添加互動式元素,所有這些都可以在保持高度控制和自訂的同時完成。 無論是產生報告、發票或其他重要文檔,IronPDF for Node.js 都能提供可靠且高效的解決方案,以無縫且對開發者友好的方式滿足各種 PDF 頁面生成需求。
IronPDF 功能
1.從 HTML/CSS 產生 PDF:從 HTML 和 CSS 來源建立 PDF 文件。 這可以將網頁或 HTML 範本轉換為 PDF 格式。
- PDF 操作與編輯:透過新增、刪除或更新 PDF 檔案中的文字、圖像、註釋和其他元素來編輯和修改現有的 PDF 檔案。 3.合併和分割 PDF:將多個 PDF 文件合併為一個(合併)或將單一 PDF 拆分為多個較小的 PDF 。 4.列印和表單處理:控制列印設定並處理 PDF 中的互動式表單,包括表單提交和驗證。 5.安全性和加密:實施密碼保護、加密、存取控制和數位簽章等安全措施來保護 PDF 文件。 6.文字擷取:從 PDF 中提取文字和數據,允許您在其他應用程式中使用內容或進行數據分析。 7.自訂:自訂 PDF 文件的外觀和佈局,包括頁面大小、字體、顏色、頁首、頁尾和其他設計元素。 8.跨平台相容性:確保該程式庫與不同作業系統上的 Node.js 相容,使其能夠靈活地服務在各種平台上工作的開發人員。
安裝適用於 Node.js 的 IronPDF
本節將介紹如何為Node.js安裝IronPDF以及如何設定Node.js專案。
在開始之前,請確保您的系統已安裝Node.js。
開啟命令提示字元 (CMD),並使用下列命令啟動新的 Node.js 專案:
mkdir IronPDF # Create a new directory for the project. cd IronPDF # Navigate to the newly created directory. npm init -y # Create a package.json file to store project-related metadata and dependencies.mkdir IronPDF # Create a new directory for the project. cd IronPDF # Navigate to the newly created directory. npm init -y # Create a package.json file to store project-related metadata and dependencies.SHELL如何在 Node.js 中從範本產生 PDF 文件,圖 1:開啟命令提示字元 (CMD) 並執行命令 開啟命令提示字元 (CMD) 並執行該命令
初始設定完成後,使用以下指令安裝 IronPDF:
npm install @ironsoftware/ironpdfnpm install @ironsoftware/ironpdfSHELL- 在 Visual Studio Code 中開啟項目,並建立一個名為"index.js"的新檔案。
開啟 package.json 文件,在"type"下新增以下行以啟用模組使用:
"type": "module",如何在 Node.js 中從模板產生 PDF 文件,圖 2:範例 package.json 文件 範例 package.json 文件
透過這些步驟, IronPDF for Node.js已成功安裝,並且已設定好運行 IronPDF 程式碼的環境。
使用 IronPDF for Node.js 從 HTML 範本建立 PDF
IronPDF for Node.js提供了一項功能,可讓使用者從 HTML 範本或 HTML 頁面建立 PDF。 此功能允許使用者使用自己提供的輸入內容填充這些範本。
下面提供的程式碼將示範如何使用 HTML 範本產生和寫入 PDF 文件。
import { PdfDocument } from "@ironsoftware/ironpdf";
import readline from 'readline';
// Function to generate a PDF document based on user input and an HTML template
const generatePdf = async (userInput, fileName) => {
// HTML template with placeholders for dynamic content
const htmlTemplate = `
<!DOCTYPE html>
<html>
<body>
<h1>${userInput.title}</h1>
<p>User's name: ${userInput.userName}</p>
<p>User's email: ${userInput.userEmail}</p>
</body>
</html>
`;
// Create a PDF from the modified HTML template
const pdf = await PdfDocument.fromHtml(htmlTemplate);
// Save the PDF document under the specified file name
await pdf.saveAs(fileName);
console.log(`PDF saved as ${fileName}`);
};
// Create an interface for reading data from the terminal
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
// Collect user input for the PDF document
rl.question('Enter title: ', (title) => {
rl.question('Enter user name: ', (userName) => {
rl.question('Enter user email: ', async (userEmail) => {
// Store user-provided data in an object
const userInput = {
title,
userName,
userEmail
};
// Generate the PDF using the user input
await generatePdf(userInput, "output.pdf");
// Close the readline interface
rl.close();
});
});
});import { PdfDocument } from "@ironsoftware/ironpdf";
import readline from 'readline';
// Function to generate a PDF document based on user input and an HTML template
const generatePdf = async (userInput, fileName) => {
// HTML template with placeholders for dynamic content
const htmlTemplate = `
<!DOCTYPE html>
<html>
<body>
<h1>${userInput.title}</h1>
<p>User's name: ${userInput.userName}</p>
<p>User's email: ${userInput.userEmail}</p>
</body>
</html>
`;
// Create a PDF from the modified HTML template
const pdf = await PdfDocument.fromHtml(htmlTemplate);
// Save the PDF document under the specified file name
await pdf.saveAs(fileName);
console.log(`PDF saved as ${fileName}`);
};
// Create an interface for reading data from the terminal
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
// Collect user input for the PDF document
rl.question('Enter title: ', (title) => {
rl.question('Enter user name: ', (userName) => {
rl.question('Enter user email: ', async (userEmail) => {
// Store user-provided data in an object
const userInput = {
title,
userName,
userEmail
};
// Generate the PDF using the user input
await generatePdf(userInput, "output.pdf");
// Close the readline interface
rl.close();
});
});
});上面的程式碼範例定義了一個 JavaScript 程序,該程序使用readline模組透過命令列接收使用者輸入的標題、使用者名稱和使用者電子郵件。 generatePdf()方法用於使用提供的 HTML 範本建立 PDF 文檔,並以給定的文件名稱儲存。 HTML 範本包含標題、使用者名稱和使用者電子郵件的佔位符,這些佔位符將填入使用者提供的資料。 使用@ironsoftware/ironpdf套件中的PdfDocument類,可以根據 HTML 範本建立 PDF。 PDF 產生後,將以指定的檔案名稱儲存,並在控制台中記錄確認已儲存的訊息。
readline模組用於提示使用者輸入相關數據,透過一系列問題詢問標題、使用者名稱和使用者電子郵件。 使用者對這些提示的回應會被收集並儲存在一個名為userInput物件中。 然後呼叫generatePdf()方法,傳入使用者輸入和預設檔名"output.pdf",根據提供的資料建立、儲存或下載 PDF 文件。 最後,readline介面關閉,程式結束。
PDF產生測試#1
如何在 Node.js 中從範本產生 PDF 文件,圖 3:控制台輸出 控制台輸出
如何在Node.js中根據模板產生PDF文件,圖4:output.pdf 輸出文件.pdf
PDF產生測試#2
如何在 Node.js 中從範本產生 PDF 文件,圖 5:控制台輸出 控制台輸出
如何在Node.js中根據模板產生PDF文件,圖6:output.pdf文件 output.pdf 文件
結論
本教學課程揭示如何利用 Node.js 將動態資料與預定義範本合併,從而輕鬆產生 PDF,並重點介紹了IronPDF的關鍵作用。
IronPDF for Node.js與 Node.js 無縫集成,使開發人員能夠有效地建立、操作和管理 PDF 文檔,並提供一套全面的功能,例如從 HTML/CSS 生成 PDF、編輯現有 PDF 文件、合併/拆分它們、處理表單、確保安全性、啟用文字提取和自訂。
透過逐步安裝流程和實際範例,示範如何在Node.js專案中有效地實作IronPDF。 透過無縫整合基於模板的 PDF 生成功能,開發人員可以有效地滿足各種文件生成需求,使 Node.js 和 IronPDF 成為簡化且對開發人員友好的 PDF 生成的強大組合。 同樣的技術也可用於動態產生發票。
您可以安裝適用於 Node.js 的IronPDF ,並在以下npm 網頁上找到程式碼範例。
IronPDF 提供免費試用許可證,使用者可以在購買前試用 IronPDF 提供的所有功能。 如需了解更多信息,請訪問IronPDF 許可頁面。
常見問題解答
如何從 Node.js 中的 HTML 模板產生 PDF?
您可以使用 IronPDF 從 Node.js 中的 HTML 模板生成 PDF。透過使用其 PdfDocument 類別,您可以使用動態資料填充 HTML 模板,並將其轉換為 PDF 檔案。
在 Node.js 環境中安裝 IronPDF 需要哪些步驟?
若要在 Node.js 環境中安裝 IronPDF,請先確認已安裝 Node.js,然後使用 npm 啟動一個新專案,並執行 npm install @ironsoftware/ironpdf 將 IronPDF 加入您的專案。
IronPDF 為 Node.js 開發人員提供哪些功能?
IronPDF 提供的功能包括從 HTML/CSS 產生 PDF、編輯 PDF、合併與分割文件、表單處理、文字萃取、安全性與加密,以及自訂選項。
IronPDF 如何在 Node.js 應用程式中加強 PDF 文件的建立?
IronPDF for Node.js 透過提供強大的 API,讓開發人員可以輕鬆地產生、處理和管理 PDF,進而增強 Node.js 應用程式中的 PDF 文件建立功能。這包括從 HTML 模板產生發票等動態文件。
IronPdf 可以在不同的作業系統中使用嗎?
是的,IronPDF 與各種作業系統相容,為在多平台上工作的開發人員提供彈性。
PDF 生成示例中的 "readline "模块有什么作用?
範例程式碼中的「readline」模組用來收集使用者輸入的資料,例如標題和使用者名稱,然後再利用這些資料來填充 HTML 模板,以便產生 PDF。
是否提供免費試用版以測試 IronPdf 的功能?
IronPDF 提供免費的試用授權,讓使用者在購買之前可以探索其功能和特點。
IronPDF 如何處理 PDF 的安全性和加密?
IronPDF 提供了為 PDF 添加安全性和加密的功能,確保文件受到保護,並根據要求控制存取。





