var html_to_pdf = require('html-pdf-node'); exports.handler = async function (event, context) { console.log('body', event.body); const pdfBuffer = await generateCertificate(event.body); return { isBase64Encoded: true, statusCode: 200, headers: { 'Content-Type': 'application/pdf' }, body: pdfBuffer, }; }; function getHtmlTemplate(body) { return ` Certificate ${body} `; } function getProfessionalTheme({ studentName, courseName, courseDescription, orgLogoUrl, orgName, }) { const themeBody = `

Certificate
of completion

This is to certify that

${studentName}

has successfully completed introductory courses in

${courseName}

${courseDescription}

logo

${orgName}

`; return getHtmlTemplate(themeBody); } function getPlainTheme({ studentName, courseName, courseDescription, orgLogoUrl, orgName, }) { const themeBody = `
logo

${orgName}

Certificate of completion

This is to certify that

${studentName}

has successfully completed a courses in

${courseName}

${courseDescription}

`; return getHtmlTemplate(themeBody); } const generateCertificate = ({ theme, studentName, courseName, courseDescription, orgLogoUrl, orgName, }) => { const params = { studentName, courseName, courseDescription, orgLogoUrl, orgName, }; console.log('theme', theme); const html = theme === 'plain' ? getPlainTheme(params) : getProfessionalTheme(params); console.log('body', html); return html_to_pdf.generatePdf({ content: html }, { format: 'A4' }); };