feat(webstatement): tambah opsi Browsershot untuk stabilitas PDF generation

Perubahan yang dilakukan:
- Menambahkan setOption('headless', true) untuk menjalankan Chrome dalam mode headless.
- Menambahkan opsi noSandbox() untuk menghindari masalah permission di environment server.
- Menggunakan waitUntilNetworkIdle() agar memastikan seluruh resource dimuat sebelum proses render.
- Menerapkan konfigurasi ini pada ExportStatementPeriodJob, GenerateMultiAccountPdfJob, dan PrintStatementController.
- Meningkatkan stabilitas dan performa proses PDF generation di environment production.
- Mengurangi potensi error dan timeout saat melakukan rendering PDF.
- Memastikan semua asset dan resource termuat sempurna sebelum PDF dihasilkan.

Tujuan perubahan:
- Menjamin proses PDF generation berjalan lebih andal di berbagai environment server.
- Mengurangi risiko kegagalan akibat resource belum termuat saat rendering.
- Menyelaraskan konfigurasi Browsershot dengan best practice untuk environment production.
This commit is contained in:
Daeng Deni Mardaeni
2025-07-11 08:28:04 +07:00
parent 2b39c5190b
commit efabba4c39
3 changed files with 10 additions and 1 deletions

View File

@@ -1033,10 +1033,13 @@ ini_set('max_execution_time', 300000);
Browsershot::html($html)
->showBackground()
->setOption('addStyleTag', json_encode(['content' => '@page { margin: 0; }']))
->setOption('protocolTimeout', 2147483) // 120000 ms = 2 menit
->setOption('protocolTimeout', 2147483) // 120000 ms = 2 menit
->setOption('headless', true)
->noSandbox()
->format('A4')
->margins(0, 0, 0, 0)
->waitUntil('load')
->waitUntilNetworkIdle()
->timeout(2147483)
->save($tempPath);