การสร้างไฟล์ 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 สามารถทำได้ง่ายโดยใช้ librarypdfkit ซึ่งสามารถสร้างข้อความ รูปภาพ และโครงสร้างเอกสารต่าง ๆ ได้
และยังสามารถนำไปใช้งานร่วมกับ Express API เพื่อสร้างเอกสารแบบ dynamic
ให้ผู้ใช้ดาวน์โหลดหรือแสดงผ่าน Web Application ได้อย่างสะดวก
