web-dev-qa-db-ja.com

Twitterの印刷Bootstrap=を正しく

Twitter Bootstrapビューを正しく印刷するのに本当に苦労しており、誰かが私を正しい方向に向けることができるかどうか疑問に思っていました。オリジナルのbootstrap=スタイリング、および自分のコンポーネントのスタイリング。

これは私の印刷ダイアログです: enter image description here

画像から簡単にわかるかどうかはわかりませんが、井戸はその背景を失い、ページ幅全体にまたがっていません。また、「列」または「スパン」はすべて不安定です。ページは次のように構築されます:(最初の行のみを表示して、きれいに保ちます)

<div class="container-fluid">
    <div class="row-fluid">
        <div class="span3">
            <div class="row-fluid">
                <div style="height: 150px; width: 300px">
                    <img class="img-rounded" src='data:image/png;base64,@Model.Unit.Image64' />
                </div>
            </div>

            <div class="row-fluid">
                ...
            </div>

        </div>
        <div class="span4">
            ...Pie chart control
        </div>
        <div class="span5">
            ...Bar chart control
        </div>

    </div>
</div>

これが私のprint.cssです:

@media print {
    body {
        margin: 0;
        padding: 0;
        line-height: 1.4em;
        Word-spacing: 1px;
        letter-spacing: 0.2px;
        font: 13px Arial, Helvetica,"Lucida Grande", serif;
        color: #000;
    }

    #print-btn #update-btn #nav-left #nav-bar, #selectUnitContainer, .navbar, .sidebar-nav {
        display: none;
    }

    #print-btn, #update-btn, #units {
        display: none;
    }

    #nav-left {
        display: none;
    }

    #report-container {
        visibility: visible;
    }

    .well .span12{
        width: 100%;
        visibility: visible;
    }

    .navbar {
        display: none;
    }

    .sidebar-nav {
        display: none;
    }
}
30

まずBootstrap.cssには 事前定義の印刷スタイル が付属しています:

/** 
 *  Use these for toggling content for print.
**/
.visible-print {
    display: block !important;
}

.hidden-print {
    display: none !important;
}

次にpage-break css rule でテストして、グラフを異なるページに分けて書式を整えます。

/** 
 *  Page-break-inside seems to
 *  be required for Chrome.
**/
div.somechart { 
   page-break-after: always; 
   page-break-inside: avoid;
}

Third全幅span3/col-*-3 'sとspan4/col-*-4' sの割合に依存するのではなく、印刷画面で、動作しているように見えるため正しく考慮に入れると何らかの方法で:

  • システム印刷ページの余白
  • ブートストラップの@print定義のマージン
  • ページ溝
  • 印刷画面でのスパンの割合。

最後に最後のsmall注意するのに役立つこと(はい、カスタム@printスタイルにもかかわらず!):

<link href="/assets/css/bootstrap.min.css" rel="stylesheet" media="screen" />

に:

<link href="/assets/css/bootstrap.min.css" rel="stylesheet" media="all" />
62
MackieeE