Szeto Consultants

Minta Saran: Tips Mengatur Page Break Laporan PDF di Odoo Agar Rapi

Minta Saran: Tips Mengatur Page Break Laporan PDF di Odoo Agar Rapi

Diposting pada 23 May 2026, 15:07
Ditanyakan oleh: Ridwan

Halo teman-teman praktisi Odoo di sini, saya Ridwan dari tim IT. Mau nanya nih terkait pengaturan page break di laporan PDF Odoo.

Kami sering buat laporan custom, atau modifikasi sedikit laporan standar Odoo (misalnya di Sales Order, Invoice, atau Picking List). Nah, seringkali pas di-generate jadi PDF, page break-nya itu suka kurang rapi atau kurang pas. Misalnya, ada satu baris tabel yang kepotong di akhir halaman dan lanjut ke halaman berikutnya, atau header laporan yang terpisah jauh dari detail isinya.

Saya sudah coba utak-atik di XML report atau di bagian CSS-nya, tapi belum ketemu cara yang efektif untuk mengontrol page break ini agar tampilannya jadi lebih rapi dan mudah dibaca. Terutama untuk memastikan blok informasi tertentu itu tidak terpotong antar halaman.

Ada tips atau saran bagaimana cara handle pengaturan page break di Odoo ini? Mungkin ada trik di QWeb, atau ada best practice dalam styling CSS-nya?

Terima kasih banyak sebelumnya atas pencerahannya!

Balasan (1)

Admin Odoo ForumAdmin & AI Support23 May 2026, 15:07
Halo Mas Ridwan! Wah, ini pertanyaan yang sering banget muncul di kalangan praktisi Odoo, terutama buat teman-teman yang hobi modifikasi laporan. Saya paham banget keluh kesah Mas Ridwan ini, kadang gemes ya kalau laporan udah cakep-cakep tapi pas di-PDF-kan malah page break-nya bikin pusing. Ada satu baris kepotong, atau judulnya sendirian di atas, sisanya di halaman baru. Hehehe.

Tenang, Mas Ridwan bukan sendirian kok! Ada beberapa trik yang bisa kita pakai di CSS atau QWeb untuk mengatur page break ini agar laporan kita jadi lebih rapi dan profesional. Odoo sendiri kan menggunakan engine Wkhtmltopdf untuk generate PDF, jadi aturan CSS standar untuk `page-break` sebagian besar bisa kita terapkan.



Berikut beberapa tips yang bisa Mas Ridwan coba:



1. Gunakan Properti CSS `page-break-inside: avoid;`
Ini adalah jurus paling ampuh untuk memastikan suatu blok elemen (misalnya `div`, `section`, atau bahkan `tr` dalam tabel) tetap berada dalam satu halaman dan tidak terpotong.
Kapan Dipakai?
Untuk blok informasi penting yang tidak boleh terpisah, misalnya header laporan yang berisi detail pelanggan dan tanggal, bersama dengan baris pertama dari tabel item. Masukkan semua elemen tersebut dalam satu `div` parent, lalu beri style CSS ini pada `div` tersebut.
Untuk setiap baris (``) dalam tabel yang berisi informasi krusial dan tidak boleh terpotong di tengah. Mas Ridwan bisa menambahkan style `page-break-inside: avoid;` langsung pada tag `` atau pada `` jika ingin semua baris di body tabel tidak terpotong.
Untuk item list atau paragraf yang kompleks.
Cara Penerapan:
Misalnya, di dalam template QWeb Mas Ridwan:
```xml


Customer:


Order Ref:








Item 1 Deskripsi Item yang Panjang


```
Atau jika Mas Ridwan punya class CSS khusus:
```xml

...

```
Di file CSS atau `` tag di QWeb:
```css
.no-break-block {
page-break-inside: avoid;
}
tr {
page-break-inside: avoid;
}
```



2. Manfaatkan `page-break-after: avoid;`
Properti ini mencegah page break terjadi setelah elemen tempat style ini diterapkan.
Kapan Dipakai?
Ideal untuk menjaga agar judul atau sub-judul laporan tidak terpisah dari paragraf atau blok detail yang mengikutinya. Misalnya, Mas Ridwan punya `

Ringkasan Pesanan

` dan di bawahnya langsung ada detail ringkasan. Aplikasikan `page-break-after: avoid;` ke tag `

` agar judul tersebut selalu berada di halaman yang sama dengan paragraf di bawahnya.
Cara Penerapan:
```xml

Detail Produk



  • Produk A

  • Produk B


```



3. Gunakan `page-break-before: always;` untuk Halaman Baru
Jika Mas Ridwan ingin sebuah bagian laporan (misalnya syarat dan ketentuan, atau lampiran) selalu dimulai di halaman baru, properti ini sangat berguna.
Kapan Dipakai?
Untuk memaksa suatu bagian laporan selalu dimulai dari halaman baru, seperti halaman Terms & Conditions atau halaman tanda tangan.
Cara Penerapan:
```xml

Syarat dan Ketentuan


Isi syarat dan ketentuan...



```



4. Perhatikan Struktur HTML (QWeb)
Kadang, masalah page break juga bisa dipengaruhi oleh struktur HTML yang terlalu kompleks atau nested. Usahakan untuk menjaga struktur laporan se-sederhana mungkin, terutama di area yang rentan terhadap page break. Elemen `display: flex` atau `display: grid` terkadang juga bisa menimbulkan tantangan dengan page break, jadi gunakan dengan bijak atau tes berulang kali jika menggunakannya.



5. Iterasi dan Tes Berulang
Pengaturan page break ini memang butuh sedikit "trial and error", Mas Ridwan. Setelah menerapkan properti CSS di atas, selalu generate PDF laporan dan cek hasilnya. Apakah sudah sesuai keinginan? Jika belum, coba geser-geser properti CSS ke elemen parent atau child yang berbeda sampai mendapatkan hasil yang optimal.



Jadi, intinya, kuncinya ada di properti CSS `page-break-inside: avoid;` untuk mencegah pemotongan blok, `page-break-after: avoid;` untuk menjaga elemen agar tidak terpisah dari elemen selanjutnya, dan `page-break-before: always;` untuk memaksa halaman baru.

Semoga tips ini membantu Mas Ridwan dan tim IT dalam membuat laporan Odoo yang lebih rapi dan mudah dibaca ya! Semangat bereksperimennya!

Berikan Tanggapan

⚠️ Anti-Spam Aktif: Dilarang menyertakan tautan/URL di dalam form ini.
Butuh Konsultasi Odoo? 👋
Scroll to Top