-1

我正在尝试使用 cloud convert 将 pdf 转换为 docx 文件。当我在作业生成器上执行此操作时,导出任务完成后我可以看到文件下载链接。但是在节点中,当我在完成后记录作业时,所有任务都只是说正在等待,而我的导出任务的结果为空。如何访问转换后文件的下载链接?

我的代码:

router.get(
    '/pdf2',
    catchAsync(async (req, res) => {
    

        const base64data =  pdf.toString('base64');
    

        let job = await cloudConvert.jobs.create({
            tasks: {
                'pdf_import': {
                    operation: 'import/base64',
                    file: base64data,
                    filename: 'pdf.pdf'
                },
                'pdf-docx': {
                    operation: 'convert',
                    input_format: 'pdf',
                    output_format: 'docx',
                    engine: 'bcl',
                    input: [ 'pdf_import' ]
                },
                'docx-download': {
                    operation: 'export/url',
                    input: [ 'pdf-docx' ],
                    inline: true,
                    archive_multiple_files: false
                }
            }
        });

    

        const exportTask = job.tasks.filter(
            task => task.operation === 'export/url' && task.status === 'finished'
        )[0];
        const file = exportTask.result.files[0];
        
        const writeStream = fs.createWriteStream('./out/' + file.filename);
        
        https.get(file.url, function (response) {
            response.pipe(writeStream);
        });
        
        await new Promise((resolve, reject) => {
            writeStream.on('finish', resolve);
            writeStream.on('error', reject);
        });
        
    })
);

4

1 回答 1

0

我通过添加解决了这个问题

jobCompleted = await cloudConvert.jobs.wait(job.id); // Wait for job completion

在我的工作任务之后

于 2021-08-10T13:58:45.337 回答