简单方式获得当前显示器 DPI

时间:2024-03-02 18:00:56

      最近弄打印的时候,为了设置字体的统一(做过打印的都知道,px,pt等等,并不算一个好的单位, 在打印的时候,结果肯定会和显示在浏览器上的,有差别), 所以非常需要DPI (像素/英寸), 换算px成统一的单位, 这样就可以不论是在打印的时候,还是显示在浏览器里, 都没有什么差别了.

  ie 有些私有属性, 

    screen.deviceXDPI, 返回显示屏幕的每英寸水平点数

    screen.deviceYDPI, 返回显示屏幕的每英寸垂直点数

    screen.logicalXDPI, 返回显示屏幕每英寸的水平方向的常规点数

    screen.logicalYDPI, 返回显示屏幕每英寸的垂直方向的常规点数

  这些,都可以帮助用户简单的获得当前系统的DPI (系统的DPI是可以设置的,所以这也增加了预览与实际打印效果统一性的难度)

  然而,其他的浏览器却没有这个属性.  那么,如果要做到兼容的处理,怎么去获得.

  思考以久, 老是从浏览器API,从某些可以实现的函数等等的角度去思考这个问题, 却忘记了从其他的角度, 用另一种更加简单的方式可以获得, 比如,css

  如此例:

    <div id="test" style="width:1in;height:1in;overflow:hidden;"></div>

    alert(document.getElementById("test").offsetWidth);

  太简单了. 这样, 因为offsetWidth  返回的是 px 单位, 但是我实际设置他的大小却是 in 单位. 所以, 马上我就获得了这个数据.

 

  :-)