Puppeteer Simple Use Pdf
@ JunJian Feng | 星期二,三月 9 日,2021 年 | 1 分钟阅读 | 更新于 星期二,三月 9 日,2021 年

项目初始化

npm init
npm i puppeteer

puppeteer PDF官方示例(指令参数改动)pdf参数


var url  = process.argv[2];
var path = process.argv[3];

if(!url || !path) return;

var format = process.argv[4] ? process.argv[4]:'A4';

const puppeteer = require('puppeteer');

(async () => {
	const browser = await puppeteer.launch();
	const page = await browser.newPage();
	await page.goto(url, {
		waitUntil: 'networkidle2',
	});
	await page.pdf({
		path: path,
		format: format,
	});

  	await browser.close();
})();

// node index.js https://www.oschina.net/ C:/works/aa.pdf

ts的使用参考这里


import * as puppeteer from 'puppeteer'
import * as chalk from 'chalk'

async function main(url:string,path:string,format:any) {
    const browser = await puppeteer.launch();
    try {
        const page = await browser.newPage();
        await page.goto(url, {
        waitUntil: 'networkidle2',
        });

        await page.pdf({
            path: path,
            format: format
            // headerTemplate // 页眉的html模板
            // footerTemplate // 页脚的html模板
        });
        await browser.close();
    } catch (error) {
        console.log(error)
        console.log(chalk.red('服务意外终止'))
        await browser.close();
    } finally {
        process.exit(0)
    }
    
}

var url:string  = process.argv[2];
var path:string = process.argv[3];
if(url && path){
    var format:string = process.argv[4] ? process.argv[4]:'A4';
    main(url,path,format)
}

// tsc use.js
// node use.js https://www.oschina.net/ C:/works/aa.pdf

膜拜大佬