如何使用NodeJS imagemagick库将PDF的第一页转换为JPG?

3

我正在尝试使用NodeJS的ImageMagick库将pdf文件转换为预览图标jpg。 我正在尝试仅生成第一页的预览(对于多页pdf)。

在普通的命令行ImageMagick程序中,可以通过输入"convert file.pdf[0] file.jpg"
来轻松实现此操作,其中 [0] 告诉它仅转换第一页。

但是,我不确定如何在此库中实现此操作。 我尝试将 [0] 连接到文件名,但它只会将其读取为实际文件名的一部分。 有人知道使用此库绕过这个问题的方法吗?

我找了一段时间,发现了这个链接,但他们没有使用此库。 Convert PDF to PNG Node.JS

我正在使用的特定库位于此处:https://www.npmjs.com/package/imagemagick

我正在处理的代码如下:

            let path = '/tmp/';
            let pageNumber = '[0]';
            let filePath =  path + fileId + fileName + pageNumber; 
            let imgFilePath = path + fileId + '.jpg';
            let writeStream = fs.createWriteStream(filePath);
            writeStream.on('error',err => {
              reject(err);
            });
            stream.pipe(writeStream);


              im.convert([
                filePath,
                '-background','white',
                '-alpha','remove',
                '-resize','192x192',
                '-quality','100',
                imgFilePath
              ],
1个回答

1
问题在于您在进行转换之前将[0]部分连接到文件名上。您应该像这样在convert函数的范围内连接[0]:
            let path = '/tmp/';
            let filePath =  path + fileId + fileName;
            let imgFilePath = path + fileId + '.jpg';
            let writeStream = fs.createWriteStream(filePath);
            writeStream.on('error',err => {
              reject(err);
            });
            stream.pipe(writeStream);


              im.convert([
                filePath + '[0]',
                '-background','white',
                '-alpha','remove',
                '-resize','192x192',
                '-quality','100',
                imgFilePath
              ], 

这个解决方案已经测试过可以工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接