на самом деле никак. браузеры считают это нарушением безопасности и простым страницам категорически не позволяют. способы, которые в браузерах есть, доступны только плагинам.
существуют библиотеки, которые пытаются делать это сами - по сути воспроизводить работу браузера по отрисовке. разумеется, получается это из рук вон плохо, поскольку получить из дома более или менее надёжно можно только координаты и базовые свойства, а все трансформации-фильтры-остальные навороты в точности изобразить шансов нет.
самый реальный способ получить настоящий скриншот - это какой-нить puppeteer на сервере. вашем собственном сервере, или каком-нибудь стороннем, который такое апи предоставляет.