point pixel DPI

来源:互联网 发布:c盘数据备份 编辑:程序博客网 时间:2024/06/07 06:35

一直没弄清过这几个跟分辨率有关的概念,直到我的膝盖中了一箭……

因为最近要用html制作要打印的表格,开始纠结改用px还是pt作单位。最后选择了pt,因为做这玩意就是用来打印的,1英寸72pt,绝对单位最清楚。

可是屏幕显示的预览页边距和实际打印的不一样,问题在于,宽度究竟应该是几何?

A4纸,宽度8.27英寸,595pt。预览界面肯定不能用595px,px往往不等于pt。那他们之间的比例是多少?已知windows的DPI(暂以为和打印的DPI是一个概念)是96,所以1px等于0.75pt。所以界面宽度应该是793px。但是测试结果表明还是不对。由于平时用多显示器,知道不同尺寸显示器的像素物理尺寸是不同的,所以屏幕显示的尺寸对应物理尺寸应该还有一个系数。计算14英寸(水平分辨率1366)的宽度为12.2英寸,对应DPI应该是112。显然windows的96与其不吻合。看到一篇文章,说系统设置应该选取和显示器的实际DPI最接近的值,但是系统给的几个选项不一定是相等的,只是比较接近。于是手动调整系统DPI为112,此时预览界面终于和A4纸一样宽了,QPringPreviewDialog显示比例100%时也和纸张等宽。但是这个显示器DPI设置让我很不适应,又改回96。此时,自制的预览界面仍和A4纸等宽,但QPringPreviewDialog调成100%时不和纸张等宽了,要调成117%才行。112/96=117。看来windows的DPI应该从缩放比例的角度来理解,而不是绝对尺寸。只有当设置的DPI等于面板的实际DPI时,屏幕才能完全反映文档尺寸,否则很多情况下都要通过缩放来解决。

另外,明明都是A4纸的宽度,为什么QWebView显示的比QPringPreviewDialog要大一些?算了,反正打印出来是对的就行了

本文含有一些对事实的描述,但并未形成明确的结论,因为对这些算术问题实在是懒得纠缠……欢迎有兴趣深究的朋友留言指教大笑

原创粉丝点击