我有一个小的 javascript 设置,可以使用 javascript 库 puppeteer 将 html 转换为 pdf。
通过打开命令面板并启动
node index.js
来托管服务,一切正常。 express-api 在预定义端口下托管服务并请求该服务,我会收到转换后的 PDF。
现在,使用库
node-windows
将 javascript 安装为 Windows 服务并请求服务,我收到以下错误消息:
Failed to launch the browser process!
现在我不知道该去哪里寻找根本原因。这可能是权限问题吗?
遵循我的 puppeteer javascript 代码:
const ValidationError = require('./../errors/ValidationError.js')
const puppeteer = require('puppeteer-core');
module.exports = class PdfService{
static async htmlToPdf(html){
if(!html){
throw new ValidationError("no html");
}
const browser = await puppeteer.launch({
headless: true,
executablePath: process.env.EDGE_PATH,
args: ["--no-sandbox"]
});
const page = await browser.newPage();
await page.setContent(html, {
waitUntil: "networkidle2"
});
const pdf = await page.pdf({format: 'A4',printBackground: true});
await browser.close();
return pdf;
}
}
启用与桌面交互就足够了,不需要从
Local System Account
更改为其他帐户。
步骤:
打开
Services
仔细检查特定服务将启动 Puppeteer
切换到
Log On
选项卡
检查/启用
Allow service to interact with desktop