3

我无法创建包含内容的 pdf。我正在使用 html-pdf 运行 node/express 以将 react Dom 节点转换为字符串,然后通过管道返回客户端以将 Blob 保存为 pdf。该pdf是空白的,但有多个页面,表明内容正在占用空间。

请求进入:

{"html":"<html><meta charset=\"utf8\"><title>Report</title>
<body><div>Text test</div></body></html>","filename":"report"}

PDF 创建:

    pdf.create(req.body.html, {
            format: 'letter'
        , border: { top: '0.6in', right: '0.6in', bottom: '0.6in', left: '0.6in'}
        , phantomArgs: ["--ignore-ssl-errors=yes"]
    }).toStream(function(err, stream){
        if(err){
            utils.standardError(res, err)
        }
        else{
            res.setHeader('Last-Modified', utilities.httpDateString(new Date()))
            res.setHeader('Content-disposition', 'attachment; filename='+req.body.filename)
            res.setHeader('Content-Type', 'application/pdf')
            // res.setHeader('Response-type', "arrayBuffer")
            // res.setHeader('Content-length', buffer.length)
            res.status(200)
            // res.send(buffer)
            stream.pipe(res)
        }
    })

然后我将 Blob 保存为:

saveAs(
    new Blob([response], {type: "application/pdf;charset=utf-8"}),
        'report.pdf'
)

当我通过验证器运行保存的 pdf 时,我会遇到与其格式有关的各种错误。我究竟做错了什么?

4

0 回答 0