diff --git a/app/Http/Controllers/Admin/CertificateTemplateController.php b/app/Http/Controllers/Admin/CertificateTemplateController.php index 8e78c00..05d9f32 100644 --- a/app/Http/Controllers/Admin/CertificateTemplateController.php +++ b/app/Http/Controllers/Admin/CertificateTemplateController.php @@ -55,6 +55,7 @@ class CertificateTemplateController extends Controller 'fields.*.x' => 'required|integer|min:0', 'fields.*.y' => 'required|integer|min:0', 'fields.*.font_size' => 'required|integer|min:8|max:200', + 'fields.*.ic_font_size' => 'nullable|integer|min:8|max:200', 'fields.*.font_color' => 'required|string|max:20', 'fields.*.align' => 'required|in:left,center,right', ]); diff --git a/app/Services/CertificateService.php b/app/Services/CertificateService.php index 55172f6..fd07c4a 100644 --- a/app/Services/CertificateService.php +++ b/app/Services/CertificateService.php @@ -90,13 +90,14 @@ class CertificateService return $image->encode(new JpegEncoder(85))->toString(); } - // Tulis IC di bawah nama — auto-posisi, font 50% nama + // Tulis IC di bawah nama — auto-posisi Y, saiz font dari config atau fallback 70% private function writeIcBelow(\Intervention\Image\Interfaces\ImageInterface $image, string $ic, array $nameCfg): void { $nameFontSize = (int) ($nameCfg['font_size'] ?? 48); - $icFontSize = (int) round($nameFontSize * 0.5); + $icFontSize = isset($nameCfg['ic_font_size']) && (int) $nameCfg['ic_font_size'] > 0 + ? (int) $nameCfg['ic_font_size'] + : (int) round($nameFontSize * 0.7); - // Y offset: line height nama (1.4×) + sedikit jarak $icY = (int) ($nameCfg['y'] ?? 0) + (int) round($nameFontSize * 1.5); $this->writeText($image, $ic, array_merge($nameCfg, [ diff --git a/resources/views/admin/programs/template/show.blade.php b/resources/views/admin/programs/template/show.blade.php index 79fe93b..41f4f5f 100644 --- a/resources/views/admin/programs/template/show.blade.php +++ b/resources/views/admin/programs/template/show.blade.php @@ -175,6 +175,12 @@ class="form-control form-control-color form-control-sm" value="{{ $fields['name']['font_color'] ?? '#1a3a6b' }}"> +
+ + +