使用node-pdftk填写表单时写入EPIPE错误

时间:2019-04-18 11:16:46

标签: pdftk epipe

我正在尝试使用nodejs填写pdf表单。

我正尝试使用node-pdftk软件包。请执行以下步骤:

为Windows安装了pdftk 将路径映射到环境变量PATH 已安装的node-pdf软件包

`const express = require('express')
const app = express()
const cors = require('cors')
const pdftk = require('node-pdftk');
const bodyParser = require('body-parser');
var multer = require('multer'); // v1.0.5
var upload = multer();

app.listen(8000, () => {
console.log('Server started!')
});
var pdfPath='OoPdfFormExample.pdf';
app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));
var formdata = {
'Given Name': 'Swetha',
'Family Name': 'Gulapannavar'
}
app.post('/api/file', upload.array(), (req, res, next) => {
//var buffer=JSON.stringify(Buffer.from(req.body));
var buffer=Buffer.from(req.body)
    pdftk
    .input(pdfPath)
    .fillForm(formdata)
    .flatten()
    .output()
    .then(buffer => {
        // Still returns a buffer
        res.type('application/pdf'); // If you omit this line, file will 
download
        res.send(buf);
        })
    .catch(err => {
        res.send(err.message)
        // handle errors
    });
});`

但是当我尝试执行相同操作时出现以下错误。 写入EPIPE错误。

1 个答案:

答案 0 :(得分:0)

这可能是由于node-pdftk无法找到PDFtk二进制文件引起的;您可能无法为运行Web服务的帐户正确设置PATH变量。您可以使用node-pdftk的configure函数在应用程序内部直接设置bin路径,这在node-pdftk npm project page中进行了简要介绍。如果那不起作用,请尝试配置tempDir路径。