使用 IRONPDF FOR NODE.JS

如何在 Node.js 中從模板生成 PDF 檔案

本文將探討如何使用名為IronPDF for Node.js的 PDF 庫從 HTML 範本生成 PDF 文件的範例。

什麼是IronPDF for Node.js

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 格式。

  2. PDF操作和編輯通過添加、刪除或更新PDF文件中的文本、圖像、註釋及其他元素來編輯和修改現有的PDF。

  3. 合併和拆分 PDF:將多個 PDF 文件合併為一個(合併)或將單個 PDF 拆分為多個較小的 PDF

  4. 列印和表單處理: 控制列印設定處理互動表單 於PDF中,包括表單提交和驗證。

  5. 安全和加密實施安全措施,如密碼保護、加密、存取控制和數位簽章來保護 PDF 文件。

  6. 文字提取從 PDF 中提取文字和數據,允許您在其他應用程式中使用內容或進行數據分析。

  7. 自訂化: 自訂外觀與版面配置的 PDF 文件,包括頁面大小、字體、顏色、頁眉、頁腳以及其他設計元素。

  8. 跨平台相容性:確保該庫與不同操作系統上的Node.js相容,讓開發人員可以在各種平台上靈活運用。

安裝 IronPDF for Node.js

本節將介紹如何安裝 IronPDF for Node.js 並設置 Node.js 項目。

在開始之前,確認您的系統已安裝 Node.js。

  1. 打開命令提示字元 (CMD),並使用以下命令啟動一個新的 Node.js 專案:
    mkdir IronPDF   # Creates a new directory for the project.

    cd IronPDF      # Navigates to the newly created directory.

    npm init -y     # Creates a package.json file to store project-related metadata and dependencies.
    mkdir IronPDF   # Creates a new directory for the project.

    cd IronPDF      # Navigates to the newly created directory.

    npm init -y     # Creates a package.json file to store project-related metadata and dependencies.
SHELL

如何在 Node.js 中從模板生成 PDF 文件,圖 1:打開命令提示符 (CMD) 並執行命令

打開命令提示字元 (CMD) 並執行命令

  1. 完成初始設置後,請使用以下命令安裝IronPDF:

    ```:shell

    :ProductInstall

  2. 在 Visual Studio Code 中打開專案,並建立一個名為 "index.js" 的新檔案。

  3. 打開 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';

const generatePdf = async (userInput, fileName) => {
  // HTML template with placeholders
  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
  await pdf.saveAs(fileName);
  console.log(`PDF saved as ${fileName}`);
};

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

rl.question('Enter title: ', (title) => {
  rl.question('Enter user name: ', (userName) => {
    rl.question('Enter user email: ', async (userEmail) => {
      // User-provided data
      const userInput = {
        title,
        userName,
        userEmail
      };

      // Generate the PDF
      await generatePdf(userInput, "output.pdf");

      rl.close();
    });
  });
});
import { PdfDocument } from "@ironsoftware/ironpdf";
import readline from 'readline';

const generatePdf = async (userInput, fileName) => {
  // HTML template with placeholders
  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
  await pdf.saveAs(fileName);
  console.log(`PDF saved as ${fileName}`);
};

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

rl.question('Enter title: ', (title) => {
  rl.question('Enter user name: ', (userName) => {
    rl.question('Enter user email: ', async (userEmail) => {
      // User-provided data
      const userInput = {
        title,
        userName,
        userEmail
      };

      // Generate the PDF
      await generatePdf(userInput, "output.pdf");

      rl.close();
    });
  });
});
NODE.JS

上面的代碼示例定義了一個 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

output.pdf

PDF生成測試#2

如何在Node.js中從範本生成PDF文件,圖5:控制台輸出

控制台輸出

如何在 Node.js 中從模板生成 PDF 文件,圖 6:輸出.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 生成的強大組合。 這種技術也可以用於動態生成發票。

您可以安裝 IronPDF 用於 Node.js,並在以下 npm 網頁 上找到代碼範例。

IronPDF 提供免費試用許可證,因此用戶可以在購買之前試用 IronPDF 提供的所有功能。 如需更多資訊,請造訪 IronPDF 授權頁面

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

Darrius Serrant 擁有邁阿密大學的計算機科學學士學位,目前擔任 Iron Software 的全端 WebOps 行銷工程師。自幼對編程產生興趣,他認為計算機既神秘又易於接觸,使其成為創造力和解決問題的完美媒介。

在 Iron Software,Darrius 享受創造新事物並簡化複雜概念使其更易理解的過程。作為我們的其中一位常駐開發人員,他也自願教導學生,將他的專業知識傳授給下一代。

對 Darrius 來說,他的工作之所以令人滿足,是因為它受到重視並且產生了真正的影響。

< 上一頁
如何在 Node.js 中從 URL 下載 PDF 文件
下一個 >
Node.js PDF SDK(開發人員教程)

準備開始了嗎? 版本: 2025.5 剛剛發布

查看許可證 >