CloudConvert结合Docx和PDF

时间:2016-12-22 18:21:00

标签: cloudconvert

我正在使用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');
                    }
                });
            }                                    
        })
    });
});

1 个答案:

答案 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
}, ...)