2009-07-15 14 views
1

私は約20divsのページがあります。 私がしたいのは次のようなページを印刷することです:ページ上に完全なDIVのみを印刷する

  • 4 divsは1ページに完全に表示されます。
  • 5桁目の最初の半分がページ1に印刷され、残りの半分が2ページに印刷されます。
  • この20桁すべてのリピート。
  • に最初の4つのdivがあり、 div 5と1で始まる2番目のページがあります。

したがって、印刷された各ページには完全なdivのみが含まれます。 divの高さもわかりません。 1ページに1つまたは7つの完全なdivが存在する可能性があります。

編集:私はすべてのページ・ブレーク前と改ページ内のオプション

を試してみた

答えて

2

あなたが望む正確な方法それを行うことはできませんCSS。これを行うには、紙サイズのような情報が必要です。 page-break-insideはあなたができる最高ですが、それは保証ではありません。

+0

ええ私は多くのと考えた –

2

は試してみてくださいpage-break-inside property

div { 
    page-break-inside: avoid; 
} 
+0

残念ながらそれはしませんでした。 –

+0

'page-break-inside'はまだ広くサポートされていません(http://reference.sitepoint.com/css/page-break-insideを参照)。 – Gumbo

1

JavaScriptと一緒にハッキングされることがあります。各divのoffsetHeightoffsetTopを測定し、それを各ページの予想高さ(ピクセル)と比較することができます。正確にするには別のページの高さで試してみる必要がありますが、次のようなものがうまくいくかもしれません:

function paginateDivs() { 

    var pageHeight = 800; // Experiment with different values here, this 
          // is 800 pixels. 
    var lastPage = 0; 

    var divs = document.getElementsByTagName("div"); 

    for (var i = 0; i < divs.length; i++) { 
     var divBottom = divs[i].offsetTop + divs[i].offsetHeight; 
     if (divBottom - lastPage > pageHeight) { 
      lastPage = divs[i].offsetTop; 
      divs[i].style.pageBreakBefore = "always"; 
     } 
    } 
} 
+0

これは、ページ区切りのプロパティがないので、動作する可能性があります – marcgg

+0

クールで便利な解決策が、私はこのためのJavaScriptを使用することはできません。 –

関連する問題