Closed ktk closed 6 years ago
In STIP gibt es mindestens zwei Verwendungen fürs Image Rendering:
Die Images würden dabei serverseitig gerendert und auf Varnish gecached.
Bei einem kurzen Test sieht es so aus, als ob Puppetron nicht wartet, bis fertig gerendert ist. Es werden JPEG Images erzeugt. Es gibt einen Pull-Request für PNG, der wurde aber verworfen.
Rendertron wartet, bis gerendert ist, max. 10 sec. Es werden JPEG Images erzeugt.
Rendertron produziert JPGs mit starken artefacts. Puppetron ist nicht genug konfigurierbar.
Ich würde versuchen direkt mit puppeteer zu arbeiten. Dabei ist wichtig für das Timing waitUntil: "networkidle0"
zu verwenden. Hier konnte ich saubere PNGs und auch PDFs generieren in tests.
https://github.com/GoogleChrome/puppeteer
Für den Printscreen sollte es eine spezial seite geben welche nur die nötigen Elemente enthält. Serge hat glaub ich mal daran gearbeitet.. finde diese aber grad nicht.
Meinst du den 'Grafik' Button auf der Detailseite, z.B. http://stat.integ.stadt-zuerich.ch/dataset/BEW-RAUM-ZEIT-SEX/export ?
Puppetron habe ich entsprechend angepasst (warten bis gerendert, PNG Screenshots, Timeouts parametrierbar, etc.) und funktioniert soweit.
Screenshot Beispiel (mit Puppetron lokal)
Noch offen ist das Aufsetzen von Puppetron in der Zazuko Infrastruktur (Dockerfile von Puppetron anpassen, Aufnahme ins CI, docker-compose, etc.).
Für die Integration ins Frontend gibts von Bergi folgendes Stück Code als Hilfestellung.
@surfiend Puppetron ist jetzt in der Infrastruktur verfügbar:
Weitere Parameter sind hier dokumentiert.
Hier zwei Beispiele mit Datensätzen:
Wie mit Express und fetch das PNG von Puppetron geholt und an den Client weitergeleitet werden kann habe ich als Beispiel implementiert. Der Aufruf von http://localhost:3001/ im Browser speichert das PNG ab.
Wir brauchen noch Pupetron oder ähnlich Integration damit Serge den Call absetzen kann