Lodop打印控件批量打印的方式:
1.批量打印每頁內容相同的:
(1)批量打印相同內容的很多紙張,可以設置打印份數,把該內容打印出多份。
2.批量打印每頁不同內容的:
(1)通過在一個任務中分頁,循環添加頁數,每頁添加不同內容,一個任務中打印多頁。
(2)一個任務中一頁,循環多個任務,每個任務添加不同內容。
(3)多任務與多頁相結合,既分頁又分任務,循環多任務,每個任務中循環多頁。
使用建議:
1.批量打印同樣的內容,可用多份,需要多少份打印多少份。
2.批量打印不同內容,頁數很少,每頁內容也很少,需要預覽,可在一個任務中分多頁。
3.批量打印不同內容,頁數很少,不需要預覽,直接打印,可一個任務分頁,也可一頁分多任務,均可。
4.批量打印大批量不同內容,內容多,頁數很多,建議分頁分任務,分組打印,提高打印性能。
打印過多頁,不拆分任務,打印成百上千復雜頁面,會導致需要等待一段時間,例如點語句后可能很久才出現預覽界面。
打印上千上萬個任務,任務太多,對操作系統負擔大,可酌情分頁,分頁分任務進行折中處理。
簡單來說,就是相同內容,可設份數。
不同內容,可多任務,可任務中分頁,可多任務+分頁進行組合分組。
批量多任務打印的時候,如果都是相同的模版,可以用同一個Lodop任務名,如果擔心打印機隊列里都是統一名稱,無法區分,可用語句控制,為每個任務取不同的打印機隊列名,方法可查看本博客的相關博文:LODOP循環多任務 同模版只設置不同隊列任務名
Lodop打印語句最基本結構介紹(什么是一個任務)
Lodop中的一個任務,就是從PRINT_INIT(或PRINT_INITA)初始化到PRINT(或預覽等),是一個任務。
方法:
設置打印份數:
LODOP.SET_PRINT_COPIES(4);//設置打印三份
LODOP.SET_PRINT_COPIES(document.getElementById('T6').value);//設置打印名為T6文本框里輸入的值的份數。
設置一個任務分多頁,沒頁內容不同:
初始化//任務開始
for (設置循環)
{
分頁語句
根據循環添加不同打印項
}
打印(或預覽)//任務結束
設置多個任務,循環多任務:
for (設置循環)
{
初始化//任務開始
根據循環添加不同打印項
打印(或預覽)//任務結束
}
設置分頁分任務,分組打印,
for (設置循環)
{
初始化//任務開始
for (設置循環)
{
分頁語句
根據循環添加不同打印項
}
打印(或預覽)//任務結束
}
例如,如下四個方法代碼,實現打印四張:
第一個把相同的內容打印四份
第二個一個任務打印四頁
第三個打印四個任務
第四個,打印兩個任務,每個任務兩頁,共打印四頁。
具體演示會代碼:
當中的console.log是由於分2頁為一個任務,打印兩個任務,需要確定數組下標是0,1,2,3,所以加了個console.log查看一下循環中每次i+j的值是否是否正確。
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>WEB打印控件LODOP</title> <script language="javascript" src="LodopFuncs.js"></script> </head> <body><input type="text" id="T6" size="2" value="4" name="copies"> <a href="javascript:prn1_preview()">預覽打印多份一樣的內容</a><br> <a href="javascript:prn1_preview2()">預覽打印多頁</a><br> <a href="javascript:prn1_preview3()">直接打印多任務</a><br> <a href="javascript:prn1_preview4()">直接打印分頁分任務 分組打印</a> <script language="javascript" type="text/javascript"> var LODOP; //聲明為全局變量 function prn1_preview() {//批量打印相同內容可以用份數 LODOP=getLodop(); LODOP.PRINT_INIT(""); LODOP.SET_PRINT_PAGESIZE(1,300,500,""); LODOP.SET_PRINT_COPIES(document.getElementById('T6').value); LODOP.ADD_PRINT_TEXT(75,6,100,20,"一個文本"); //LODOP.PRINT_DESIGN(); LODOP.PREVIEW(); }; function prn1_preview2() { //一個任務中循環多頁,每頁內容不同 LODOP=getLodop(); var wenben=["一號文本","二號文本","三號文本","四號文本"]; LODOP.PRINT_INIT("");//初始化在循環外 LODOP.SET_PRINT_PAGESIZE(1,300,500,""); for (i=0;i<wenben.length;i++) { LODOP.NewPage(); LODOP.ADD_PRINT_TEXT(75,6,100,20,wenben[i]); } //LODOP.PRINT_DESIGN(); LODOP.PREVIEW(); }; function prn1_preview3() { //循環多個任務,每個任務內容不同 LODOP=getLodop(); var wenben=["一號文本","二號文本","三號文本","四號文本"]; for (i=0;i<wenben.length;i++) { LODOP.PRINT_INIT("");//初始化在循環中 LODOP.SET_PRINT_PAGESIZE(1,300,500,""); LODOP.ADD_PRINT_TEXT(75,6,100,20,wenben[i]); LODOP.PRINT(); } }; function prn1_preview4() { //循環多個任務,任務中循環頁數,分頁分任務 LODOP=getLodop(); var wenben=["一號文本","二號文本","三號文本","四號文本"]; for (i=0;i<4;i=i+2) { LODOP.PRINT_INIT("");//初始化在外循環中 LODOP.SET_PRINT_PAGESIZE(1,300,500,""); for (j=0;j<2;j++) { console.log(i+j); LODOP.ADD_PRINT_TEXT(75,6,100,20,wenben[i+j]); LODOP.NewPage(); } //LODOP.PRINT_DESIGN(); LODOP.PRINT(); } }; </script> </body>

簡單點描述,就是循環多頁,在任務中循環頁數;循環多任務,直接循環多任務。
數據和頁數過多,需要分頁分任務,分組打印,提高性能。
注意,批量打印建議用直接打印,如果用預覽,lodop會彈出多次,c-lodop會提示窗口已打開。
