最近工具箱增加的一个功能:
代码如下:
const puppeteer = require('puppeteer');
const moment = require('moment');const TAG = '[convertTopPdf]';async function html2pdf(url, wantFileName) {console.log(TAG, 'convertTopPdf start, url:', url);const now = new Date();const formattedDate = moment(now).format('YYYYMMDDHHmmss');const saveFileName = wantFileName ? wantFileName : `${formattedDate}.pdf`;console.log(TAG, 'convertTopPdf start, url:', url, ', saveFileName:', saveFileName);const browser = await puppeteer.launch({headless: true,args:['--no-sandbox', '--disable-web-security'],});const page = await browser.newPage();await page.setUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36');await page.setBypassCSP(true);await page.goto(url, {waitUntil: 'networkidle0'});await page.emulateMediaType('screen');await page.pdf({path: saveFileName,printBackground: true,format: 'A5'});await browser.close();console.log(TAG, 'convertTopPdf end');
}module.exports = {html2pdf};