Tyler Swartz
Tyler Swartz

Reputation: 21

Puppeteer / Heroku - page.pdf page-break different when in local vs production environment

I am attempting to generate a PDF of a page using Puppeteer.. in local development.. I am able to return the PDF with proper page breaks.. however in production (Heroku server) my PDF has page breaks in the middle of my content!

Here is the code:

const browser = await puppeteer.launch({
      headless: true,
      args: ['--no-sandbox', '--disable-setuid-sandbox']
    })
    console.log('browser has been opened')
    const page = await browser.newPage()
    page.setViewport({width: 1000, height: 1056})
    await page.waitFor(1000)
    await page.emulateMediaType('screen')
    await page.waitFor(5000)
    console.log('about to create PDF - standby')
    const pdf = await page.pdf({
      format: 'Letter',
      printBackground: true,
      path: MY PATH
    })
    console.log('pdf created')
    await browser.close()
    console.log('browser closed')
  }

Things I have tried..

@media print {
    .page {
        page-break-after: always;
    }
}

here is a screenshot of the weird page break for reference.. https://user-images.githubusercontent.com/31495981/72014061-2aba7000-322d-11ea-8334-1d1df80f41d5.png

Upvotes: 2

Views: 3537

Answers (1)

Igor Kurkov
Igor Kurkov

Reputation: 5066

puppyteer can't use page-break-<any> css rules with flexbox. Rewrite your css without flexbox and puppyteer will use page-break as should

Upvotes: 1

Related Questions