index.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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 = getDate()+(args.path || 'index.pdf');
  8. const filePath = (args.path || 'index.pdf');
  9. const puppeteer = require('puppeteer');
  10. const saveScreenshot = async (url) => {
  11. if (!url) {
  12. return;
  13. }
  14. // 启动浏览器
  15. const browser = await puppeteer.launch({
  16. args: ['--no-sandbox'],
  17. headless: headless === 'true',
  18. devtools: false
  19. });
  20. // 打开页面
  21. const page = await browser.newPage();
  22. // 设置浏览器视窗
  23. page.setViewport({
  24. width: 1123,
  25. height: 1080,
  26. });
  27. // 地址栏输入网页地址
  28. await page.goto(url, {
  29. // 等界面加载完
  30. waitUntil: 'networkidle0'
  31. });
  32. await page.addStyleTag({ path: './style.css' });
  33. await page.pdf({
  34. path: filePath,
  35. printBackground: true,
  36. displayHeaderFooter: false,
  37. margin: {
  38. top: '1.27cm',
  39. bottom: '1.27cm',
  40. left: '1.27cm',
  41. right: '1.27cm'
  42. },
  43. format: 'A4'
  44. });
  45. // 关闭浏览器
  46. await browser.close();
  47. };
  48. saveScreenshot(`${url}`);
  49. function getDate(){
  50. var myDate = new Date();
  51. //获取当前年
  52. var year = myDate.getFullYear();
  53. //获取当前月
  54. var month = myDate.getMonth() + 1;
  55. //获取当前日
  56. var date = myDate.getDate();
  57. var h = myDate.getHours(); //获取当前小时数(0-23)
  58. var m = myDate.getMinutes(); //获取当前分钟数(0-59)
  59. var s = myDate.getSeconds();
  60. //获取当前时间
  61. var now = year + '' + conver(month) + "" + conver(date) + conver(h) + "" + conver(m) + "" + conver(s);
  62. return now;
  63. }
  64. //日期时间处理
  65. function conver(s) {
  66. return s < 10 ? '0' + s : s;
  67. }