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