base structure for list printing with custom template

This commit is contained in:
Julian Krauser 2025-03-18 16:54:53 +01:00
parent e2a916f37d
commit a085de6e2f
19 changed files with 279 additions and 98 deletions

View file

@ -12,6 +12,7 @@ export abstract class PdfExport {
data = {},
saveToDisk = true,
folder = "",
customTemplate = undefined,
}: {
template: `${PermissionModule}` | `${PermissionModule}.${string}`;
title?: string;
@ -19,16 +20,34 @@ export abstract class PdfExport {
data?: any;
saveToDisk?: boolean;
folder?: string;
customTemplate?: {
headerId?: number;
footerId?: number;
bodyId?: string | number;
headerHeight: number;
footerHeight: number;
};
}) {
if (folder != "") FileSystemHelper.createFolder(folder);
const { header, footer, body, headerMargin, footerMargin } = await TemplateHelper.renderFileForModule({
module: template,
headerData: data,
bodyData: data,
footerData: data,
title: title,
});
let header: string, footer: string, body: string, headerMargin: number, footerMargin: number;
if (!customTemplate) {
({ header, footer, body, headerMargin, footerMargin } = await TemplateHelper.renderFileForModule({
module: template,
headerData: data,
bodyData: data,
footerData: data,
title: title,
}));
} else {
({ header, footer, body, headerMargin, footerMargin } = await TemplateHelper.renderFileForCustom({
customTemplate,
headerData: data,
bodyData: data,
footerData: data,
title: title,
}));
}
const browser = await puppeteer.launch({
headless: true,