操纵up引发无效参数错误

时间:2018-08-18 15:52:28

标签: javascript node.js npm chromium puppeteer

我试图将HTML内容转换为PDF,但是使用变量传递时,缩放和InvalidCSSPageSize参数无效。

错误消息:

  

错误:协议错误(Page.printToPDF):无效的参数比例:预期值为双精度; preferredCSSPageSize:期望的布尔值       在Promise(/home/santhosh-4759/Downloads/node-v8.11.3-linux-x64/bin/node_modules/puppeteer/lib/Connection.js:202:56)       在新的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});

1 个答案:

答案 0 :(得分:1)

您似乎以scalepreferCSSPageSize的值传递给page.pdf()的变量不是正确的类型。

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

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

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

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