I do not know if there is any way we can create a salesforce custom/apex button to take screenshot of the page but alternatively you may render the whole page as pdf which you can save on your local machine. see below article on how to convert the page as pdf
You may also go with the third party tools like snagit to take the screenshot but not sure if this solves your requirement as you seem to be looking for a solution to provide the button to the end user.
https://www.salesforce.com/us/developer/docs/pages/Content/pages_quick_start_renderas_pdf.htm
You may also go with the third party tools like snagit to take the screenshot but not sure if this solves your requirement as you seem to be looking for a solution to provide the button to the end user.