Patterns/Print & PDF Export

Print & PDF Export

● Needs Review Web Nuxt 4 + Mobile React Native

Konvensi Tailwind print: yang dipakai untuk mencetak invoice dan sertifikat langsung dari browser lewat window.print(), tanpa library PDF terpisah.

Cetak langsung dari halaman, bukan generate PDF terpisah

Alur invoice memanggil window.print() pada halaman yang sama, lalu memakai varian print: Tailwind untuk menyembunyikan chrome (header, footer, breadcrumb, tombol aksi) dan merapikan kartu yang dicetak supaya sesuai proporsi kertas. Tidak ada dependensi library PDF — yang dilihat pengguna di preview cetak browser adalah versi halaman yang sudah disesuaikan lewat CSS saja.

Kelas print: yang dipakai

KelasDiterapkan padaEfek saat mencetak
print:hiddenHeader, footer, breadcrumb, tombol aksiDisembunyikan total dari hasil cetak — chrome navigasi tidak relevan di atas kertas.
print:blockGrid konten utamaMemaksa tata letak grid/flex kembali ke alur block normal supaya tidak terpotong antar kolom.
print:py-0Grid konten utamaMenghapus padding vertikal layar yang tidak dibutuhkan di kertas.
print:rounded-none print:border-0 print:shadow-noneKartu/artikel yang dicetakMenghilangkan radius, border, dan shadow dekoratif layar — kertas tidak punya latar untuk shadow terlihat.
Struktur print: pada layout + invoice
<!-- layouts/account.vue -->
<header class="print:hidden">...</header>

<main class="print:block print:py-0">
  <!-- invoice.vue -->
  <article class="rounded-xl border shadow-xs print:rounded-none print:border-0 print:shadow-none">
    ...
  </article>
</main>

<footer class="print:hidden">...</footer>

Tombol pemicu

Tombol ini sendiri diberi print:hidden supaya tidak ikut tercetak.

Memanggil window.print() pada klik.

Satu pertanyaan terbuka yang belum diputuskan: apakah konvensi ini cukup untuk kebutuhan cetak massal (mis. mencetak banyak sertifikat sekaligus), atau pada titik tertentu perlu pipeline PDF sungguhan di server. Halaman ini didokumentasikan sebagai Needs Review sampai pertanyaan itu dijawab.