用于打印网页的像素安全宽度?

打印网页的像素安全宽度是多less?

我的页面包含大图像,我想确保它们在打印时不会被剪切。

我知道不同的浏览器页边距和美国信纸/ DIN A4纸张尺寸。 所以我们得到了标准的字母大小和一些默认的DPI值。 但是,我可以将它们转换为像素值来指定图像的“ width ”属性?

至于一个真正的“普遍的答案”,我不能提供一个。 但是,我可以为某些细节提供一个简单明确的答案。

670像素

至less这似乎是微软产品的安全答案。 我读了很多的build议,其中包括675,但是经过我自己testing670就是我想出来的。

所有的DPI,保证金问题,硬件差异,这个答案是基于这样一个事实,即如果我在IE9中使用打印预览(带有标准边距),并将打印尺寸设置为100%,而不是默认的“缩小到合适” ,一切都适合在页面上,而不是在这个宽度切断。

如果我发送一封HTML邮件给自己,并通过Windows Live Mail 2011(Outlook Express变成了什么版本)收到它,然后以670宽度打印页面 – 再次适合所有情况。 如果我将它发送到实际的硬拷贝或MS XPS文件(虚拟打印输出),这也是如此。

在我进行实验之前,我使用了700的任意宽度。在上面提到的所有场景中,部分页面被切断。 当我减less到670时,一切都很完美。

至于如何设置宽度 – 我只是使用了一个原始的“包装”的HTML表,并定义它的宽度为670。

如果你可以指定最终用户的软件,那么这些事情可以是直接的。 如果你不能(当然通常是这样),你可以testing他们正在使用的浏览器等细节,并为重要的解决scheme进行硬编码。 在IE和FF之间,你会覆盖约90%的网页用户。 把其他的代码放在“其他人”里面,这些代码一般来说似乎是可以工作的。

这不像看起来那么简单。 我刚刚遇到类似的问题,这里是我得到的:首先, 维基百科的一个小背景。

接下来,在CSS中,对于纸张,它们具有点,即1/72英寸。 所以,如果你想拥有和显示器一样大小的图像,首先你必须知道你的显示器的DPI / PPI(通常为96,正如维基百科文章中提到的那样),然后将其转换为英寸,然后将其转换为分(除以72)。

但是,浏览器对可打印内容也有各种各样的问题,例如,如果您尝试使用float css标签,那么即使您使用page-break-inside,基于Gecko的浏览器也会在页面中间剪切图片:避免; 在你的图片上(见这里,在Mozilla缺陷跟踪系统中 )。

在A List Apart的文章中, 有更多关于从浏览器打印的内容。

此外,您必须在打印预览中处理宽度“缩小至适合”以及各种纸张尺寸和方向。

所以,无论是像素大小,还是宽度百分比宽度,只要以英寸为单位计算出良好的图像尺寸,我的意思是指(7.1“* 72 = 511.2, width: 511pt;适用于letter尺寸的纸张);将您的图像宽度设置为纸张大小。

祝你好运…

对于我发现的问题的一个解决scheme是只设置以英寸为单位的宽度。 到目前为止,我只testing/确认这在Chrome中工作。 它运行良好,我用它(打印出8.5 x 11表)

 @media print { .printEl { width: 8.5in; height: 11in; } } 

对于打印,我不设置任何宽度,并删除任何障碍,使您的打印布局,从dynamic宽度。 这意味着如果你的浏览器窗口越来越小,没有内容被剪切/隐藏,但是文档变得更长。 像这样,你可以确定其余的将由打印机/ pdf创build者处理。

那些固定宽度的元素如图像或表格呢?

图片

我能想到的选项:

  • 在你的打印CSS中缩小图像的宽度,你可以承担任何情况下适用的宽度,使用pt不px(但打印将需要更多的点/单位,所以这应该不成问题)
  • 排除被打印

  • 删除固定的宽度
  • 如果您真的拥有带有大量信息的表格,请使用风景
  • 不要使用表格进行布局
  • 排除被打印
  • 提取内容,将其打印为段落

http://www.intensivstation.ch/en/css/print/

或任何其他谷歌结果的组合:CSS,打印,媒体,布局

打印机不理解像素,它理解点(在CSS中的点)。 最好的解决办法是写一个额外的CSS打印,其所有的措施点。

然后,在你的HTML代码的头部分,把:

 <link href="style.css" rel="stylesheet" type="text/css" media="screen"> <link href="style_print.css" rel="stylesheet" type="text/css" media="print"> 

确保在网页中打印图像时不会被剪切的解决scheme是具有以下CSS规则:

 @media print { img { max-width:100% !important; } } 

我怀疑有一个…它取决于浏览器,打印机(物理最大dpi)和它的驱动程序,纸张大小,你指出(我可能也想在B5纸上打印…),设置(风景还是人像?),加上你经常可以改变比例(百分比)等等
让用户调整他们的设置…