使用 GraphicsMagick 和 Node.js 将多张图片转换为多页 pdf 文件

Convert several images to a multi-page pdf file with GraphicsMagick and Node.js

我正在使用此功能将 2 页从多页 TIFF 文件转换为多页 PDF 文件。

var writeStream = fs.createWriteStream('./docs/multipage1.pdf');

gm().command('convert')
    .in('./docs/' + data.nomefile + '[1]')
    .in('./docs/' + data.nomefile + '[13]')
    .density(150, 150).compress('jpeg')
    .stream('pdf', function(err, stdout, stderr) {

    if (!err) {

        stdout.pipe(writeStream)

    } else {

        console.log(err)

    }
})

我想对其进行更改,使其适用于动态页面选择:

var pages = req.query.pages;
pages = JSON.parse(pages)  // array of page number [0,1,5,18]
for (page in pages) {
 data.nomefile+'['+pages[page]+']'
 }
...............

在循环中加入入参没问题:

var comm = gm().command('convert')

for (page in pages) {
  comm.in('./docs'+ data.nomefile+'['+pages[page]+']')
}

comm.density(150, 150).compress('jpeg')
    .stream('pdf', function(err, stdout, stderr) {

    if (!err) {

        stdout.pipe(writeStream)

    } else {

        console.log(err)

    }
})