2012-06-07 5 views
11

Mit gibt es eine Möglichkeit, die DPI-Einstellung zu steuern, die beim Rastern eines Bildes des Webinhalts mit der Methode verwendet wird?DPI-Bildausgabe mit render() steuern

Ich kann nichts finden, das dies über the interface api steuern würde, aber wusste nicht, ob jemand bereits einen Weg gefunden hat, dies zu tun.

Unser Business-Fall sieht wie folgt aus:

Benutzerdefinierte HTML-Inhalte über eine Web-Anwendung erstellt unser rasterize.js Phantom Prozess zugeführt wird und für einen bestimmten Tag, um den Client-Rechteck abgefragt. Dieses Client-Rechteck wird in ein PNG des HTML-Codes gerendert, das dann an anderer Stelle als Bild verwendet werden kann.

Wir möchten, dass die Auflösung des resultierenden PNG etwas höher als die Standardauflösung ist, aufgrund von Aliasing im Text bei einigen ungeraden Schriftgrößen/fetten Kombinationen.

+0

Die Auflösung in einem PNG aufgezeichnet wird in der Regel ignoriert, wenn es angezeigt wird. Sieht es OK aus, wenn Sie es in einem Editor öffnen? –

+2

nein, und das ist das Problem. Sie enthalten das PNG in einem PDF, das angeblich die Auflösung beibehält, und produziert "schwer lesbaren Text". –

+0

Ah, Sie haben die eine Situation gefunden, in der die Auflösung nicht ignoriert wird. Sie wollen wahrscheinlich eine Auflösung von 96. –

Antwort

2

Ich mag DPI mit etwas anderem vermischen, aber haben Sie in die zoomFactor Option geschaut? Wenn Sie dies auf dem Seitenobjekt festlegen, wird das gerenderte Bild gezoomt.

0

Diese Gabel erlaubt die Einstellung der dpi-https://github.com/martonw/phantomjs/tree/issue-%2313553

können Sie legen dann die dpi mit 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(); 
});