通过css设置打印机纸张尺寸

时间:2013-11-10 17:06:24

标签: html css google-chrome media-queries printing-web-page

我的打印机默认尺寸为A4,我需要使用旧的点阵打印机打印尺寸为8.5inx5.5in的工资单。 我尝试将每个工资单DIV设置为固定高度,

width: 175.6mm;
height:123.7mm;
margin-left:auto;
margin-right:auto;

尽管它完全符合工资单大小,但在打印后,纸张会一直滚动直到它结束,因为与A4不同,工资单纸张都会加入。 我不希望对打印机纸张尺寸进行任何更改,因此我设置了:

@media print 
{
   @page
   {
    size: 8.5in 5.5in;
    size: portrait;
  }
}

但谷歌浏览器的打印预览仍显示:

enter image description here

实际上是否可以这样做?或者有没有办法强制打印机在打印完工资单后停止打印以防止它继续滚动纸张?(我认为这是不可能的)

P.S。我只使用谷歌浏览器。

**更新:

我注意到在选择“另存为PDF”后纸张尺寸会发生变化,如果我选择退回我的默认打印机,纸张尺寸会再次不正确。

5 个答案:

答案 0 :(得分:6)

也许这项工作。

@media print 
{
   @page
   {
    size: 8.5in 5.5in;
    size: landscape;
  }
}

@media print 
{
   @page
   {
    size: 5.5in 8.5in ;
    size: landscape;
  }
}

答案 1 :(得分:4)

上次检查时,主流浏览器支持@media print。我遇到了一个与你类似的问题,经过几周的尝试,我不得不放弃并转到服务器端的pdf生成库(PDF4NET)。如果你需要排版,打印文档 - 我不认为HTML会成功。

答案 2 :(得分:4)

今天我使用Chrome 32.0.1700.107 m

W3 CSS3 standard established for page sizes在打印界面中直接从Chrome中“保存为PDF”选项效果很好。请记住,在chrome的打印界面中使用打印机是非常不同的,因为它使用打印机默认大小,但在SAVE AS PDF选项的情况下,它采用CSS建立的大小。

我为不同的项目提供了不同界面和复飞解决方案多年的麻烦(例如:直接从服务器生成PDF,处理过程繁重,代码混乱,或者告诉用户使用Windows打印界面等等)。这个对我来说是一个很好的解决方案,似乎是明确的!

现在可以使用网站中的CSS3创建尺寸合适的PDF文件,而无需使用第三方软件或其他类型的技巧。

在您的情况下,最好的解决方案是简单地更改打印机中配置的默认纸张尺寸,我建议用户使用一个小浮动div提供建议并且不会打印。 但是,当您“不希望对打印机纸张大小进行任何更改”时,如果您想避免在服务器端进行更改,则需要从人员中再多做一步:首先保存PDF然后将其发送到刚刚创建的PDF打印机。

答案 3 :(得分:1)

这对我来说就像这样

@page {
  size: <%= @size_card[0] %>cm  <%= @size_card[1] %>cm;
  margin: 0;
}

我试着像你说的第二个尺寸属性&#34; landscape&#34;或&#34;肖像&#34;但它会覆盖最后一个,所以它不需要,因为你已经说过什么是高度和什么是宽度。

答案 4 :(得分:1)

我认为浏览器限制访问Printer.it的设置是由操作系统和打印机驱动程序执行的(通过选择纸张来源作为拖拉机进纸器或边距作为自定义)。