【问题标题】:Puppeteer Throwing Invalid Parameters ErrorPuppeteer 抛出无效参数错误
【发布时间】:2019-01-25 09:01:37
【问题描述】:

我正在尝试将 HTML 内容转换为 PDF,但是当使用变量传递时,我得到了 Invalid parameters for scale 和 preferCSSPageSize。

错误信息:

错误:协议错误(Page.printToPDF):无效参数比例:预期双值; preferCSSPageSize:预期的布尔值 在 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});

【问题讨论】:

    标签: javascript node.js npm chromium puppeteer


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 谢谢,米勒,它有效。正如你所说,这些值可能会改变,所以只将它暴露给 args。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-08
    • 1970-01-01
    • 2018-01-09
    • 2020-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多