html2pdf.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. const fs = require('fs');
  2. const path = require('path');
  3. const args = require('minimist')(process.argv.slice(2));
  4. const headless = args.headless || 'true';
  5. const url = args.url || 'true';
  6. const token = args.token || '';
  7. const filePath = args.path || 'index.pdf';
  8. const puppeteer = require('puppeteer');
  9. const saveScreenshot = async (url) => {
  10. if (!url) {
  11. browser.close();
  12. return;
  13. }
  14. // 启动浏览器
  15. const browser = await puppeteer.launch({
  16. headless: headless === 'true',
  17. devtools: false
  18. });
  19. // 打开页面
  20. const page = await browser.newPage();
  21. // 设置浏览器视窗
  22. page.setViewport({
  23. width: 1123,
  24. height: 1080,
  25. })
  26. // 地址栏输入网页地址
  27. await page.goto(url, {
  28. // 等界面加载完
  29. waitUntil: 'networkidle0'
  30. });
  31. await page.pdf({
  32. path: filePath,
  33. printBackground: true,
  34. displayHeaderFooter: false,
  35. margin: {
  36. top: '2.54cm',
  37. bottom: '2.54cm',
  38. left: '1.27cm',
  39. right: '1.27cm'
  40. },
  41. format: 'A4'
  42. });
  43. // 关闭浏览器
  44. await browser.close();
  45. };
  46. saveScreenshot(`${url}?token=${token}`);