LODOP中從PRINT_INIT(或PRINT_INITA)到最后PRINT(或PREVIEW等),是一個任務,關於Lodop中一個任務,以及一個任務中可以包含哪些語句,詳細可查看本博客另一篇博文:Lodop打印語句最基本結構介紹(什么是一個任務)
一個任務中,可以有多頁,可以是自動分頁或手動分頁得來的,
例如:Lodop打印控件 超文本自動分頁,Lodop強制分頁LODOP.NewPage()和LODOP.NewPageA()
如果一個任務中頁數過多,會因為一次性占用太多的系統資源而需要等待很長時間,因此需要把頁數過多的任務拆分一下,可以分組分任務打印,在分任務的過程中,如果內容不是相同的模版,需要給每個任務設置不同的任務,否則用打印維護功能調整某個任務的時候,會把所有任務都調整,同名任務會互相影響,當然如果不想用打印維護,禁用打印維護的客戶端本地調整功能,置空任務也是可以的。如果是相同的模版,只是內容不同,類似多任務套打那種,可以用相同的Lodop任務名,如果想在打印任務隊列里區分,可以用 LODOP.SET_PRINT_MODE("CUSTOM_TASK_NAME","LODOP打印任務"+i);//為每個打印單獨設置任務名,這個任務名是隊列的任務名。
只設置隊列的任務名,打印維護緩存的文件就會針對所有(同一個初始化任務名的所有任務調整)的哦。
多任務有兩種方式,
一是設置不同的Lodop任務名(打印維護的時候調整只針對這一個任務),例如如下代碼,改變了初始化PRINT_INIT的任務名名。
<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> <a href="javascript:prn1()">循環多任務</a><br><br> <script language="javascript" type="text/javascript"> var LODOP; //聲明為全局變量 function prn1() { //單個任務循環 LODOP=getLodop(); var myprn = new Array() myprn[0] = "PREVIEW:打印預覽" myprn[1] = "PRINT:直接打印" myprn[2] = "PRINT_DESIGN:打印設計" for (i=0;i<myprn.length;i++) { //任務開始 LODOP.PRINT_INIT("LODOP打印任務的"+i);//初始化在循環中 LODOP.SET_PRINT_PAGESIZE(0,1000,700," ");//設置紙張 LODOP.ADD_PRINT_TEXT(30,30,300,20,myprn[i]); LODOP.PRINT(); //任務結束 //LODOP.PRINT();//直接打印在循環中 //多任務如果是預覽或設計LODOP.PRINT_DESIGN();等,會彈出多次,所以批量打印直接打印 LODOP.PRINT();。 } }; </script> </body>
二是設置相同的Lodop任務名,然后設置隊列里不同任務名(打印維護的時候是針對Lodop任務名,所有隊列的任務都會被調整。例如如下代碼不改變Lodop任務名,改變打印機隊列任務名)
<html> <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> <a href="javascript:prn1()">循環多任務</a><br><br> <script language="javascript" type="text/javascript"> var LODOP; //聲明為全局變量 function prn1() { //單個任務循環 LODOP=getLodop(); var myprn = new Array() myprn[0] = "PREVIEW:打印預覽" myprn[1] = "PRINT:直接打印" myprn[2] = "PRINT_DESIGN:打印設計" for (i=0;i<myprn.length;i++) { //任務開始 LODOP.PRINT_INIT("LODOP打印任務");//初始化在循環中 LODOP.SET_PRINT_PAGESIZE(0,1000,700," ");//設置紙張 LODOP.ADD_PRINT_TEXT(30,30,300,20,myprn[i]); LODOP.SET_PRINT_MODE("CUSTOM_TASK_NAME","LODOP打印任務"+i);//為每個打印單獨設置任務名 LODOP.PRINT_SETUP(); // LODOP.PRINT(); //任務結束 //LODOP.PRINT();//直接打印在循環中 //多任務如果是預覽或設計LODOP.PRINT_DESIGN();等,會彈出多次,所以批量打印直接打印 LODOP.PRINT();。 } }; </script> </body> </html>
LODOP循環多任務 同模版只設置不同隊列任務名(初始化任務名是相同的,緩存ini文件是相同的,調整后對所有任務有效):
使用LODOP.PRINT_SETUP();改變第一個任務位置,然后點應用保存當前模版布局,在電腦生成該Loodop任務名的ini文件,該緩存的ini配置文件對所有同一lodop任務名的任務有效,在隊里的則是每個任務名都不同的。關於打印維護緩存ini文件,可查看本博客另一篇博文:Lodop打印維護PRINT_SETUP本地緩存ini文件
LODOP循環多任務 同模版只設置不同隊列任務名(初始化任務名是相同的,緩存ini文件是相同的,調整后對所有任務有效)圖示:
使用LODOP.PRINT_SETUP();改變第一個任務位置,然后點應用保存當前模版布局,在電腦生成該Loodop任務名的ini文件,該緩存的ini配置文件對所有同一lodop任務名的任務有效,在隊里的則是每個任務名都不同的。
如圖,代碼里的該文本項的top值是30,通過打印維護調整后緩存在本地任務名的ini文件,實際打印top值變成了一百多,並且對之后的任務,即三個任務都是有效的,而隊列里任務是不同的。
剛開始我以為是設置不同的lodop任務名,后來覺得如果是不同任務名,直接循環設置不同的初始化名稱就行了,后來進入技術手冊,看到這個是設置打印機隊列的任務名,如果批量打印相同模版,進入隊列都是一樣名稱,不容易看出打了多少,以及是否有任務有問題,所以同模版打印機隊列的任務名很方便的,此博文用來介紹區別。
不同lodop任務名,和相同Lodop任務名 不同打印機隊列任務名的 代碼圖: