Company insights

การสร้างไฟล์ PDF ด้วย Node.js


การสร้างไฟล์ PDF เป็นฟีเจอร์ที่นิยมใช้ใน Web Application เช่น
การสร้างใบเสร็จ ใบแจ้งหนี้ รายงาน หรือเอกสารต่าง ๆ
ใน Node.js สามารถสร้าง PDF ได้หลายวิธี โดย library ที่นิยมใช้มากคือ
pdfkit ซึ่งสามารถสร้างเอกสาร PDF แบบ dynamic ได้ง่าย

1. ติดตั้ง Library สำหรับสร้าง PDF


เริ่มต้นด้วยการติดตั้ง library pdfkit


npm install pdfkit


library นี้ช่วยให้สามารถสร้างข้อความ รูปภาพ ตาราง และองค์ประกอบต่าง ๆ ลงในไฟล์ PDF ได้

2. สร้างไฟล์ PDF เบื้องต้น


สร้างไฟล์ชื่อ generate_pdf.js


const PDFDocument = require('pdfkit');
const fs = require('fs');

const doc = new PDFDocument();

doc.pipe(fs.createWriteStream('example.pdf'));

doc.fontSize(20).text('Hello PDF from Node.js', 100, 100);

doc.end();


จากนั้นรันคำสั่ง


node generate_pdf.js


ระบบจะสร้างไฟล์ example.pdf ขึ้นมาในโฟลเดอร์โปรเจกต์

3. การสร้าง PDF ผ่าน Express API


สามารถสร้าง API สำหรับ generate PDF และส่งไฟล์กลับไปให้ผู้ใช้ดาวน์โหลดได้


const express = require('express');
const PDFDocument = require('pdfkit');

const app = express();

app.get('/pdf', (req, res) => {

 const doc = new PDFDocument();

 res.setHeader('Content-Type', 'application/pdf');
 res.setHeader('Content-Disposition', 'inline; filename=report.pdf');

 doc.pipe(res);

 doc.fontSize(25).text('Report PDF', 100, 100);
 doc.fontSize(14).text('This PDF was generated using Node.js', 100, 150);

 doc.end();

});

app.listen(3000, () => {
 console.log('Server running on port 3000');
});


เมื่อเข้า URL


http://localhost:3000/pdf


ระบบจะสร้างไฟล์ PDF และแสดงใน Browser

4. การเพิ่มรูปภาพลงใน PDF


สามารถเพิ่มรูปภาพลงใน PDF ได้โดยใช้คำสั่ง image()


doc.image('logo.png', {
 fit: [200, 200],
 align: 'center',
 valign: 'center'
});

5. การสร้างตารางใน PDF


หากต้องการสร้างตาราง อาจใช้ library เสริม เช่น
pdfkit-table


npm install pdfkit-table


ตัวอย่างการสร้างข้อมูลแบบตาราง


const table = {
 headers: ["Name", "Age", "City"],
 rows: [
   ["John", "30", "New York"],
   ["Anna", "25", "London"],
   ["Mike", "32", "Bangkok"]
 ]
};

doc.table(table);

ตัวอย่างการใช้งานจริง


  • สร้างใบเสร็จรับเงิน (Receipt)

  • สร้างใบแจ้งหนี้ (Invoice)

  • สร้างรายงานข้อมูลจากฐานข้อมูล

  • สร้างเอกสารสรุปข้อมูลสำหรับดาวน์โหลด

สรุป


การสร้าง PDF ด้วย Node.js สามารถทำได้ง่ายโดยใช้ library
pdfkit ซึ่งสามารถสร้างข้อความ รูปภาพ และโครงสร้างเอกสารต่าง ๆ ได้
และยังสามารถนำไปใช้งานร่วมกับ Express API เพื่อสร้างเอกสารแบบ dynamic
ให้ผู้ใช้ดาวน์โหลดหรือแสดงผ่าน Web Application ได้อย่างสะดวก