index.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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 puppeteer = require('puppeteer');
  9. const saveScreenshot = async (url) => {
  10. if (!url) {
  11. return;
  12. }
  13. // 启动浏览器
  14. const browser = await puppeteer.launch({
  15. args: ['--no-sandbox'],
  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.addStyleTag({ path: './style.css' });
  32. await page.pdf({
  33. path: filePath,
  34. printBackground: true,
  35. displayHeaderFooter: false,
  36. margin: {
  37. top: '1.27cm',
  38. bottom: '1.27cm',
  39. left: '1.27cm',
  40. right: '1.27cm'
  41. },
  42. format: 'A4'
  43. });
  44. // 关闭浏览器
  45. await browser.close();
  46. };
  47. saveScreenshot(`${url}`);
  48. function getDate(){
  49. var myDate = new Date();
  50. //获取当前年
  51. var year = myDate.getFullYear();
  52. //获取当前月
  53. var month = myDate.getMonth() + 1;
  54. //获取当前日
  55. var date = myDate.getDate();
  56. var h = myDate.getHours(); //获取当前小时数(0-23)
  57. var m = myDate.getMinutes(); //获取当前分钟数(0-59)
  58. var s = myDate.getSeconds();
  59. //获取当前时间
  60. var now = year + '' + conver(month) + "" + conver(date) + conver(h) + "" + conver(m) + "" + conver(s);
  61. return now;
  62. }
  63. //日期时间处理
  64. function conver(s) {
  65. return s < 10 ? '0' + s : s;
  66. }