PhantomJS - Rendering nicht funktioniert, um alle Bilder anzeigen

Ich habe eine phantomjs script, das ist ein Schritt durch die Seiten meiner Website.

Für jede Seite, die ich verwenden page = new WebPage() und dann page.close() nach Abschluss der mit der Seite. (Dies ist eine vereinfachte Beschreibung des Prozesses, und ich bin mit PhantomJS version 1.9.7.)

Während auf jeder Seite, die ich verwenden page.renderBase64('PNG') ein-oder mehrmals, und fügen Sie die Ergebnisse in ein array.

Wenn ich alle fertig, ich Baue eine neue Seite und das array Durchlaufen von Bildern, das hinzufügen jeder an die Seite, mit <img src="data:image/png;base64,.......image.data.......">.

Wenn Sie fertig sind, ich benutze page.render(...) um eine PDF-Datei.

Ist dies alles funktioniert Super... außer, dass die Bilder nicht mehr angezeigt in der PDF-Datei nach über 20 Bild - der rest einfach nur zeigen, wie 4x4-pixel schwarze Punkte

Für die Behandlung dieses...

  • Ich habe mich verändert die render Ausgabe ein PNG-Datei, und haben die gleichen
    problem nach dem 19ten oder 20ten Bild.
  • Habe ich ausgegeben, die den raw-HTML. Ich
    öffnen können, die in Chrome, und alle Bilder sichtbar sind.

Irgendwelche Ideen, warum das Rendern würde scheitern?

  • Habe die Versionen begradigt. Gleiche problem mit der version 1.9.7.
  • Ich würde gerne wissen wie du es gemacht hast für das erste Bild. Dieses kleine script nicht einmal die Ausgabe eines Bildes in der gerenderten pdf-oder png-Format.
  • Siehe mein Beispiel in der Antwort. Ich würde empfehlen, dass Sie zuweisen content eher als document.write mit einem 2. PhantomJS Seite für die Herstellung der PDF-Datei.
  • Es funktioniert gut, wenn ich ein wenig warten. Ich wusste nicht, dass onLoadFinished wird ausgelöst, wenn page.content geändert wird. Schön!
InformationsquelleAutor Glen Little | 2014-07-08
Schreibe einen Kommentar