🚀 feat(preview-laporan): Optimasi tampilan gambar dengan resize otomatis dan peningkatan DPI PDF
Perubahan pada PreviewLaporanService:
- Menambahkan set_option('dpi', '96') untuk meningkatkan kualitas render PDF
Perubahan pada foto-jaminan blade template:
- Implementasi helper function `resize_image()` untuk resize gambar jaminan
- Mengubah gambar asli menjadi versi yang sudah di-resize (800x400px, quality 25%)
- Mengoptimalkan ukuran file gambar untuk preview laporan
- Menjaga aspect ratio gambar tetap proporsional
- Meningkatkan performa loading gambar di PDF preview
Optimasi ini bertujuan untuk:
- Mengurangi ukuran file PDF hasil preview
- Meningkatkan kecepatan loading gambar
- Menjaga kualitas visual yang tetap baik
- Mengurangi memory usage saat generate PDF
This commit is contained in:
@@ -347,6 +347,7 @@ class PreviewLaporanService
|
|||||||
$pdf->setPaper('A4', 'portrait');
|
$pdf->setPaper('A4', 'portrait');
|
||||||
$pdf->set_option('isHtml5ParserEnabled', true);
|
$pdf->set_option('isHtml5ParserEnabled', true);
|
||||||
$pdf->set_option('isPhpEnabled', true);
|
$pdf->set_option('isPhpEnabled', true);
|
||||||
|
$pdf->set_option('dpi', '96');
|
||||||
|
|
||||||
return $pdf;
|
return $pdf;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -154,10 +154,12 @@
|
|||||||
? $fallbackPath
|
? $fallbackPath
|
||||||
: $originalPath;
|
: $originalPath;
|
||||||
|
|
||||||
|
$resizedPath = resize_image($pathToUse, 800, 400, 25);
|
||||||
|
|
||||||
$filePath =
|
$filePath =
|
||||||
$statusLpj == 1
|
$statusLpj == 1
|
||||||
? storage_path('app/public/' . $pathToUse)
|
? storage_path('app/public/' . $resizedPath)
|
||||||
: asset('storage/' . $pathToUse);
|
: asset('storage/' . $resizedPath);
|
||||||
|
|
||||||
$extension = strtolower(pathinfo($pathToUse, PATHINFO_EXTENSION));
|
$extension = strtolower(pathinfo($pathToUse, PATHINFO_EXTENSION));
|
||||||
$isImage = in_array($extension, [
|
$isImage = in_array($extension, [
|
||||||
@@ -248,12 +250,16 @@
|
|||||||
style="align-content: center; text-align: center; margin-bottom: 20px">
|
style="align-content: center; text-align: center; margin-bottom: 20px">
|
||||||
@foreach ($chunkedPhotos as $item)
|
@foreach ($chunkedPhotos as $item)
|
||||||
@php
|
@php
|
||||||
|
$originalPath = $item['path'];
|
||||||
|
$resizedPath = resize_image($originalPath, 800, 400, 25);
|
||||||
|
|
||||||
|
|
||||||
$filePath =
|
$filePath =
|
||||||
$statusLpj == 1
|
$statusLpj == 1
|
||||||
? storage_path('app/public/' . $item['path'])
|
? storage_path('app/public/' . $resizedPath)
|
||||||
: asset('storage/' . $item['path']);
|
: asset('storage/' . $resizedPath);
|
||||||
|
|
||||||
$extension = strtolower(pathinfo($item['path'], PATHINFO_EXTENSION));
|
$extension = strtolower(pathinfo($originalPath, PATHINFO_EXTENSION));
|
||||||
$isImage = in_array($extension, [
|
$isImage = in_array($extension, [
|
||||||
'jpg',
|
'jpg',
|
||||||
'jpeg',
|
'jpeg',
|
||||||
|
|||||||
Reference in New Issue
Block a user