Chrome打印网页时缺少版面设置选项

69

我正在创建一个网站,其中一部分设计需要在纵向模式下打印到小报纸上。但遇到的问题是在Chrome的打印对话框中缺少“布局”选项。

左侧截图显示了我的对话框外观与打印其他网站时的外观不同。具有讽刺意味的是,即使是我创建的其他网站,该选项也像右侧所示一样存在,这是期望的行为。

print dialog example

我的问题是,是什么控制了这种行为?我该如何纠正它?在搜索网络时,我唯一看到的提到此处的情况是Chrome正在显示PDF文件,但我显示的是网页。

如果您能提供任何见解,将不胜感激。

提前致谢


你的网站是否有 @media print 的 CSS 规则? - AMACB
14
请问管理员能否取消关闭此问题?这个问题和下面的回答对我以及其他人都非常有帮助,考虑到点赞的数量,也对很多人有帮助。而且,这个问题绝对与编程有关,因为它涉及CSS、@print和媒体声明。我猜想管理员当时可能没有意识到这一点,但这个问题值得成为一个真正的问题。谢谢。 - FireDragon
3
投票重新开放,因为这涉及到一个在浏览器中具有影响的CSS属性...因此它与任何其他与CSS相关的问题并没有完全不同。 - Smern
2个回答

104

如果在打印CSS中有@page大小声明,这将覆盖(并隐藏)打印对话框中的方向。要覆盖在其他地方设置的声明(例如Bootstrap 4这样做),可以添加:

如果您在打印CSS中声明了@page大小,它将覆盖(并隐藏)打印对话框中的方向。要覆盖在其他地方设置的声明(例如Bootstrap 4会这样做),您可以添加以下内容:

@page {
  size: auto;
}

4
非常感谢!这正是我的问题! - ThrowBackDewd
1
这应该放在单独的CSS文件中,而不是内联,否则声明会被忽略。 - caram
1
请注意,这不需要在 @media print 中,因为它只适用于打印,参见 https://developer.mozilla.org/en-US/docs/Web/CSS/@page。 - Matt Kemp

0

对于已接受答案的补充说明...

对于那些无法编辑要打印的页面的 CSS 的人,您可以安装名为 'Stylus'(链接在此)的 Chrome 扩展程序,并创建一个新样式,其中只包含上述建议:

​​​@page {
  size: auto;
}

这将使打印对话框上任何/每个网页中缺失的选项可用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接