Мужик, ты же понимаешь, что ты не можешь сделать настоящий скриншот страницы с помощью клиентского кода - это бы была огромная дыра в безопасности.
Все эти библитеки рисуют страницу заново в рамках pdf, пытаясь попасть максимально близко. Со сложными вещами типа карты - это не работет и работать не будет.
У тебя три варианта:
1. Использовать window.print() и научить юзера использовать стандартный функционал печати браузера. Браузер прекрасно всё распечатает сам как надо. Разве что со своей стороны тебе придётся немного пофиксить css под media print. Это предпочтительный вариант.
2. Заморачиваться и ручками получать как-то карту в виде картинки и вставлять руками же в pdf. Это не сложно если карта на canvas, иначе - хз.
3. Сделать бэкэнд сервис-принтер, который будет выдавать pdf(используя под капотом тот же браузерный принтер).