Я пытаюсь вставить изображение в PDF-файл. Я создаю серверную часть с помощью PDFkit. Я использую cfs:dropbox для хранения своих файлов. Раньше, когда я использовал cvs:filesystem, было легко добавлять изображения в мой PDF-файл, потому что они были прямо там. Теперь, когда они хранятся удаленно, я не знаю, как их добавить, поскольку PDFkit не поддерживает добавление изображений только с URL-адресом. Однако он примет буфер. Как я могу получить буфер из моих файлов CollectionFS?
Пока у меня что-то вроде этого:
var portrait = Portraits.findOne('vS2yFy4gxXdjTtz5d');
readStream = portrait.createReadStream('portraits');
Я пытался получить буфер двумя способами:
Сначала использовал dataMan, но последняя команда так и не возвращается:
var dataMan = new DataMan.ReadStream(readStream, portrait.type());
var buffer = Meteor.wrapAsync(Function.prototype.bind(dataMan.getBuffer, dataMan))();
Вторая буферизация потока вручную:
var buffer = new Buffer(0);
readStream.on('readable', function() {
buffer = Buffer.concat([buffer, readStream.read()]);
});
readStream.on('end', function() {
console.log(buffer.toString('base64'));
});
Кажется, это тоже никогда не вернется. Я перепроверил свой документ, чтобы убедиться, что он там и имеет действительный URL-адрес, и изображение появляется, когда я помещаю URL-адрес в свой браузер. Я что-то упускаю?
readStream.read()
куда-нибудь? - person Christian Fritz   schedule 04.07.2015readable
наdata
в обработчике событий. - person Brian Shamblen   schedule 08.07.2015