跳過到頁腳內容
使用 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文件。 憑藉其全面的功能集和直觀的API,IronPDF使開發者能夠簡化各種與PDF創建相關的任務,從創建視覺上吸引人的文件到添加交互元素,同時保持高水平的控制和自定義。 無論是生成報告、發票還是其他重要文件,IronPDF for Node.js都提供了一個可靠且高效的解決方案,能以無縫且對開發者友好的方式滿足各種PDF頁面生成需求。

IronPDF 功能特性

  1. 從HTML/CSS生成PDF:HTML和CSS來源創建PDF文件。 這允許您將網頁或HTML模板轉換為PDF格式。
  2. 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   # 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)並執行命令

  2. 一旦初始設置完成,使用以下命令安裝IronPDF:

    npm install @ironsoftware/ironpdf
    npm install @ironsoftware/ironpdf
    SHELL
  3. 在Visual Studio Code中打開項目並創建一個名為 "index.js" 的新文件。
  4. 打開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

上面的代碼示例定義了一個JavaScript程序,它使用readline模組通過命令行獲取用戶輸入的標題、用戶名和用戶電子郵件。 generatePdf()方法被定義來使用提供的HTML模板創建PDF文件,並用給定的文件名保存它。 HTML模板包含標題、用戶名和用戶電子郵件的佔位符,這些佔位符將用用戶提供的數據填充。 來自@ironsoftware/ironpdf套件的PdfDocument類用於從HTML模板創建PDF。 生成PDF後,它將以指定的文件名保存,並向控制台記錄確認保存的消息。

readline模組用於提示用戶輸入相關數據,按順序詢問標題、用戶名和用戶電子郵件。 收集到這些提示的用戶回應,並存儲在一個名為userInput的物件中。 然後使用此用戶輸入和默認文件名"output.pdf"調用generatePdf()方法來創建並保存或下載基於提供數據的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: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生成的強大組合。 同樣的技術可以用於即時動態生成發票。

您可以安裝IronPDF for Node.js並在以下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 添加安全性和加密的功能,確保文件受到保護並根據需求控制訪問。

Darrius Serrant
全棧軟件工程師 (WebOps)

Darrius Serrant 擁有邁阿密大學計算機科學學士學位,目前任職於 Iron Software 的全栈 WebOps 市場營銷工程師。從小就迷上編碼,他認為計算既神秘又可接近,是創意和解決問題的完美媒介。

在 Iron Software,Darrius 喜歡創造新事物,並簡化複雜概念以便於理解。作為我們的駐場開發者之一,他也自願教學生,分享他的專業知識給下一代。

對 Darrius 來說,工作令人滿意因為它被重視且有實際影響。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me