在本地环境中运行时,ghostscript转换未创建输出文件

时间:2019-05-27 19:09:58

标签: javascript node.js google-cloud-functions ghostscript

我正在尝试运行一个简单的脚本来使用gs包转换PDF-> PNG。该代码在部署到Firebase Cloud Functions中时可以成功运行,但是我使用firebase functions:shell命令在本地对其进行了测试,它似乎没有错误运行,但是输出文件(.png)丢失了,并且出现以下错误:

  

错误:提示:没有此类文件或目录,请打开'/var/folders/sr/pjwr5d0s75bgzvx4xgcdcylw0000gp/T/*****/-***********.png'

路径正确,但是缺少.png文件,但是pdf存在,并且gs输出没有错误。我什至尝试将路径从os.tmpdir()更改为台式机(Mac)上的特定路径,但仍然无法创建png文件。

将相同的代码部署到Firebase时运行良好。

这是我的gs代码(我省略了CF代码和调用代码):

//============== Ghostscript
    //Conver PDF -> PNG
    console.log('gs - starting');
    gs()
        .batch()
        .nopause()
        .option('-r' + 50 * 2)
        .option('-dDownScaleFactor=2')
        .executablePath('lambda-ghostscript/bin/./gs')
        // .device('png16m')
        .device('pngalpha')
        .output(outputPath)
        .input(pdfPath)
        .exec(function (err, stdout, stderr) {
            if (!err) {
                console.log('gs executed w/o error');            
                console.log('stdout',stdout);            
                console.log('stderr',stderr);
                console.log('output saved to: ', outputPath);
                resolve(outputPath);
            } else {
                console.log('gs error:', err);
                reject();
            }
        });
})

我不知道为什么它在本地不起作用,但是在部署时可以起作用。我的路径输入正确,输出为path.join(os.tmpdir(), '****.png');

编辑从控制台中的GS输出:

>  gs executed w/o error
>  stdout
>  stderr
>  output saved to:  /var/folders/sr/pjwr5d0s75bgzvx4xgcdcylw0000gp/T/*******/*********.png

0 个答案:

没有答案