2017-01-11 14 views
0

私はcreate tableのデータを持っていて、それを印刷します。構造は次のようである:ページ区切りのhtmlページを印刷

タイトル データ 合計

タイトルはページの最後にあってはならないと合計がページの先頭印刷それであってはなりません。私はDivsを使ってhtmlテーブルを作って、すべてのサイズをmmにしているのですしかし、私は区切りページのときにcolculateできませんでした。別のコンピュータの高さの変化にお付き合いください。ここ

は、計算のための私のjavascriptのコードで、ページここ

$(document).ready(function(){ 
     var mydiv ='<div class="page-break"></div>'; 
     var i=0; 
     var h = px2cm($("#myinfo").last().height())*10; 
     var limit=297; 
     var g =0; 

     $('#content div.ptr').each(function(){ 
      g=0; 
      h = h + px2cm($(this).height())*10; 
      var nexth=px2cm($(this).next().height())*10; 
      if(h>=limit-nexth) 
      {    
       if($(this).hasClass("ptrtitle")){ 
        $(this).before(mydiv); 
        h = px2cm($(this).height())*10; 
        i++; 
        g=1; 
       }else{     
        if(String($(this).next().attr("class"))==="ptr ptrsum"){ 
         if($(this).prev().hasClass("ptrtitle")) 
         { 
          $(this).prev().before(mydiv); 
          h = px2cm($(this).height()+$(this).prev().height())*10; 
         }else{ 
          $(this).before(mydiv); 
          h = px2cm($(this).height())*10; 
         } 
         //h=0; 
         i++; 
         g=1; 
        }else{ 
          $(this).after(mydiv); 
          h=0;i++; 
        } 
       } 
      } 
     }); 
    }); 
    function px2cm(px) { 
     var d = $("<div/>").css({ position: 'absolute', top : '-1000cm', left : '-1000cm', height : '1000cm', width : '1000cm' }).appendTo('body'); 
     var px_per_cm = d.height()/1000; 
     d.remove(); 
     return px/px_per_cm; 
    } 

を破る私は限界= 297(A4の高さのために、それは一部のコンピュータ上での良い動作しますが、他の人には良い仕事をdoesnt)を追加します。 doesntの仕事は良いが、それは1ページに40行を出力しますが、別の上にいくつかの行は、私は通常

+0

あなたはCSSプロパティのページ区切りを見ましたか?おそらくあなたはそれをdivに追加し、それを '避ける'ように設定することができます。 – sol

+0

はい、私はうまく動作しません – user2632703

+0

jsfiddleなどでマークアップの簡単なデモを作成した方が簡単に役立つかもしれません。 – sol

答えて

0

てみはCSS2プロパティを追加するすべてのコンピュータにデータを印刷することができますどのように次の印刷ページ

に行く最初のコンピュータ上で、ということを意味しますpage-breakのクラスpage-break@media printを手動で改ページする代わりにまた、必要に応じてprintに固有のスケールを使用することもできます。

@media print { 
    .page-break {page-break-after: always;} 
} 
+0

私はすでにこのクラスを追加しています。問題はタイトルの後で和の行の前にdivが壊れてはいけないこと、そしてpage-break-afterがそれであるということです: – user2632703

関連する問題