2013-02-23 67 views
12

テレビスケジュールを作成していますが、少なくとも1つの標準ブラウザでは印刷に関する問題はありません。Google Chromeのすべてのページのヘッダーを印刷します

試して検索した後、ロゴとタイトルとテーブルヘッダーをすべてのページに貼り付ける必要があります。known bugのために、すべてのページに表ヘッダーとposition: fixed要素が印刷されないことがわかりました。

私が頻繁に使用していた-webkit-print-color-adjust: exactの背景色を印刷し、CSS @pageプロパティでページの境界線を変更するなどの機能のため、Google Chromeを使用するようにビューをカスタマイズしましたが、

  • Chromeを忘れて、背景色と変更ページ余白を(私はそれが不可能な怖い)を印刷するの微調整を行う必要がある別のブラウザ用の印刷ビューの作成を開始するには:私は選択肢を探しています。
  • すべてのページに表ヘッダーを印刷するGoogle Chromeを作成するCSS/JSソリューションを見つける。

TL; DR:あなたはjQuery/JavaScript/etcを知っていますか? Chromeのすべてのページに表のヘッダーを印刷するコードですか?

答えて

10

これはWebkit/Chromeのことです。 各ページにtheadを印刷しません。例えばFFである。 このようなことを達成するためにできることは、page-breakを使用することです。

Page Breakはブロック要素に対してのみ機能するため、適切にtrをスタイルする必要があります。このよう

:今

tr{ 
    display:block; 
} 

、あなたのthead要素のコピーを開始し、JavaScriptを使用して、すべてのX番目の行でそれを入れる必要があります。

var head = $('table thead tr'); 
$("tbody tr:nth-child(10n+10)").after(head.clone()); 

画面で、あなたはすべてのそれらをしたくありませんヘッド。利便性のために、私は>私の目にTR行を.headクラスを追加(メディアクエリでこれをそれらを削除:

@media screen { 
    tbody .head{ 
     display: none; 
    } 
} 

今、それぞれが改ページを作る.head前:

tbody tr.head { 
    page-break-before: always; 
    page-break-inside: avoid; 
} 

それをチェックhttp://jsfiddle.net/jaap/7ZGVv/2/ jsfiddleでは、プレビューフレームだけを開くことはできないため、印刷は完全には機能しません。自分のファイル内のすべてを組み合わせると、テーブルが分割され、スタイリングが完璧ではないことがわかりますそれはあなたのブラウザ自体が分割する場所を決めるほど柔軟ではありませんが、ちょっと、それは何かです。

+1

ありがとう:私は、Chromeはこの回答を参照してください、ヘッダーとフッターを印刷することを可能にするライブラリを作成しました。私はこの問題に直面して以来、長いことですが、私はChromeを使用しないことでそれを作っていました。 :Dとにかく、あなたの答えは有望なようだと私はそのショットをできるだけ早く与えます。再度、感謝します。 –

+4

これはうまくいくように見えますが、ページ区切りを置く場所でやや保守的でなければならないことを意味します。印刷時に任意のHTML要素の垂直高さに関係するすべての変数を推測することは不可能です。しかし、内容が非常に均一な高さの場合、この作業をうまく行えるようになります。 – Simon

2

これはコメントでなければなりませんが、担当者はいません。とにかく、私はposted a solution hereがこの問題を解決し、強制的なページ区切り(本質的に信頼性が低く、紙を浪費し易い技法)で自然な改ページを先取りしようとする必要はありません。

+0

あなたの答えをありがとう、私はできるだけ早くそれを試してみましょう。 –

関連する問題