PHP no puede hacer eso, JavaScript menos. Eso lo hará algún software y lo que podrás hacer con PHP es mandar a llamar ese software. Sabrás que si quieres lanzarlo con el evento "al apretar un botón" le corresponde a JavaScript.
Como sea, una busqueda rápida en Google te dará pistas (snapshot lo que buscas):
http://www.phpclasses.org/browse/package/918.html Cita: With this class, an additional external program (e.g. Hypersnap) and a browser you can make snapshot of pages given their URLs.
Negritas de mi parte; el nombre del software que podría ayudarte. Otro ejemplo:
http://www.zubrag.com/scripts/websit...-generator.php Cita: IECapt would run Internet Explorer, grab full sized website screenshot from it, and save image into the folder you specified in script settings.
Aunque esta segunda opción es "muy windowsera" ... pero, ahí esta el cómo podrías hacerlo.
Personalmente no sé de nada específico, igual y con imagemagick podría ser, no lo sé. Esperemos alguien te pueda orientar más. Suerte