2012-06-07 12 views
11

Utilizzo di , esiste un modo per controllare l'impostazione DPI utilizzata durante la rasterizzazione di un'immagine del contenuto Web utilizzando il metodo page.render(filename)?Controllo DPI dell'output dell'immagine mediante il rendering()

Non riesco a trovare nulla che possa controllare questo tramite the interface api, ma non sapevo se qualcuno ha già trovato un modo per farlo.

nostro business caso simile a questo:

contenuti HTML personalizzato creato tramite un'applicazione web è alimentato ai nostri rasterize.js processo phantom e viene interrogato per un tag specifico per impostare il rettangolo client. Questo rettangolo client è reso a un PNG dell'HTML che può quindi essere utilizzato come immagine altrove.

Vogliamo che la risoluzione del PNG risultante sia qualcosa di più alto del valore predefinito, a causa dell'aliasing sul testo con alcune dimensioni di carattere/combinazioni in grassetto.

+0

La risoluzione registrata in un PNG è generalmente ignorata durante la visualizzazione di esso. Ti sembra OK quando lo apri in un editor? –

+2

no, e questo è il problema. Includono il PNG all'interno di un PDF, che presumibilmente mantiene la risoluzione, e sta producendo "testo difficile da leggere" –

+0

Ah, hai trovato l'unica situazione in cui la risoluzione non viene ignorata. Probabilmente vuoi una risoluzione di 96. –

risposta

2

Posso mescolare DPI con qualcos'altro, ma avete esaminato l'opzione zoomFactor? Impostandolo sull'oggetto della pagina, l'immagine renderizzata verrà ingrandita.

0

Questa forcella permette di impostare il dpi https://github.com/martonw/phantomjs/tree/issue-%2313553

È possibile impostare poi il dpi con page.dpi = 72

console.log('Loading a web page'); 
var page = require('webpage').create(); 
var url = 'http://phantomjs.org/'; 
page.open(url, function (status) { 
    //Page is loaded! 
    page.dpi=300; // this is where you actually set the DPI 
    page.render("test.pdf"); 
    phantom.exit(); 
}); 
Problemi correlati