Sto cercando di inserire un'immagine in un file PDF Sto creando un server con PDFkit. Sto usando cfs: dropbox per archiviare i miei file. Prima quando stavo usando cvs: filesystem, è stato facile aggiungere le immagini ai miei pdf perché erano proprio lì. Ora che sono archiviati in remoto, non sono sicuro di come aggiungerli, dal momento che PDFkit non supporta l'aggiunta di immagini con solo l'url. Tuttavia, accetta un buffer. Come posso ottenere un buffer dai miei file CollectionFS?Come posso ottenere un buffer per un file (immagine) da CollectionFS
Finora ho qualcosa di simile:
var portrait = Portraits.findOne('vS2yFy4gxXdjTtz5d');
readStream = portrait.createReadStream('portraits');
Ho provato a ottenere il buffer di due modi finora:
In primo luogo utilizzando DataMan, ma l'ultimo comando non torna:
var dataMan = new DataMan.ReadStream(readStream, portrait.type());
var buffer = Meteor.wrapAsync(Function.prototype.bind(dataMan.getBuffer, dataMan))();
Secondo buffering del flusso manualmente:
var buffer = new Buffer(0);
readStream.on('readable', function() {
buffer = Buffer.concat([buffer, readStream.read()]);
});
readStream.on('end', function() {
console.log(buffer.toString('base64'));
});
Anche questo sembra non tornare mai più. Ho ricontrollato il mio documento per assicurarmi che fosse lì e ha un url valido e l'immagine appare quando inserisco l'url nel mio browser. Mi sto perdendo qualcosa?
cosa intendi per "non torna mai"? Come/dove nel tuo codice stai usando queste soluzioni. Il secondo dovrebbe funzionare. –
inoltre, stai chiamando 'readStream.read()' ovunque? –
Con "non torna mai", voglio dire che la richiamata per l'evento "end" non viene mai eseguita (non vedo il messaggio di log nella console). –