LODOP循環多任務 同模版只設置不同隊列任務名


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任務名 不同打印機隊列任務名的 代碼圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM