festlegen dpi mit phantomjs Knoten?
Ich bin mit phantomjs-Knoten-Modul. unten ist der link Woher bekomme ich dieses Modul.
https://github.com/sgentle/phantomjs-node
diese arbeiten wirklich schön, wenn ich eine jpg-Bild-Datei aus html. aber seine Standard "dpi" ist 72, das ist nicht gut für drucken des Bild-Datei. so möchte ich den dpi-Wert festlegen wenn ich Rendern des Bildes.
aus dem obigen link, den ich Lesen Sie einige Beispiel-Seite, wie.set('viewportSize', {width:640,height:480}). seine die Bildgröße perfekt. aber ich will einstellen dpi von Bild bitte leite mich, wie kann ich das erreichen.
var phantom = require('phantom');
phantom.create(function (ph) {
ph.createPage(function (page) {
page.open("http://www.google.com", function (status) {
page.render("bla.jpg");
ph.exit();
});
});
});
- Es scheint nicht möglich. Es ist ein individueller PR, wenn Sie Lust daran herum zu hacken auf einige C++ - Sie könnten in der Lage sein, es zu tun: github.com/1st1/phantomjs/commit/...
- Dank Matt sir für dein replay. ich versuche, diese vor dem posten der Frage hier. aber ich sehe ein anderes problem, wenn ich dies getan. ich Sag dir, wie ich das Tat. ich einfach die Klon-sudo apt-get install build-essential chrpath git-core libssl-dev libfontconfig1-dev git clone git://github.com/ariya/phantomjs.git cd phantomjs git checkout 1.9 machen, etwas ändern, wo dpi hartcodierten Wert von 72 auf 300 und baut das Projekt, indem Sie ./build.sh nach 100% bauen, wenn ich den Prozess starten " wieder habe ich eine Nachricht bekommen phantomjs ist nicht installiert.
- hier ist der link Woher bekomme ich Ressourcen phantomjs.org/build.html
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es zwei Möglichkeiten.
1. Zoom
Können Sie
- Seite.zoomFactor
zum Zoomen der Seite. Erhöhen Sie die viewport-Größe entsprechend vor der änderung der zoomFactor:2. PDF
Wenn man sich mit der Qualität, dann machen Sie ein pdf von der Seite. Ein pdf ist vektorbasiert und können Sie vergrößern so viel wie Sie möchten. Es arbeitet mit der
pdf
Erweiterung, wenn Sie geben Sie den Dateinamen anrender
:Können Sie sehen, wie die rasterize.js Beispiel beschäftigt sich mit den Seitenformaten. Es gibt einige Einschränkungen aber. Sie haben im Auge zu behalten, um passen Sie die Breite des gerenderten pdf-Datei. Siehe zum Beispiel diese (unbeantwortet) Frage.
300.0/72
und Sie erhalten von uns Ihr 300-dpi-jpg. Die dpi/ppi-Informationen in der jpg-wird sich nicht ändern, denn Sie können nicht die dpi in phantomjs. Sie benötigen, um die richtige dpi in photoshop oder was auch immer image-manipulation-tool, das Sie verwenden.72
- und windows -96
. Es ist nur ein Wert, den Sie haben, mit zu arbeiten. Also zu sagen, dass Sie brauchen 300 dpi ist nur als willkürlich und hat keinen wirklichen Welt-Verbindung (Drucker ist ein real-Welt-Objekt). Wenn Sie möchten, drucken Sie die Webseite, dann machen Sie als pdf-Datei und sehen, ob es richtig aussieht. Wenn Sie dann die pdf-Datei drucken, werden Sie wahrscheinlich haben eine Art von Anpassung option für die dpi.1Meine Lösung war, nicht zu verwenden, die in phantom-pdf-rendering-Prozess, da die Qualität der erzeugten pdfs ist inakzeptabel schlecht.
Zuerst Generiere ich die Bild egal welche Auflösung brauche ich für die gewünschte dpi. Das war für mich 3300x2550 (11in x 8.5 in bei 300 dpi) und verwendet eine Seite-zoom-Faktor von 2.364 (Annäherung ein Teiler von 11, weil wir uns mit 11pt Schrift zu 2550/1080; 26/11) zum halten der gleichen ungefähren Schriftgröße als auf 1080p. Dann benutze ich ein externes Dienstprogramm (iText oder Aspose zum Beispiel) zu schieben, das erzeugte Bild in eine pdf-Datei. Er druckt schön und sieht gut aus in der pdf-Datei. Das einzige problem, das ich habe, ist der Speicherplatz ist etwas beträchtlich, weil ein 3300x2550 Bild-Datei generiert, bei jedem Lauf.