Eso hice hace algún tiempo, dibujé los elementos en un
canvas y las posiciones,dimensiones,colores y fuentes eran de acuerdo a sus reglas CSS, con lo que obtenía algo parecido a una captura de pantalla. Si no quieres hacerlo de cero, investiga
http://html2canvas.hertzen.com/