如何在 Node.js 中從模板生成 PDF 文件
本文將探討如何使用名為IronPDF for Node.js的PDF 庫,從 HTML 範本產生 PDF 文件的範例。
什麼是適用於Node.js 的IronPDF ?
IronPDF 適用於 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
開啟命令提示字元 (CMD) 並執行該命令初始設定完成後,使用以下指令安裝IronPDF :
npm install @ironsoftware/ironpdfnpm install @ironsoftware/ironpdfSHELL- 在 Visual Studio Code 中開啟項目,並建立一個名為"index.js"的新檔案。
開啟 package.json 文件,在"type"下新增以下行以啟用模組使用:
"type": "module",
範例 package.json 文件
透過這些步驟, IronPDF 適用於 Node.js已成功安裝,並且已設定好運行IronPDF程式碼的環境。
使用IronPDF for Node.js從 HTML 範本建立 PDF
IronPDF 適用於 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
控制台輸出
輸出文件.pdf
PDF產生測試#2
控制台輸出
output.pdf 文件
結論
本教學揭示如何利用Node.js透過將動態資料與預定義範本合併來輕鬆產生 PDF,並重點介紹了IronPDF的關鍵作用。
IronPDF 適用於 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 @Iron Software/ironpdf 以將 IronPDF 添加到您的項目中。
IronPDF 為 Node.js 開發者提供哪些功能?
IronPDF 提供了從 HTML/CSS 生成 PDF、編輯 PDF、合併和拆分文檔、表單處理、文本提取、安全和加密以及自定義選項等功能。
IronPDF 如何增強 Node.js 應用程序中的 PDF 文檔創建?
IronPDF 通過提供一個強大的 API 來增強 Node.js 應用程序中的 PDF 文檔創建,允許開發者輕鬆生成、操作和管理 PDF。這包括從 HTML 模板生成動態文檔,如發票。
IronPDF 可以跨不同操作系統上使用嗎?
是的,IronPDF 與各種操作系統兼容,為在多個平台上工作的開發者提供靈活性。
PDF 生成示例中的 'readline' 模塊的目的是什麼?
示例代碼中的 'readline' 模塊用於收集用戶輸入,如標題和用戶名,然後利用這些數據來填充 HTML 模板以生成 PDF。
是否有免費試用版可用來測試 IronPDF 的功能?
IronPDF 提供免費試用許可證,允許用戶在購買前探索其功能和特性。
IronPDF 如何處理 PDF 的安全性和加密?
IronPDF 提供了為 PDF 添加安全性和加密的功能,確保文件受到保護並根據需求控制訪問。








