分享段 HTML to PDF 的 NodeJs代码

最近工具箱增加的一个功能:
在这里插入图片描述

代码如下:

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};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值