Я пытаюсь вставить изображение в pdf. Я создаю серверную сторону с помощью PDFkit. Я использую cfs: dropbox для хранения моих файлов. Раньше, когда я использовал cvs: файловую систему, было легко добавить изображения в файл pdf, потому что они были там. Теперь, когда они хранятся удаленно, я не уверен, как их добавлять, поскольку PDFkit не поддерживает добавление изображений только с URL-адресом. Однако он будет принимать буфер. Как я могу получить буфер из моих файлов CollectionFS?Как я могу получить буфер для файла (изображения) из 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()' где угодно? –
«Никогда не возвращается» Я имею в виду, что обратный вызов для события «end» никогда не выполняется (я не вижу сообщение журнала в консоли). –