// most of this is cribbed from https://www.npmjs.com/package/svgs2pdf, but that // tool is CLI-only and wasn't generating PDFs at the right scale import puppeteer from 'puppeteer'; import Path from 'path'; interface SvgToPdfOptions { svgs: string[]; } export async function convertSvgsToPdf({ svgs }: SvgToPdfOptions): Promise { const browser = await puppeteer.launch({ args: ['--disable-dev-shm-usage', '--no-sandbox', '--allow-file-access-from-files', '--enable-local-file-accesses'], }); const page = await browser.newPage(); const pdfFiles: string[] = []; for (let index = 0; index < svgs.length; index++) { const svg = svgs[index]; const filename = Path.resolve(__dirname, `../pdfs/output-${index}.pdf`); const content = ` ${svg} `; await page.setContent(content); await page.pdf({ path: filename, format: 'Letter' }); pdfFiles.push(filename); } await browser.close(); return pdfFiles; }