You can capture the total website page as pdf using Puppeteer's pdf() function. You can only convert the website to pdf when you are running in headless mode.
const puppeteer = require('puppeteer');
async function run(){
const browser = await puppeteer.launch()
const page = await browser.newPage();
await page.goto('https://chercher.tech');
await page.pdf({path: 'website_as_pdf.pdf', format: 'A4'});
await browser.close();
}
run()

You can have the pdf in different sizes, In the above example, I am using with A4 size.
I am Pavankumar, Having 8.5 years of experience currently working in Video/Live Analytics project.