Update PDF generation to match reference design and improve alignment

Revert PDF cell padding and text alignment to match the reference design, ensuring centered content and vertical alignment.
This commit is contained in:
Riyadh
2026-05-04 10:06:22 +00:00
parent 50bb224060
commit 260716a33f
2 changed files with 6 additions and 4 deletions
Binary file not shown.
+6 -4
View File
@@ -815,7 +815,7 @@ export async function renderSchedulePdf(input: RenderPdfInput): Promise<Buffer>
const headerWidths = isRtl ? [...colWidths].reverse() : colWidths; const headerWidths = isRtl ? [...colWidths].reverse() : colWidths;
const cellPadX = 4; const cellPadX = 4;
const cellPadY = 2; const cellPadY = 0;
const lineHeight = input.font.fontSize * 1.05; const lineHeight = input.font.fontSize * 1.05;
function drawHeader(): number { function drawHeader(): number {
@@ -862,7 +862,7 @@ export async function renderSchedulePdf(input: RenderPdfInput): Promise<Buffer>
{ {
text: htmlToPlain(isRtl ? meeting.titleAr : meeting.titleEn || meeting.titleAr) + text: htmlToPlain(isRtl ? meeting.titleAr : meeting.titleEn || meeting.titleAr) +
(meeting.location ? `\n${meeting.location}` : ""), (meeting.location ? `\n${meeting.location}` : ""),
align: isRtl ? "right" : "left", align: "center",
}, },
{ {
text: text:
@@ -896,7 +896,7 @@ export async function renderSchedulePdf(input: RenderPdfInput): Promise<Buffer>
flushGroup(); flushGroup();
return parts.join("\n"); return parts.join("\n");
})(), })(),
align: isRtl ? "right" : "left", align: "center",
}, },
{ {
text: formatTimeRange(meeting.startTime, meeting.endTime, input.lang), text: formatTimeRange(meeting.startTime, meeting.endTime, input.lang),
@@ -992,7 +992,9 @@ export async function renderSchedulePdf(input: RenderPdfInput): Promise<Buffer>
const c = cells[i]; const c = cells[i];
const cellW = widths[i] - cellPadX * 2; const cellW = widths[i] - cellPadX * 2;
const textLines = c.text.split("\n"); const textLines = c.text.split("\n");
let y = rowTop + cellPadY; const contentH = cellHeights[i] - cellPadY * 2;
const vOffset = Math.max(0, (rowHeight - cellPadY * 2 - contentH) / 2);
let y = rowTop + cellPadY + vOffset;
for (const tl of textLines) { for (const tl of textLines) {
if (y >= rowBottom) break; if (y >= rowBottom) break;
if (!tl) { y += lineHeight; continue; } if (!tl) { y += lineHeight; continue; }