2016-12-22 3 views
0

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

Я подтвердил, что 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 
}, ...) 
Смежные вопросы