feat(webstatement): tambah enkripsi password pada PDF statement

Perubahan yang dilakukan:
- Menambahkan PDFPasswordProtect::encrypt di dalam ExportStatementPeriodJob.
- Mengikuti pola implementasi yang telah digunakan pada CombinePdfJob.
- PDF statement kini otomatis diproteksi menggunakan password.
- Password diambil dari konfigurasi: webstatement.pdf_password.
- Menambahkan logging untuk memantau proses proteksi PDF.
- Menjamin pengelolaan file sementara berjalan aman dan rapi.
- Menjaga kompatibilitas ke belakang (backward compatible) dengan sistem PDF yang sudah ada.

Tujuan perubahan:
- Meningkatkan keamanan file PDF dengan proteksi password standar perusahaan.
- Memastikan proses enkripsi berjalan otomatis tanpa mengubah alur penggunaan yang ada.
- Memberikan visibilitas terhadap proses proteksi melalui log sistem.
This commit is contained in:
Daeng Deni Mardaeni
2025-07-10 14:13:16 +07:00
parent d4e6a3d73d
commit 593a4f0d9c
2 changed files with 36 additions and 18 deletions

View File

@@ -247,12 +247,13 @@ class GenerateMultiAccountPdfJob implements ShouldQueue
Browsershot::html($html)
->showBackground()
->setOption('addStyleTag', json_encode(['content' => '@page { margin: 0; }']))
->setOption('protocolTimeout', 2147483) // 2 menit timeout
->format('A4')
->margins(0, 0, 0, 0)
->waitUntilNetworkIdle()
->timeout(60000)
->waitUntil('load')
->timeout(2147483)
->save($pdfPath);
// Verify file was created
if (!file_exists($pdfPath)) {
throw new Exception('PDF file was not created');