A S T A C O D E

Loading

Cara Membuat PDF Report Dinamis di Node.js dengan Puppeteer
Tutorial

Cara Membuat PDF Report Dinamis di Node.js dengan Puppeteer

Admin

Author

Aug 25, 2026

Published

32

Views

Cara Membuat PDF Report Dinamis di Node.js dengan Puppeteer

Mengapa Menggunakan Puppeteer untuk PDF?

Puppeteer memungkinkan aplikasi mengontrol Chromium untuk menghasilkan PDF dari HTML. Dengan pendekatan ini, developer dapat memanfaatkan CSS modern, custom font, layout kompleks, hingga grafik berbasis JavaScript.

Hasil PDF biasanya lebih fleksibel dibandingkan library PDF tradisional karena proses rendering mengikuti kemampuan browser.

Setup dan Instalasi

Install Puppeteer dengan:

npm install puppeteer

Puppeteer akan mengunduh Chromium secara otomatis sehingga ukuran instalasinya cukup besar.

Untuk production, puppeteer-core dapat digunakan jika ingin mengelola instalasi Chromium secara terpisah dan memiliki kontrol lebih besar terhadap environment.

Generate PDF Dasar

Alur dasarnya adalah menjalankan browser, membuat halaman baru, memasukkan HTML, lalu menggunakan page.pdf() untuk menghasilkan file PDF.

Beberapa konfigurasi yang umum digunakan:

  • Format A4

  • printBackground: true

  • Margin sesuai kebutuhan

  • Custom header dan footer

  • Output berupa file atau Buffer

Dengan cara ini, HTML yang sudah dibuat dapat langsung dirender menjadi dokumen PDF.

Template HTML dengan Data Dinamis

Untuk membuat report yang berbeda-beda, gunakan template engine seperti Handlebars atau EJS.

Data dari database dapat dimasukkan ke template terlebih dahulu sebelum HTML dikirim ke Puppeteer. Dengan satu template, aplikasi dapat menghasilkan ratusan atau ribuan report dengan data yang berbeda.

Header dan Footer Custom

Puppeteer menyediakan headerTemplate dan footerTemplate untuk membuat tampilan dokumen yang lebih profesional.

Developer juga dapat menggunakan class khusus seperti .pageNumber dan .totalPages untuk menampilkan nomor halaman dan jumlah halaman secara otomatis.

Optimasi Performa

Generate PDF dapat membutuhkan resource yang cukup besar karena menggunakan browser Chromium. Karena itu, hindari melakukan launch dan close browser pada setiap request.

Untuk aplikasi dengan banyak permintaan, gunakan kembali browser instance atau implementasikan browser pool agar beberapa proses PDF dapat berjalan secara efisien.

Tambahkan juga timeout yang sesuai untuk mencegah proses yang terlalu lama atau hanging di production.

Kesimpulan

Puppeteer cocok untuk menghasilkan PDF modern dari HTML dengan tampilan yang fleksibel dan konsisten. Dengan template dinamis, custom header/footer, serta pengelolaan browser yang tepat, Puppeteer dapat digunakan untuk membangun sistem reporting yang scalable.

Cara Membuat PDF Report Dinamis di Node.js dengan Puppeteer

Looking for a professional partner?

Let's discuss how we can help your business grow with our technology solutions.

Chat with us