javascript - Puppeteer 抛出无效参数错误

标签 javascript node.js npm chromium puppeteer

我正在尝试将 HTML 内容转换为 PDF,但在使用变量传递时,我收到了“比例参数无效”和“preferCSSPageSize”的信息。

错误消息:

Error: Protocol error (Page.printToPDF): Invalid parameters scale: double value expected; preferCSSPageSize: boolean value expected at Promise (/home/santhosh-4759/Downloads/node-v8.11.3-linux-x64/bin/node_modules/puppeteer/lib/Connection.js:202:56) at new Promise ()

使用的命令:

./node puppeteerpdf.js test.pdf 1 false '' '' false false 210mm 297mm 0 0 0 0 false 'htmlcontent'

这不起作用:

await page.pdf({path: output, scale: vcale, displayHeaderFooter: displayHeaderFooter, headerTemplate: headerTemplate, footerTemplate: footerTemplate, printBackground: printBackground, landscape: landscape, width: width, height: height, margin: marginParams, preferCSSPageSize: preferCSSPageSize});

这正在工作:

await page.pdf({path: output, scale: 1, displayHeaderFooter: displayHeaderFooter, headerTemplate: headerTemplate, footerTemplate: footerTemplate, printBackground: printBackground, landscape: landscape, width: width, height: height, margin: marginParams, preferCSSPageSize: false});

最佳答案

看来您传递给 page.pdf() 的变量因为 scalepreferCSSPageSize 的值类型不正确。

您的工作示例显示 scale 等于 1preferCSSPageSize 等于 false

这些是这些参数的默认值,因此您可以安全地将它们从传递给 page.pdf() 的选项中排除。

如果这些值可以更改,并且您要从命令行获取这些属性的值,请确保将它们从字符串转换为正确的类型,然后再将它们发送到 page.pdf():

vcale = parseInt(vcale);
preferCSSPageSize = preferCSSPageSize === 'true';

关于javascript - Puppeteer 抛出无效参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51910292/

相关文章:

node.js - 用于 node.js(MongoDB?)的分布式数据库的事件记录

javascript - Meteor.js/Handlebars.js - 了解程序编码风格和范围

ubuntu - 将 Cordova 更新到 3.5.0 版

node.js - npm publish 不适用于 AWS CodeArtifact

javascript - 在 jQuery 中添加指向特定短语或关键字的链接

javascript - 如何修改数组结构

javascript - 如何从 Node.js 中的 AWS getObject 调用返回变量

javascript - 将库包合并为单个节点包

javascript - Uncaught ReferenceError : url is not defined

javascript - 使 splice 或 unshift 返回修改后的数组