|
@@ -3,6 +3,19 @@ const logger = require('../log/index')
|
|
|
const puppeteer = require('puppeteer');
|
|
|
const fs = require('fs')
|
|
|
const path = require('path')
|
|
|
+const {init} = require("../../../js-error/js/web");
|
|
|
+
|
|
|
+
|
|
|
+// 生成
|
|
|
+async function initBrowser () {
|
|
|
+ logger.log.debug('启动', new Date().toLocaleString())
|
|
|
+ return await puppeteer.launch({
|
|
|
+ headless: true,
|
|
|
+ args: ['--no-sandbox', '--disable-setuid-sandbox']
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+let browser = null
|
|
|
|
|
|
function checkCache (fPath) {
|
|
|
try {
|
|
@@ -30,6 +43,9 @@ function wait(ms) {
|
|
|
|
|
|
|
|
|
async function createPDFOfURL (url, config = {}) {
|
|
|
+ if (!browser) {
|
|
|
+ browser = await initBrowser()
|
|
|
+ }
|
|
|
config = Object.assign( {
|
|
|
filename: '',
|
|
|
dir: '',
|
|
@@ -56,27 +72,21 @@ async function createPDFOfURL (url, config = {}) {
|
|
|
return result
|
|
|
}
|
|
|
}
|
|
|
- // 生成
|
|
|
- logger.log.debug('启动', new Date().toLocaleString())
|
|
|
- const browser = await puppeteer.launch({
|
|
|
- headless: true,
|
|
|
- args: ['--no-sandbox', '--disable-setuid-sandbox']
|
|
|
- });
|
|
|
+ const page = await browser.newPage();
|
|
|
try {
|
|
|
- const page = await browser.newPage();
|
|
|
await page.setDefaultNavigationTimeout(0)
|
|
|
await page.goto(url, {waitUntil: 'networkidle2'});
|
|
|
await wait(config.delay || 1000)
|
|
|
logger.log.debug('等待生成', new Date().toLocaleString())
|
|
|
|
|
|
await page.pdf(outConfig);
|
|
|
- await browser.close();
|
|
|
+ await page.close();
|
|
|
|
|
|
logger.log.debug('当前时间', new Date().toLocaleString())
|
|
|
return outConfig.path
|
|
|
} catch (e) {
|
|
|
logger.log.debug(e)
|
|
|
- await browser.close();
|
|
|
+ await page.close();
|
|
|
}
|
|
|
}
|
|
|
|