如何从英寸计算像素以进行打印

How to calculate pixels from inches for printing

我想允许用户 select 固定的纸张尺寸和 dpi,然后生成一个 div 包含图像的容器,当它被发送到具有相同设置(相同纸张尺寸和 dpi)的打印机,它将具有预期的 size/quality。

据我所知这个公式很简单,我做了什么: 如果用户 selected 24" x 18" with 72 dpi 它生成一个 div 容器,其中的图像为 1728px x 1296px (24"x 72dpi= 1728px width and 18"x 72dpi=1296px)

但是当我将带有媒体打印的 div 发送到打印机时,即使我有设置为 24"x18" x 72dpi 的 PDF 打印机,尺寸实际上小于纸张。

我的公式正确吗?

出于打印目的,您可以定义 "print styles",它的工作方式类似于媒体查询(实际上它 媒体查询):

@media print {
    body {
        background: none;
    }
    .my_wrapper {
      width: 80%;
      margin: 2in auto;
    }
etc.
}

在那里您可以定义所有元素的尺寸,也可以使用绝对单位,例如厘米、英寸等。请看这里:http://www.w3schools.com/cssref/css_units.asp(在该页面的底部)

(记住:里面的内容,只对打印输出有效)

您还可以设置分页符以确定您的网页应在何处划分为打印页面,请参阅 http://www.w3schools.com/cssref/pr_print_pageba.asp 和后续页面。

因此,可以为打印输出设计出相对精确的布局。但这是一项繁重的工作,而且通常在您的网站上放一个人们可以打印出来的 pdf 文件会更容易。