2011-11-22 28 views
6

印刷媒体に改ページがあります。page-break-after: alwaysです。これらを使用して、1回のバッチ印刷ジョブで複数のレポートを区切ります。残念ながら、印刷ジョブが両面印刷されている場合、ページ区切りにより、プリンタは前のレポートの後ろにレポートを開始する可能性があります。HTMLとCSSの両面印刷のための偶数ページ区切り

改ページを偶数ページに強制する方法はありますか?あるいは、特定の要素がどのページ番号に表示されるかを検出するか?

答えて

1

CSSには組み込み機能がありません。

アイデア:あなたは多分divの中にあなたのレポートのそれぞれをラッピングし、それが奇数ページで終わるかどうかを把握するためのdivのheightを動作するようにjqueryのようなものを使用して試みることができる

奇数ページで終了する場合は、ページ区切り後のクラスで空のdivを挿入し、次のページにフィードします。

EDIT
あなたがターゲットプリンタでのあなたのページが印刷解像度を知っていれば、明らかにこれはだけは本当に動作します。すべてのシナリオでうまくいく魔法の答えはありません。

  • 72 DPI(ウェブ)= 595 X 842ピクセル
  • 300 DPI(プリント)= 2480 X 3508個のピクセル ( "DPI 300 @ 210ミリメートルX 297ミリメートル")
  • は600dpi(プリント)= 4960 X 7016ピクセル

ここであなたのクライアントに適しているかどうかを確認するには、標準のプリンタ設定でここを少し試してみる必要があります。複数のシナリオがある場合は、ドロップダウンから選択させることができます。

divのピクセルの高さを確認するためにjqueryを使用すると、divの値が奇数ページか偶数ページで終わるかどうかを確認し、レポートが終了したら改ページを挿入します奇妙なページに。

また、ユーザーが両面印刷を使用するかどうかを知る必要があります。これは、両面印刷でのみ行う必要があるためです。

+0

興味深い考え方 - ページの高さを知る(または設定する)方法はありますか? –

+0

@RileyLark、私はあなたにいくつかの情報を与えるために、私の返信を編集しました。 – Nils

5

標準でCSS機能があります。あなたは正しい道を歩いています。使用:

<div style="page-break-after: right"> 
-- your content -- 
</div> 

現在のところ、問題をサポートしている唯一の主要なブラウザはOperaです。オペラには印刷に関する独特の問題がありますが、それはあなたの状況に適しています。

+6

'style =" page-break-afterのように書く必要はありません:right "'? –

関連する問題