From 5ca33cb24b56eade47efdf54abd8295771384dd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Tue, 10 Mar 2026 09:24:00 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20[payroll]=20PDF=20=EA=B8=89=EC=97=AC?= =?UTF-8?q?=EB=AA=85=EC=84=B8=EC=84=9C=20=EB=A0=88=EC=9D=B4=EC=95=84?= =?UTF-8?q?=EC=9B=83=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 사원정보 테이블 colgroup으로 너비 고정 (오버플로우 해결) - footer를 table 기반으로 변경 (dompdf float 미지원) - 회사명 문자 인코딩 수정 --- resources/views/emails/payslip.blade.php | 50 ++++++++++++++---------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/resources/views/emails/payslip.blade.php b/resources/views/emails/payslip.blade.php index 1fadb000..9a621933 100644 --- a/resources/views/emails/payslip.blade.php +++ b/resources/views/emails/payslip.blade.php @@ -7,20 +7,18 @@ body { font-family: 'Noto Sans KR', 'Malgun Gothic', 'Apple SD Gothic Neo', sans-serif; margin: 0; padding: 20px; background: #fff; } .container { max-width: 720px; margin: 0 auto; background: #fff; padding: 40px 36px; } h1 { text-align: center; font-size: 22px; font-weight: 800; letter-spacing: 2px; margin: 0 0 28px; border-bottom: 3px solid #333; padding-bottom: 16px; } - .info-table { width: 100%; border-collapse: collapse; margin-bottom: 20px; } - .info-table td { padding: 6px 10px; font-size: 13px; border: 1px solid #999; } - .info-table .label { font-weight: bold; background: #f0f0f0; width: 70px; white-space: nowrap; } - .info-table .value { min-width: 100px; } + .info-table { width: 100%; border-collapse: collapse; margin-bottom: 20px; table-layout: fixed; } + .info-table td { padding: 6px 8px; font-size: 12px; border: 1px solid #999; overflow: hidden; } + .info-table .label { font-weight: bold; background: #f0f0f0; text-align: center; } .payslip-table { width: 100%; border-collapse: collapse; margin-bottom: 0; } .payslip-table th, .payslip-table td { border: 1px solid #999; padding: 7px 12px; font-size: 13px; } .payslip-table th { background: #e8e8e8; font-weight: 700; text-align: center; letter-spacing: 4px; } .payslip-table .item-name { text-align: center; } - .payslip-table .item-amount { text-align: right; font-variant-numeric: tabular-nums; } + .payslip-table .item-amount { text-align: right; } .payslip-table .total-row td { font-weight: 700; background: #f8f8f8; } .payslip-table .net-row td { font-weight: 800; font-size: 14px; background: #f0f7ff; } - .footer { margin-top: 20px; padding-top: 12px; font-size: 12px; color: #666; overflow: hidden; } - .footer .left { float: left; } - .footer .right { float: right; } + .footer-table { width: 100%; margin-top: 20px; padding-top: 12px; border: none; } + .footer-table td { font-size: 12px; color: #666; border: none; padding: 0; } @@ -29,21 +27,29 @@ {{-- 사원 정보 --}} + + + + + + + + - + - + - + - - - - - - + + + + + +
사원코드{{ $payslipData['employee_code'] ?? '-' }}{{ $payslipData['employee_code'] ?? '-' }} 사원명{{ $payslipData['employee_name'] ?? '-' }}{{ $payslipData['employee_name'] ?? '-' }} 입사일{{ $payslipData['hire_date'] ?? '-' }}{{ $payslipData['hire_date'] ?? '-' }}
부 서{{ $payslipData['department'] ?? '-' }}직 급{{ $payslipData['position'] ?? '-' }}호 봉{{ $payslipData['grade'] ?? '-' }}부서{{ $payslipData['department'] ?? '-' }}직급{{ $payslipData['position'] ?? '-' }}호봉{{ $payslipData['grade'] ?? '-' }}
@@ -100,10 +106,12 @@ - + + + + + +