12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- const fs = require('fs')
- const path = require('path')
- const args = require('minimist')(process.argv.slice(2))
- const headless = args.headless || 'true'
- const url = args.url || 'true'
- const token = args.token || ''
- // const filePath = getDate()+(args.path || 'index.pdf');
- const filePath = (args.path || 'index.pdf')
- const puppeteer = require('puppeteer')
- const sleep = (delay) => new Promise((resolve) => setTimeout(resolve, delay))
- const saveScreenshot = async(url) => {
- if (!url) {
- return
- }
- // 启动浏览器
- const browser = await puppeteer.launch({
- args: ['--no-sandbox'],
- headless: headless === 'true',
- devtools: false
- })
- // 打开页面
- const page = await browser.newPage()
- // 设置浏览器视窗
- page.setViewport({
- width: 1123,
- height: 1080
- })
- // 地址栏输入网页地址
- await page.goto(url, {
- // 等界面加载完
- waitUntil: 'networkidle0'
- })
- await page.addStyleTag({ path: './style.css' })
- await sleep(50) // NOTE: 请求完毕不代表VUE运行完毕(比如el-table的resizeHandler),再等个小周期
- await page.pdf({
- path: filePath,
- printBackground: true,
- displayHeaderFooter: false,
- margin: {
- top: '1.27cm',
- bottom: '1.27cm',
- left: '1.27cm',
- right: '1.27cm'
- },
- format: 'A4'
- })
- // 关闭浏览器
- await browser.close()
- }
- saveScreenshot(`${url}`)
- function getDate() {
- var myDate = new Date()
- //获取当前年
- var year = myDate.getFullYear()
- //获取当前月
- var month = myDate.getMonth() + 1
- //获取当前日
- var date = myDate.getDate()
- var h = myDate.getHours() //获取当前小时数(0-23)
- var m = myDate.getMinutes() //获取当前分钟数(0-59)
- var s = myDate.getSeconds()
- //获取当前时间
- var now = year + '' + conver(month) + '' + conver(date) + conver(h) + '' + conver(m) + '' + conver(s)
- return now
- }
- //日期时间处理
- function conver(s) {
- return s < 10 ? '0' + s : s
- }
|