jQuery指定領域Htmlページを印刷し、自動的にページングする

2601 ワード

最近のプロジェクトではHTMLページを印刷する必要があり、領域を指定して印刷する必要があり、jqueryを使用する.PrintArea.jsプラグイン
使用方法:

$("div#printmain").printArea();

しかしDIVの後の内容を印刷することができて、ここでCSSを使って印刷のページングを制御することができます


有时用CSS控制分页了但还是会连续打印页面,这里就可以用上PrintArea 插件中的属性参数。

PrintArea部分源码:


var modes = { iframe : "iframe", popup : "popup" }; 
var defaults = { mode : modes.iframe, 
popHt : 800, 
popWd : 800, 
popX : 200, 
popY : 200, 
popTitle : '', 
popClose : false , 
twoDiv : '', //       ,        
pageTitle: ''};//       ,       

プラグインで定義されている属性フォーマットがJSONであることがわかります.以下、一部の属性について説明します.
modesは2つのプロパティを定義し、popupを指定すると新しいウィンドウが開き、印刷プレビューページと見なすことができ、デフォルトはiframeです.
@popClose|[boolean]|(false)、true印刷が完了したらプレビューページを閉じるかどうか、デフォルトはfalse(閉じない)です.

$("div#printmain").printArea({mode:"popup",popClose:true});

これでDIV印刷を指定できます.
次に私が2つの属性の用途twoDivを追加します:印刷する必要がある2番目のDIV、もちろん2番目のページで、このページは比較的に長くて、自動的にページを分ける必要があって、しかも表の中ですべての行はすべて異なって、いくつかの行は複数の行にまたがって、ここで印刷して、1行は2枚の紙の上で印刷するかもしれません.
pageTitle:2番目のDIVは複数のページに分かれており、各ページのヘッダーには同じものが必要です.このパラメータは共通のヘッダーです.
この2つのパラメータは、次のようなページ内のDIVに対応しています.

 
 

, 。


writeDoc.open(); 
writeDoc.write(html); //            HTML   
writeDoc.close(); 

printWindow.focus(); 
printWindow.print();

htmlを するコードを に します

html+=docType() + "" + getHead() + getBody(thisPage) + "";

プラグインには の が されています. は も していません.ここでは り けません.
は の えです.
1つのDIVの を ページに し、1 が ページにまたがらないようにするには、htmlコードの に を れなければなりません.
まずDIVの のすべての を つけて、 の の にこれらの を えた に さは1ページに して、ページを ける があって、ここで1ページの で の がちょうど のページにまたがって、この を して、 のページに くことができます.
ページの が すると、HTMLタグの ろにCSSページングタグを ける があります.これにより、プリンタはおとなしくページングされます. すると、 されたプレビューページの1ページは、 するヘッダーとDTD を つHTMLページです.
プレビューが4ページしかないのに、 されると ページになる もいるかもしれませんが、 したページにHTMLラベルの にページングマークが いているかどうかを する があります. タグは ずHTMLタグの にしなければならないので、 が1ページ く される を することができます.
PS: は が したJSプラグインを えます. のプロジェクトサイクルのせいで、コードの くの が んでしまいました. の の を するためです. コードがめちゃくちゃに かれているので、 も がもっと して、 させることを んでいるのかを してほしい.