在chrome和safari上打印宽度不同

时间:2016-09-05 16:36:12

标签: html css angularjs google-chrome angular-ui-bootstrap

我在模态视图上实现报表查看器。 这些是一些打印样式:

@page{
   margin: 5mm;
}

body{
   visibility: hidden;
}
.modal-report{
   width: 100%;
   height: 100%;
   margin: 0;
}
#report-view-container-id, #report-view-container-id *{
   visibility: visible;
}
#report-view-container-id{
   width: 100%;
   height: 100%;
   position: absolute;
   top:0;
   left: 0;
}

.report-view-container-letter
{
   max-width: 23.59cm;
   max-height: 27.94cm;
   min-width: 23.59cm;
   min-height: 27.94cm;
   padding-right: 15px; 
   padding-left: 15px;
}

在Firefox上,当我尝试打印作品时,宽度是完美的,但在谷歌铬和野生动物园的约为60%。 6年前已经问过question,但是没有说什么。

在Firefox上: Firefox

在Google Chrome和Safari上: google chrome - safari

这是一个小plnkr试图重新创建我的案例

2 个答案:

答案 0 :(得分:1)

在Safari中打印时遇到了类似的问题。文本没有换行,将在页面右侧显示。为了解决这个问题,我在样式表中添加了以下内容。 nuke 最重要的元素是Bootstrap的.container类。

@media print {
html, body, main, header, footer, .container {
    background: transparent !important;
    color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
    position: relative !important;
    text-indent: 0 !important;
    clear: both !important;
    width: auto !important;
    height: auto !important;
    border: none !important;
    overflow: visible;
    margin: 0 auto 0.5% auto !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    padding: 0 !important;
    text-align: left !important;
    max-width: none !important;
    min-width: auto !important;
    min-height: auto !important;
    max-height: auto !important;
    direction: ltr !important;
}}

之前:

enter image description here

之后:

enter image description here

答案 1 :(得分:0)

这还不是答案,但评论不会让我包含我需要的格式......

@page不是有效的媒体查询,只会被忽略。对于打印样式,这应该是@media printmargin并未应用于任何内容 - 您需要类似

的内容
@media print {
    mytargetelement {
        margin: 5mm
    }
}

这对你的问题有帮助吗?