Matt Herbstritt
Matt Herbstritt

Reputation: 4862

Puppeteer - ProtocolError: Protocol error (Page.printToPDF): Printing is not available

I get the below error when trying to print PDF with Puppetter. I've not been able to find much information about this error online. Does this mean this particular page just doesn't support PDF or is there a setting in my code that could ammend this? Any help would be appreciated.

enter image description here

export const create = async (dev: boolean = true) => {
        
        const username = process.env.USERNAME;
        const password = process.env.PASSWORD;
    
        const options = dev
            ? {
                    headless: false,
                    slowMo: 25, 
              }
            : {};
    
        const browser = await Puppeteer.launch(options);
        const page = await browser.newPage();
    
        await page.goto(LOGIN_URL, {
            waitUntil: "networkidle2",
        });
    
        await page.type(USERNAME_INPUT_ID, username);
        
        const passwordInputHandle = await page.$(PASSWORD_INPUT_ID);
        await passwordInputHandle.type(password);
        await passwordInputHandle.press("Enter");
    
        await page.pdf({ path: path.join(TEMP_FOLDER, "hn.pdf"), format: "a4" });
    
        await browser.close();
    };

Upvotes: 13

Views: 12402

Answers (1)

Silvan Bregy
Silvan Bregy

Reputation: 2734

PDF creation is only supported in headless mode.

So this should work:

const browser = await Puppeteer.launch({ headless: true });

Upvotes: 25

Related Questions