diff --git a/src/PdfCreator.ts b/src/PdfCreator.ts index efd360c..1155da0 100644 --- a/src/PdfCreator.ts +++ b/src/PdfCreator.ts @@ -32,6 +32,41 @@ export class PdfCreator { * Initializes i18n(ext), Handlebars and puppeteer. */ public async init() { + const minimal_args = [ + '--autoplay-policy=user-gesture-required', + '--disable-background-networking', + '--disable-background-timer-throttling', + '--disable-backgrounding-occluded-windows', + '--disable-breakpad', + '--disable-client-side-phishing-detection', + '--disable-component-update', + '--disable-default-apps', + '--disable-dev-shm-usage', + '--disable-domain-reliability', + '--disable-extensions', + '--disable-features=AudioServiceOutOfProcess', + '--disable-hang-monitor', + '--disable-ipc-flooding-protection', + '--disable-notifications', + '--disable-offer-store-unmasked-wallet-cards', + '--disable-popup-blocking', + '--disable-print-preview', + '--disable-prompt-on-repost', + '--disable-renderer-backgrounding', + '--disable-speech-api', + '--disable-sync', + '--hide-scrollbars', + '--ignore-gpu-blacklist', + '--metrics-recording-only', + '--mute-audio', + '--no-default-browser-check', + '--no-first-run', + '--no-pings', + '--no-zygote', + '--password-store=basic', + '--use-gl=swiftshader' + ]; + await i18next .use(Backend) .init({ @@ -46,7 +81,7 @@ export class PdfCreator { return i18next.t(str, PdfCreator.interpolations).toString(); } ); - this.browser = await puppeteer.launch({ headless: true }); + this.browser = await puppeteer.launch({ headless: true, args: minimal_args }); } /** @@ -58,24 +93,21 @@ export class PdfCreator { if (runners.length == 1 && Object.keys(runners[0]).length == 0) { runners[0] = this.generateEmptyRunner(); } - if (runners.length > 100) { + if (runners.length > 50) { let pdf_promises = new Array>(); let i, j; - for (i = 0, j = runners.length; i < j; i += 100) { - let chunk = runners.slice(i, i + 100); + for (i = 0, j = runners.length; i < j; i += 50) { + let chunk = runners.slice(i, i + 50); pdf_promises.push(this.generateSponsoringContract(chunk, locale)); } const pdfs = await Promise.all(pdf_promises); return await this.mergePdfs(pdfs); } - console.log("triggered") await i18next.changeLanguage(locale); const template_source = fs.readFileSync(`${this.templateDir}/sponsoring_contract.html`, 'utf8'); const template = Handlebars.compile(template_source); const result = template({ runners }) - console.log("finished: bars") const pdf = await this.renderPdf(result, { format: "A5", landscape: true }); - console.log("finished: puppet") return pdf }