我正在使用CloudConvert NodeJS包。我有一个进程从远程服务器抓取PDF,然后从模板动态生成docx。我试图使用CloudConvert来组合这两个pdf,但每当我这样做时,返回的文档只是重复两次的docx。
我已经确认CloudConvert正在请求PDF和Docx,而不仅仅是docx两次。如果我将Docx替换为另一个PDF,它将成功地将两者合并,但两者的组合似乎不能很好地工作,即使他们的文档声明它是受支持的。
这是我的代码,它本质上是修改后的示例代码,以包含我的本地文档,我已经简化了一些路径并删除了我的域名信息,但除此之外,它还有&#39对我如何实现它是正确的。
cloudconvert.createProcess({
"mode": "combine",
"outputformat": "pdf"
}, function(err, process) {
if (err) {
console.error('CloudConvert Process failed: ' + err);
}
process.start({
"mode": "combine",
"input": "download",
"files": [
'*domain*/packingslips/'+transaction.object_id+'.docx',
'*domain*/shippinglabels/'+transaction.object_id+'.pdf'
],
"outputformat": "pdf",
"wait": true
}, function(err, process){
if (err) {
console.error('CloudConvert Process failed: ' + err);
}
process.wait(function(err, process){
if (err) {
console.error('CloudConvert Process failed: ' + err);
} else {
console.log('Done: ' + process.data.message);
process.download(fs.createWriteStream('/integration/combinedpdfs/'+transaction.object_id+'.pdf'), null, function (err, process) {
if (err) {
console.error('CloudConvert Process download failed: ' + err);
} else {
console.log('Downloaded to ' + '/integration/combinedpdfs/'+transaction.object_id+'.pdf');
}
});
}
})
});
});
答案 0 :(得分:2)
每个输入文件都必须具有唯一的文件名。您可以使用filename
参数覆盖输入名称。在你的情况下:
process.start({
"mode": "combine",
"input": "download",
"files": [
{"file": '*domain*/packingslips/'+transaction.object_id+'.docx', "filename": "template.docx"},
{"file": '*domain*/shippinglabels/'+transaction.object_id+'.pdf', "filename": "other.pdf"}
],
"outputformat": "pdf",
"wait": true
}, ...)