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

2024-01-01

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

在普通的命令行 imagemagick 程序中,这可以是 很容易通过说“转换文件.pdf[0] 文件.jpg”
其中 [0] 告诉它仅转换第一页。

但是我不确定如何使用这个库来做到这一点。 我尝试将 [0] 连接到文件名,但它只是 将其作为真实文件名的一部分读取。有谁知道的 使用这个库解决这个问题的方法?

我环顾四周,发现了这个,但是 他们没有使用这个库。将 PDF 转换为 PNG Node.JS https://stackoverflow.com/questions/32903737/convert-pdf-to-png-node-js

我正在使用的特定库位于此处:https://www.npmjs.com/package/imagemagick 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
              ],

问题是你正在连接[0]在进行转换之前将其部分添加到文件名中。你应该连接[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
              ], 

该解决方案经过测试有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐