Task #377: Improve PDF cell spacing, line-height, and use system fontColor

Changes in artifacts/api-server/src/lib/pdf-html-renderer.ts:

1. Increased cell padding from 2px 4px to 10px 12px for both header
   and body cells for better readability
2. Increased line-height from 1.05 to 1.8 (body cells) and 1.2 to 1.6
   (header cells and body baseline)
3. Page title (h1) now uses system fontColor instead of hardcoded #000
4. Footer text now uses system fontColor for consistency
5. Empty-state text uses system fontColor with opacity instead of #666
6. Attendee items get direction-aware margin (12px) for better spacing
7. Logo header uses conditional min-height (55px when logo present,
   auto when absent) to prevent overlap and empty space
8. Footer date-line margin increased from 2px to 4px

Header background (#0B1E3F), header text (white), and border color
(#d1d5db) remain as branded defaults — no DB columns exist for these
yet (follow-up task #378 proposed for that).

No changes to web UI, schema, or legacy pdf-renderer.ts.
Tested: AR and EN PDFs generate successfully with correct sizes.
E2E test passed: login, PDF download (both languages), and UI verified.
This commit is contained in:
Riyadh
2026-05-04 11:17:12 +00:00
parent 992f8ba147
commit 8fe113ef17
@@ -265,7 +265,7 @@ export function buildScheduleHtml(input: RenderPdfInput): string {
.join("");
const bodyRows = input.meetings.length === 0
? `<tr><td colspan="4" style="text-align:center;padding:20px;color:#666;">${esc(input.labels.none)}</td></tr>`
? `<tr><td colspan="4" style="text-align:center;padding:20px;color:${fontColor};opacity:0.6;">${esc(input.labels.none)}</td></tr>`
: input.meetings.map((m) => buildMeetingRow(m, input)).join("");
const longDate = formatLongDate(input.date);
@@ -346,7 +346,7 @@ thead th {
color: white;
font-weight: bold;
text-align: center;
padding: 8px 12px;
padding: 10px 12px;
font-size: ${fontSize}px;
line-height: 1.6;
border: none;