2012-04-12 7 views
6

Ho un'applicazione node.js in cui sto usando pdfkit per generare documenti pdf. Voglio essere in grado di includere immagini da un URL nel pdf. Non posso salvare l'immagine nel file system perché il mio ambiente di runtime è di sola lettura e il kit PDF sembra trovare le immagini da incorporare da una directory del file system. C'è un modo per utilizzare un URL in kit pdf per incorporare un'immagine?È possibile che il kit PDF salvi le immagini da un URL?


Here. Questo tizio ha modificato il pdfkit per includere quella funzionalità.

+1

No, non è possibile con l'implementazione corrente. Ma posso dirti che è facile modificare la fonte e implementare questa funzione. –

+0

Presumo che questa domanda riguardi [questo pdfkit] (http://pdfkit.org/) –

+0

[questo] (https://github.com/devongovett/pdfkit/blob/master/lib/image.coffee#L13) è dove legge il file. Ad esempio, puoi cambiarlo in '@contents = nomefile 'o qualsiasi cosa tu voglia che sia. –

risposta

1

è possibile utilizzare http.get:

http.get('YOUR URL TO GET THE IMAGE').on('response', function(res) 
    res.setEncoding('binary'); 
    res.on('data', function(chunk){ 
     buffer += chunk; 
    }); 
    res.on('end', function(){ 

    fs.writeFile('PATH TO SAVE IMAGE', buffer, 'binary', function (err) { 
     if (err){ 
      throw err; 
     } 
     doc = new PDFDocument({ size: 'LETTER or any other size pdfkit offer' }); 
     doc.image('PATH TO SAVE IMAGE', 0, 0, { fit: [WIDTH, HEIGHT] }) 
     .fontSize(10).text('text 1', 100, 170) 
     .fontSize(16).text('text 2', 60, 120) 

    }); //After file is download and was write into the HD will use it 

}).end(); //EO Downloading the file 
2

PDFKit supporta ora passando buffer per il metodo, invece di un nome di file doc.image. Vedi commit this. Così puoi fare come suggerisce l'altra risposta, e scaricare l'immagine dall'URL stesso, e quindi passare il buffer direttamente a PDFKit invece di salvarlo prima in un file.

Problemi correlati