Я пытаюсь вставить изображение в pdf. Я создаю серверную часть с помощью PDFkit. Я использую cfs: dropbox для хранения моих файлов. Раньше, когда я использовал cvs: файловую систему, было легко добавить изображения в 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 в свой браузер. Я что-то пропустил?