CloudConvert объединяет документы Docx и PDF

Я использую пакет CloudConvert NodeJS. У меня есть процесс, который захватывает PDF с удаленного сервера, а затем динамически генерирует docx из шаблона. Я пытаюсь использовать CloudConvert для объединения этих двух PDF-файлов, но всякий раз, когда я делаю это, возвращаемый документ является просто docx, повторяемым дважды.

Я подтвердил, что CloudConvert запрашивает как PDF, так и Docx, а не только DOCX дважды. Если я заменю Docx на другой PDF-файл, он успешно объединит их, но комбинация обоих, похоже, не будет работать хорошо, хотя в их документации указано, что она поддерживается.

Вот мой код, это, по сути, пример кода, модифицированного для включения моих локальных документов, я упростил несколько путей и удалил информацию о моем домене, но кроме того, это правда, как я его реализовал.

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 ответ

Каждый входной файл должен иметь уникальное имя файла. Вы можете переопределить имя ввода, используя 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
}, ...)
Другие вопросы по тегам