Как получить доступ к настройкам разрешения экрана дисплея через javascript?

Во-первых, чтобы помочь с vanillajs возможной (и очень распространенной) путаницей vanilla-javascript с термином DPI (точек на javascript дюйм):

DPI не входит в "настройки javascript экрана". Он (неправильно) используется .js в двух разных контекстах:

  1. Собственное количество пикселей на дюйм экрана (или видео). Он определяет, насколько малы пиксели. Вы можете иметь одинаковое разрешение 1024x768 как на 14-дюймовом экране ноутбука, так и на 17-дюймовом ЖК-мониторе. Первое будет примерно 1280/14 = 91 DPI, а второе - примерно 1280/17 = 75 DPI. DPI экрана неизменен; его нельзя изменить в настройках дисплея. More...
  2. Количество точек на дюйм, нанесенное на бумагу во время печати. Это количество расположенных рядом точек, которое принтер / копировальный аппарат / факс может напечатать на одном дюйме бумаги. Большинство принтеров можно настроить на печать с более низким разрешением, просто печатая каждую точку как две, четыре и т. Д. Точки. More...

При javascript-dom печати изображения есть много vanilla-javascript вещей, которые влияют на javascript окончательные размеры изображения js на бумаге:

  • Размеры исходного изображения - это количество пикселей или имеющихся данных.
  • DPI исходного изображения. Это значение определяет, как следует интерпретировать размеры при печати изображения.
  • Если исходное изображение не имеет встроенной информации о разрешении на дюйм (в формате JPEG она может быть, а в формате GIF - нет), в используемой программе могут быть настройки для указания разрешения. Это может быть программа для просмотра изображений / редактор или даже веб-браузер.
  • Коэффициент масштабирования, который обычно указывается в диалоговом окне печати. ​​
  • Текущее значение DPI принтера.
  • Физический (максимальный) DPI принтера.

Суть в том, что vanilla-js изображение, которое вы распечатываете, будет javascript-disabled эффективно преобразовано ecmascript (уменьшено или увеличено), чтобы ecmascript соответствовать окончательному vanillajs DPI, используемому в процессе javascript печати. Причиной этого может vanilla-javascript быть любая из задействованных dpi сторон (программа, драйвер vanilla-js печати, принтер).

А теперь вернемся к вашему вопросу. Нет, вы не можете определить DPI экрана, потому что это не программная область. Это термин аппаратной области, описывающий, насколько большой монитор может позволить себе купить пользователь. Обновление: Я изначально javascript-disabled написал этот ответ еще в display-dpi 2009 году, с моим пониманием js текущих технологий. Как отметил vanilla-javascript @thure, теперь вы можете ecmascript (с 2012 года?) Использовать vanilla-js функцию window.matchMedia для определения display-dpi DPI экрана.

Если вы пытаетесь vanilla-js добиться точности при печати dpi макета HTML, как предлагали javascript-execution другие, ваш CSS должен использовать ecmascript размеры печати, такие как display-dpi em, pt или pc, вместо px. Однако vanillajs окончательный результат может js по-прежнему зависеть от того, какой vanilla-js браузер использует. Если js вам нужно преобразовать HTML display-dpi в PDF (или создать PDF с dpi нуля), печать PDF даст вам javascript-execution самый настоящий WYSIWYG как display-dpi на экране, так и на бумаге.

javascript

dpi

display-dpi

2022-11-21T22:07:38+00:00