La un proiect mai vechi am avut nevoie să generez screenshots pentru diverse versiuni ale anumitor pagini. În final, soluția propusă (un serviciu extern) nu a fost aprobabtă din motive de securitate.
Eu am mai folosit (pe langa PhantomJS) si wkhtmltoimage (nu te lua dupa titlul paginii, exporta si imagini nu doar PDF-uri), care e tot WebKit. Aveam binary-ul pentru platforma pe care rula aplicatia undeva accesibil din PHP, si il rulam cu componenta Process din Symfony (pe care o gasesti pe Packagist, nu trebuie sa folosesti Symfony neaparat), ca sa nu folosesc shell_exec chior.
A, apropo, pageres asta in spate tot PhantomJS foloseste, deci nu e altceva decat un wrapper:
PhantomJS, which is used for generating the screenshots, is installed automagically […]
In concluzie, “meh”, la fel de usor folosesti PhantomJS direct, si nu mai ai nevoie de inca un dependency (node). Bineinteles, daca nu ai deja node pe sistemul respectiv pentru alte nevoi.