Added spacing & underline

X-Lovable-Edit-ID: edt-e72a4c8f-8eaa-4451-9b6c-576f2503cc7a
Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com>
This commit is contained in:
gpt-engineer-app[bot]
2026-04-18 19:01:45 +00:00
co-authored by renee-png
2 changed files with 24 additions and 4 deletions
+9 -1
View File
@@ -316,8 +316,16 @@ export function buildPleadingDoc(input: PleadingInput): Document {
const bodyParagraphs: Paragraph[] = [];
if (input.title) {
// Render title as one centered paragraph per manual line; underline only the last line.
bodyParagraphs.push(emptyP());
bodyParagraphs.push(p(input.title.toUpperCase(), { bold: true, align: AlignmentType.CENTER }));
const segments = input.title.toUpperCase().split("\n");
const lastIdx = segments.length - 1;
segments.forEach((seg, i) => {
bodyParagraphs.push(new Paragraph({
alignment: AlignmentType.CENTER,
children: [run(seg, { bold: true, underline: i === lastIdx })],
}));
});
bodyParagraphs.push(emptyP());
}
if (input.bodyHtml && input.bodyHtml.trim()) {
+15 -3
View File
@@ -258,10 +258,22 @@ export async function downloadPleadingPdf(input: PleadingInput, filename: string
y = captionEndY + LINE_H;
if (input.title) {
ensureSpace(LINE_H * 2);
setFont(pdf, { bold: true });
pdf.text(input.title.toUpperCase(), PAGE_W / 2, y, { align: "center" });
y += LINE_H * 1.5;
const titleText = input.title.toUpperCase();
const titleLines = pdf.splitTextToSize(titleText, CONTENT_W) as string[];
ensureSpace(LINE_H * (titleLines.length + 2));
y += LINE_H; // one blank line before title
titleLines.forEach((line, i) => {
const isLast = i === titleLines.length - 1;
pdf.text(line, PAGE_W / 2, y, { align: "center" });
if (isLast) {
const tw = pdf.getTextWidth(line);
pdf.setLineWidth(0.6);
pdf.line((PAGE_W - tw) / 2, y + 1.5, (PAGE_W + tw) / 2, y + 1.5);
}
y += LINE_H;
});
y += LINE_H; // one blank line after title
}
setFont(pdf, {}); // reset to non-bold for body