Как получить размеры целевой страницы?
Нельзя. Для кода JS или CSS нет способа узнать, хочет ли пользователь печатать на бумаге формата DIN A4, или A3, или букве США. современные методы в лучшем случае являются хаки sh. Кроме того, нет никакого известного способа узнать размер области печати (размер бумаги минус поля, наложенное принтером), и нет способа узнать, собирается ли пользователь использовать масштабирование печати.
IMO, ваш лучший подход:
1- Используйте CSS @media print
запросов, например:
@media print {
#leaflet-map { border: 1px solid black; }
}
CSS правила там будут применяться только при печати (а не при отображении на экране). Подробнее о CSS @media
здесь .
2- Использование mm
, cm
или in
единиц для длины ваших CSS правил. Например:
@media print {
#leaflet-map { width: 17.5cm; height: 20cm; }
#table-with-data { width:17cm; height: 5cm; }
}
Имейте в виду, что это размер до , в браузере применяется масштабирование печати . Возможно, вам придется поручить своим пользователям следить за этим и всегда печатать материалы в «масштабе 100%».
3- Используйте CSS @page size
намек . Обратите внимание, что это экспериментально (на момент написания этой статьи) и является лишь подсказкой, предложением. Браузеры могут игнорировать это.