maxism
@maxism

Как создать многостраничный файл из nodejs с помощью graphicsmagick?

Стоит задача реализовать создание многостраничного pdf или tif файла из имеющихся изображений с помощью graphicsmagick или imagemagick. Простейшим способом реализовать это - использовать команду
gm convert 1.jpg 2.jpg ... result.pdf
Но что делать, если на момент создания результирующего многостраничного изображения не имеется исходных графических файлов, а имеются заполненные бинарными данными исходных изображений объекты Buffer в nodejs?
Исходя из собственных предположений о том как это реализовать, попробовал следующий код:
var cp = require('child_process');
var fs = require('fs');
var imagesArray = [/*Массив Buffer с бинарными данными*/];

var convert = cp.spawn('gm', ['convert', 'jpg:-', 'test.pdf']);

res.forEach(function (imgBuffer) {
    convert.stdin.write(imgBuffer);
});

convert.stdin.end();

Не полетело :( Результат - pdf файл, содержащий исключительно первое из исходных изображений.
Пробовал и так:
var imagesArray = [/*Массив Buffer с бинарными данными*/];

var oneBigBuffer = Buffer.concat(imagesArray);

var convert = cp.spawn('gm', ['convert', 'jpg:-', 'test.pdf']);

convert.stdin.end(oneBigBuffer);

Результат тот же.
Буду премного благодарен за наводки в сторону мест копания
  • Вопрос задан
  • 2499 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы