首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过css设置打印机纸张大小

通过css设置打印机纸张大小
EN

Stack Overflow用户
提问于 2013-11-11 01:06:24
回答 5查看 69.6K关注 0票数 16

我的打印机默认尺寸是A4,并且我需要使用旧的点阵打印机打印8.5inx5.5英寸的工资单。我试着把每个工资单DIV都设置成固定的高度

代码语言:javascript
复制
width: 175.6mm;
height:123.7mm;
margin-left:auto;
margin-right:auto;

虽然它完全符合工资单的大小,但打印后,纸张将继续滚动,直到它结束,因为工资单纸张都是连接在一起的,不像A4。并且我不希望对打印机纸张大小进行任何更改,因此我设置了:

代码语言:javascript
复制
@media print 
{
   @page
   {
    size: 8.5in 5.5in;
    size: portrait;
  }
}

但Google Chrome的打印预览仍然显示了以下内容:

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

附言:我只使用Google Chrome浏览器。

**更新:

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

EN

回答 5

Stack Overflow用户

发布于 2015-06-22 07:45:06

也许这能行得通。

代码语言:javascript
复制
@media print 
{
   @page
   {
    size: 8.5in 5.5in;
    size: landscape;
  }
}

代码语言:javascript
复制
@media print 
{
   @page
   {
    size: 5.5in 8.5in ;
    size: landscape;
  }
}
票数 11
EN

Stack Overflow用户

发布于 2013-11-15 06:02:42

据我所知,主流浏览器对@media print的支持非常差。我遇到了和你类似的问题,经过几周的尝试,我不得不放弃,转而使用服务器端的pdf生成库(PDF4NET)。如果你需要排版,打印文档--我不认为HTML能做到这一点。

票数 4
EN

Stack Overflow用户

发布于 2014-02-18 02:24:11

今天我用的是Chrome 32.0.1700.107 m

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

多年来,我在不同的界面和不同项目的解决方案上遇到了麻烦(例如:直接从服务器生成PDF,这太繁重的处理和混乱的代码,或者告诉用户使用windows打印界面,等等)。这对我来说是一个很好的解决方案,而且看起来是明确的!

现在,只需在站点中使用CSS3就可以创建具有合适纸张大小的PDF,并且不需要使用第三方软件或其他技巧。

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19892484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档