【问题标题】:How to force the CSS media type to be print but on the screen?如何强制 CSS 媒体类型打印但在屏幕上?
【发布时间】:2017-08-31 20:10:41
【问题描述】:

我想向用户展示页面在打印时的外观,而不是实际要求他们点击打印按钮。我有必要的基于媒体查询的打印 CSS,但这只会应用于打印预览和实际打印页面时。我的要求是在应用程序的对话框中显示打印格式页面。

【问题讨论】:

    标签: css media-queries


    【解决方案1】:

    我在一个项目中遇到了同样的要求。根据specification,这是无法做到的,因为@media 打印规则专门用于打印到低成本设备。

    我的解决方法是使用 CSS 模拟打印纸。例如,我创建了一个灰色背景的 div,然后创建了一个白色背景的内部 div,模拟纸张。我根据我的打印边距设置边距,并将 html 放置在此容器中。这种方法无论如何都不能保证打印时期望的副本,因为宽表和图像等元素可能会使容器比打印页面更宽,而打印引擎可以应用缩放。

    结合这些问题,无法可靠地预测打印引擎和打印机配置如何处理分页符。您可以在 @media 打印规则中提供提示性 css 属性,例如 page-break-insidepage-break-beforepage-break-afterwidowsorphans。在我的打印预览 div 中,我只是在仿真容器中布局了一个连续的 html,并让用户清楚这是一个仿真。

    【讨论】:

    • 谢谢@jfeferman。我会等几天看看是否还有想法。
    猜你喜欢
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-07
    • 2015-12-20
    • 2019-09-29
    • 2012-08-20
    相关资源
    最近更新 更多