16

我的打印机默认尺寸是 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;
  }
}

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

在此处输入图像描述

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

PS 我只使用谷歌浏览器。

**更新:

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

4

5 回答 5

11

也许这项工作。

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

或者

@media print 
{
   @page
   {
    size: 5.5in 8.5in ;
    size: landscape;
  }
}
于 2015-06-21T23:45:05.663 回答
4

Last time I checked, @media print is very poorly supported by the major browsers. I had a problem similiar to yours, and after weeks of trying I had to give up and go to a server-side pdf generation library (PDF4NET). If you need typeset, printed documents- I don't think HTML is going to do the trick.

于 2013-11-14T22:02:42.100 回答
4

今天我用的是 Chrome 32.0.1700.107 m

为页面大小建立的W3 CSS3 标准与打印界面中直接从 Chrome 中的“另存为 PDF”选项配合使用非常好。请记住,在 chrome 的打印界面中使用打印机是非常不同的,因为它使用打印机的默认大小,但在另存为 PDF 选项的情况下,它确实采用 CSS 建立的大小。

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

现在可以在站点中仅使用 CSS3 创建具有正确纸张大小的 PDF,无需使用第三方软件或其他类型的技巧。

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

于 2014-02-17T18:24:11.033 回答
2

它就像这样对我有用

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

我试着像你说的那样使用“风景”或“肖像”的第二个尺寸属性,但它会覆盖最后一个,所以它不需要,因为你已经在说什么是高度和什么是宽度。

于 2017-06-11T17:40:56.177 回答
1

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

于 2018-04-19T06:25:23.633 回答