Cara Convert SHTML ke PDF dengan Mudah & Akurat

Mengubah file berformat SHTML (Server Side Includes HTML) langsung menjadi dokumen PDF memerlukan pendekatan khusus karena file SHTML umumnya memuat skrip server sebelum dirender menjadi HTML utuh. Cara paling efektif untuk melakukan konversi ini adalah dengan merender halaman tersebut terlebih dahulu melalui browser web, lalu mencetaknya ke format PDF, atau menggunakan perangkat lunak pihak ketiga dan utilitas baris perintah.

Format SHTML sering digunakan pada situs web lama yang memanfaatkan server Apache dengan modul SSI (Server Side Includes). Karena browser membaca SHTML sebagai halaman web standar setelah diproses server, Anda tidak bisa langsung mengubah file mentahnya (source code) menjadi PDF tanpa merendernya terlebih dahulu. Berikut adalah tabel perbandingan metode konversi SHTML ke PDF yang paling sering digunakan:

Metode Konversi Tingkat Kesulitan Kebutuhan Alat Hasil Tata Letak
Print to PDF (Browser) Sangat Mudah Google Chrome / Mozilla Firefox Sangat Akurat (Sesuai Tampilan Asli)
Konverter Online Mudah Koneksi Internet & Browser Bervariasi, tergantung alat
Headless Browser (Puppeteer/Playwright) Menengah-Mahir Node.js / Skrip Pemrograman Sempurna untuk Otomasi Skala Besar

1. Menggunakan Fitur Print to PDF pada Browser (Paling Praktis)

Cara paling akurat tanpa menginstal aplikasi tambahan adalah dengan membuka file SHTML melalui server lokal atau web live menggunakan browser, lalu menyimpannya sebagai PDF.

  1. Buka halaman SHTML melalui browser web (Google Chrome, Microsoft Edge, atau Mozilla Firefox). Pastikan halaman sudah dirender sempurna oleh server.
  2. Tekan kombinasi tombol Ctrl + P (pada Windows) atau Cmd + P (pada macOS) untuk membuka dialog cetak.
  3. Pada bagian Destination atau Printer, pilih opsi Save as PDF atau Microsoft Print to PDF.
  4. Atur tata letak (Layout) apakah ingin Portrait atau Landscape, lalu sesuaikan margin sesuai kebutuhan.
  5. Klik tombol Save dan pilih lokasi penyimpanan file PDF di komputer Anda.

2. Menggunakan Skrip Node.js & Puppeteer (Untuk Otomasi)

Jika Anda perlu mengonversi file SHTML dalam jumlah banyak secara otomatis, menggunakan pustaka Puppeteer di Node.js adalah solusi terbaik karena dapat merender elemen SHTML secara sempurna.

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  
  // Buka URL file SHTML yang sudah aktif di server
  await page.goto('http://localhost/halaman.shtml', { waitUntil: 'networkidle2' });
  
  // Cetak halaman ke file PDF
  await page.pdf({
    path: 'hasil-konversi.pdf',
    format: 'A4',
    printBackground: true
  });

  await browser.close();
})();

Langkah-langkah Eksekusi Skrip:

  • Pastikan Node.js sudah terinstal di komputer Anda.
  • Inisialisasi proyek dan instal Puppeteer melalui terminal: npm install puppeteer
  • Simpan kode di atas dengan nama convert.js.
  • Jalankan perintah: node convert.js di terminal Anda.

Tips Mengatasi Masalah (Troubleshooting)

Terkadang, proses konversi SHTML ke PDF mengalami kendala seperti gambar yang tidak muncul atau tata letak berantakan. Berikut adalah solusi cepatnya:

  • Gelar Server Lokal: Karena SHTML membutuhkan server (seperti Apache atau Nginx) untuk memproses fungsi SSI (seperti <!--#include-->), pastikan file diakses melalui protokol http:// bukan langsung dibuka sebagai file lokal (file:///).
  • Aktifkan Background Graphics: Saat menggunakan fitur Print to PDF di browser, pastikan opsi "Background graphics" dicentang agar warna latar dan elemen desain tidak hilang.
  • Gunakan Ekstensi Browser: Jika mengalami kendala dengan cetak bawaan, gunakan ekstensi pencetak PDF pihak ketiga yang tersedia di Chrome Web Store.