Web列印--Lodop使用手冊install_lodop.exe
~_~一個程式設計師的淘寶店: 點選開啟連結
Lodop是一款專業的WEB列印控制元件,其設計目標是簡單易用、功能足夠強大,開創WEB列印開發的新局面。
Lodop設計者對WEB下的列印開發任務進行了分類彙總,高度抽象,設計出僅用幾個功能函式,就可實現複雜的列印任務,儘量減少使用者的知識累贅。控制元件釋出包有3個系統檔案組成,全部功能用幾個控制元件引數和2組功能函式來實現。
儘管我們有個理想化的目標,那就是您不用詳細瞭解這些引數或函式,僅僅看懂幾個樣例檔案就能很輕鬆地開始使用本控制元件,為此Lodop提供了一個足夠完善的設計介面,用它可以實現大多數列印開發任務,但事實上了解這些引數和函式總還是有好處的,特別是當您的開發任務很複雜時,這就是本文目的,但願本文件足夠詳細且簡單明瞭。
如果此前曾看過lodop的入門樣例程式,本文會更容易理解!
Lodop釋出包內主要有如下幾個檔案:
該檔案是控制元件安裝和升級的主檔案,提供給使用者或開發者下載安裝,如果不特意攔截一般都能100%安裝,對“網頁外掛安裝難”有一定改善。如果將其複製或改名為uninstall_lodop.exe (名前加un)就可用其解除安裝控制元件。
Lodop安裝後,在作業系統目錄WINDOWS\system32下會安裝兩個實體檔案:CAOSOFT_WEB_PRINT_LODOP.OCX和NPCAOSOFT_WEB_PRINT_lodop.dll,前一個檔案是OCX檔案,後者是Npplugin檔案,其作用是實現多瀏覽器支援。目前Lodop
程式檔案有幾個預定引數:
-waitXX該引數設定安裝程式執行完畢後自動關閉視窗,這裡的XX表示關閉前等待的秒數,如果是0秒則安裝(或解除安裝)成功後立即關閉,例如:–wait8
-nowindow 該引數設定安裝程式執行時不出現視窗。
-un 該引數使程式執行解除安裝操作,引數優先於檔名。
-in 該引數使程式執行安裝操作,引數優先於檔名。
安裝介面如下:
該檔案是用來引導安裝控制元件的一個JS檔案,是個樣例,但建議直接採用。其中getLodop的任務是判斷瀏覽器的型別並決定採用哪個物件例項,並檢測控制元件是否安裝、是否最新版本、並引導安裝或升級。檔案內容如下:
function getLodop(oOBJECT,oEMBED){ var strHtml1="<br><font color='#FF00FF'>列印控制元件未安裝!點選這裡<a href='install_lodop.exe'>執行安裝</a>,安裝後請重新整理頁面或重新進入。</font>"; var strHtml2="<br><font color='#FF00FF'>列印控制元件需要升級!點選這裡<a href='install_lodop.exe'>執行升級</a>,升級後請重新進入。</font>"; var strHtml3="<br><br><font color='#FF00FF'>(注:如曾安裝過Lodop舊版附件npActiveXPLugin,請在【工具】->【附加元件】中先解除安裝它)</font>"; var LODOP=oEMBED; try{ if (navigator.appVersion.indexOf("MSIE")>=0) LODOP=oOBJECT; if ((LODOP==null)||(typeof(LODOP.VERSION)=="undefined")) { if (navigator.userAgent.indexOf('Firefox')>=0) document.documentElement.innerHTML=strHtml3+document.documentElement.innerHTML; if (navigator.appVersion.indexOf("MSIE")>=0) document.write(strHtml1); else document.documentElement.innerHTML=strHtml1+document.documentElement.innerHTML; } else if (LODOP.VERSION<"6.0.0.1") { if (navigator.appVersion.indexOf("MSIE")>=0) document.write(strHtml2); else document.documentElement.innerHTML=strHtml2+document.documentElement.innerHTML; } //*****如下空白位置適合呼叫統一功能:********* //******************************************* return LODOP; }catch(err){ document.documentElement.innerHTML="Error:"+strHtml1+document.documentElement.innerHTML; return LODOP; } } |
其中的關鍵點是VERSION函式,Lodop提供了這個“讀版本號”功能,這樣控制元件的安裝和升級任務就交給JS來實現,以下是控制元件在頁面內的呼叫程式碼,其中包含getLodop的使用:
<head> <title></title> <script language="javascript" src="LodopFuncs.js"></script> <object id="LODOP" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width=0 height=0> <embed id="LODOP_EM" type="application/x-print-lodop" width=0 height=0></embed> </object> </head> <body> <script language="javascript"> var LODOP=getLodop(document.getElementById('LODOP'),document.getElementById('LODOP_EM')); </script> … </body> |
以上兩段程式碼相互配合實現了Lodop的安裝、呼叫和升級。之所以將LodopFuncs.js作為一個資原始檔來部署,既可以利用瀏覽器的快取減少頁面內容的重複下載,同時還實現了控制元件釋出統一管理,整個應用系統中只要這一個地方釋出Lodop。其它頁面直接拷貝嵌入第2段程式碼就可以了。
Lodop有如下控制元件引數,以頁面object物件元素的引數形式使用:
名稱:設定控制元件的顯示標題 格式:<param name="Caption" value="我是列印控制元件lodop"> 功能: 控制元件在頁面內一般是以object元素形式被引用。可以通過設定元素的width和height等於0來隱藏控制元件,不隱藏時可以為控制元件設定一個標題,以便於看到控制元件是否被正確安裝,以及控制元件物件在頁面內的位置。希望列印預覽介面或設計介面內嵌到網頁內時,本引數很有用。 |
Color
名稱:設定控制元件的顯示區域顏色 格式:<param name="Color" value="#C0C0C0"> 功能:通過該引數設定控制元件顯示區域的底色,對於希望列印預覽介面或設計介面內嵌到網頁內時,本引數可以讓控制元件容易融於整體頁面。 引數值採用超文字顏色形式,可以是三色16進位制值組合,也可以是英文顏色名。 |
名稱:設定控制元件的顯示區域邊界 格式:<param name="Border" value="1"> 功能:通過該引數設定控制元件顯示區域的邊界,值等於1表示有邊界,否則無邊界。本引數可以讓控制元件更融於整體頁面。 |
另外,控制元件還有三個用於註冊的輔助引數,參考後面《軟體使用權註冊》一節。
Lodop的功能函式不多,但引數比較複雜。全部函式分“基本函式”和“擴充套件函式”兩類,兩類函式有類似性,基本函式使用簡單,達不到要求時請使用擴充套件函式,二者無本質區別。
1、基本函式
名稱:獲得軟體版本號 格式:VERSION 結果:返回字元型結果 版本號有四個數字組成,樣式為:X.X.X.X |
名稱:列印初始化 格式:PRINT_INIT(strTaskName) 功能:初始化執行環境,清理異常列印遺留的系統資源,設定列印任務名。 引數: strTaskName: 列印任務名,字元型引數,由開發者自主設定,未限制長度,字元要求符合Windows檔案起名規則,Lodop會根據該名記憶相關的列印設定、列印維護資訊。 若strTaskName空,控制元件則不儲存本地化資訊,列印全部由頁面程式控制。 結果:返回邏輯值 返回邏輯真表示初始化成功,邏輯假表示初始化失敗,失敗原因有:前一個列印事務沒有完成;作業系統沒有印表機(驅動)等。 建議或要求: 該函式與PRINT_INITA都有初始化功能,每個列印事務至少初始化一次,建議列印程式首先呼叫該函式。任務名要儘量區別於其它列印任務,譬如用“XX單位_XX管理資訊系統_XX子系統_XX模組_XX列印作業”字樣。 不希望終端使用者更改列印佈局時,則設strTaskName空。 |
名稱:設定紙張大小 格式:SET_PRINT_PAGESIZE(intOrient, PageWidth,PageHeight,strPageName) 功能:設定列印紙張為固定紙張或自適應內容高,並設定相關大小值或紙張名及列印方向。 引數: intOrient: 列印方向及紙張型別,數字型, 1---縱(正)向列印,固定紙張; PageWidth: 設定自定義紙張寬度,整數或字元型,整數時預設長度單位為0.1毫米。字元型時可包含單位名:in(英寸)、cm(釐米)、mm(毫米)、pt(磅)、px(1/96英寸),如“10mm”表示10毫米。 紙張寬,單位為0.1mm譬如該引數值為45,則表示4.5mm,計量精度是0.1mm。 PageHeight: 固定紙張時設定紙張高;高度自適應時設定紙張底邊的空白高。整數或字元型,整數時預設長度單位為0.1毫米。字元型時可包含單位名:in(英寸)、cm(釐米)、mm(毫米)、pt(磅)、px(1/96英寸),如“10mm”表示10毫米。 高小於等於0時strPageName才起作用。 strPageName: 所選紙張型別名,字元型。不同印表機所支援的紙張可能不一樣,這裡的名稱同作業系統內印表機屬性中的紙張名稱,支援作業系統內的自定義紙張。 關鍵字“CreateCustomPage”會按以上寬度和高度自動建立一個自定義紙張,所建立的紙張名固定為“LodopCustomPage”,多次建立則重新整理該紙張的大小值。 注:PageWidth、PageHeight和strPageName都無效時,本函式對紙張大小不起作用,控制元件則採用所選印表機的預設紙張,但intOrient仍可起作用。 如果列印程式未採用擴充套件方式(PRINT_INITA)初始化,本函式的固定紙張功能所定製的紙張大小,會起到PRINT_INITA中Width和Height的相同功能。 實際列印時,控制元件按如下優先順序順序確定紙張大小: 第1優先是列印維護裡紙張屬性(“本機自行定義紙張”)設定的紙張大小。 第2優先是SET_PRINT_PAGESIZE指定的紙張大小; 第3優先是上次列印時在預覽介面設定裡選擇的紙張型別; 第4是按所選印表機的預設紙張; 結果:無 建議或要求: 列印初始化之後呼叫。 如果列印紙張不固定,希望由操作者自主選擇紙張時,則不要呼叫本函式。 |
名稱:增加超文字列印項(普通模式) 格式:ADD_PRINT_HTM(Top,Left,Width,Height,strHtmlContent) 功能:增加超文字列印項,設定該列印項在紙張內的位置和區域大小,實現超文字控制列印。 引數: Top: 所增列印項在紙張內的上邊距,整數或字元型,整數時預設長度單位為px。字元型時可包含單位名:in(英寸)、cm(釐米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Left: 所增列印項在紙張內的左邊距,整數或字元型,整數時預設長度單位為px。字元型時可包含單位名:in(英寸)、cm(釐米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Width: 列印區域的寬度,整數或字元型,整數時預設長度單位為px。字元型時可包含單位名:in(英寸)、cm(釐米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。本引數可以用RightMargin關鍵字轉義為列印區域相對於紙張的“右邊距”。 Height: 列印區域的高度,整數或字元型,整數時預設長度單位為px。字元型時可包含單位名:in(英寸)、cm(釐米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米,控制元件按這個值自動分頁。本引數可以用BottomMargin關鍵字轉義為列印區域相對於紙張的“下邊距”。 strHtmlContent: 超文字程式碼內容,字元型,未限制長度。可以是一個完整的頁面超文字程式碼,或者是一個程式碼段落,也可以是形式的URL地址。 Lodop專有樣式和屬性有: ●程式碼中若包含style="page-break-after:always"或style="page-break-before:always",該元素稱為“強制分頁元素”,控制元件會在該元素處分頁。 ●程式碼中的標籤IMG如果有transcolor屬性,則可以實現透明列印圖片。例如屬性格式為:transcolor="#FFFFFF"表示用白色作為透明底色,這裡的顏色值可以是“#”加三色16進位制值組合,也可以是英文顏色名。這個專有屬性再配合IMG的position: absolute可以實現“先字後章”的公章列印效果。 ●程式碼中的元素如果包含borderthin屬性,如果屬性值等於true,則該元素的border在合併單元格時會採用單細線模式。 結果:無 建議或要求: 要求在列印初始化後使用,建議在畫線類函式之後呼叫。注意“強制分頁元素”要符合xhtml規範,建議用跨整行的元素,內容不能空,內容可以是“ ”。強制分頁符對其它Lodop函式無效,僅適用本函式。 |
名稱:增加表格列印項(超文字模式) 格式:ADD_PRINT_TABLE(Top,Left,Width,Height,strHtml) 功能:用超文字增加一個表格列印項,設定該表格在每個紙張內的位置和區域大小。列印時只輸出首個頁面元素table的顯示內容,當table內包含thead或tfoot時,一旦表格被分頁,則每個列印頁都輸出表頭(thead)或表尾(tfoot)。 引數: Top: 表格資料頭(頁頭thead)在紙張內的上邊距,整數或字元型,整數時預設長度單位為px。字元型時可包含單位名:in(英寸)、cm(釐米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Left: 表格資料頭(頁頭thead)在紙張內的左邊距,整數或字元型,字元型時可包含單位名:in(英寸)、cm(釐米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Width: 列印區域的寬度,整數或字元型,整數時預設長度單位為px。字元型時可包含單位名:in(英寸)、cm(釐米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。本引數可以用RightMargin關鍵字轉義為列印區域相對於紙張的“右邊距”。 Height: 表格資料體(tbody)區域的高度,整數或字元型,整數時預設長度單位為px。字元型時可包含單位名:in(英寸)、cm(釐米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。控制元件按這個值自動分頁。本引數可以用BottomMargin關鍵字轉義為列印區域相對於紙張的“下邊距”。 strHtml: 超文字程式碼內容,字元型,未限制長度。可以是一個完整的頁面超文字程式碼,或者是一個程式碼段落,也可以是形式的URL地址。要求實際內容中至少包含一個table元素。
結果:無 建議或要求: 要求在列印初始化後呼叫,建議在畫線類函式之後呼叫。 |
名稱:增加超文字列印項(URL模式) 格式:ADD_PRINT_URL(Top,Left,Width,Height,strURL) 功能:按URL地址增加超文字列印項,設定該列印項在紙張內的位置和區域大小。 引數: Top: 所增列印項在紙張內的上邊距,整數或字元型,整數時預設長度單位為px。字元型時可包含單位名:in(英寸)、cm(釐米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Left: 所增列印項在紙張內的左邊距,整數或字元型,整數時預設長度單位為px。字元型時可包含單位名:in(英寸)、cm(釐米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Width: 列印區域的寬度,整數或字元型,整數時預設長度單位為px。字元型時可包含單位名:in(英寸)、cm(釐米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。本引數可以用RightMargin關鍵字轉義為列印區域相對於紙張的“右邊距”。 Height: 列印區域的高度,整數或字元型,整數時預設長度單位為px。字元型時可包含單位名:in(英寸)、cm(釐米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。控制元件按這個值自動分頁。本引數可以用BottomMargin關鍵字轉義為列印區域相對於紙張的“下邊距”。 strURL: 頁面URL地址,字元型,未限制長度。 結果:無 建議或要求: 要求在列印初始化後呼叫,建議在畫線類函式之後呼叫。 |
名稱:增加純文字列印項 格式:ADD_PRINT_TEXT(Top,Left,Width,Height,strContent) 功能:增加純文字列印項,設定該列印項在紙張內的位置和區域大小,文字內容在該區域內自動折行,當內容超出區域高度時,如果物件被設為“多頁文件”則會自動分頁繼續列印,否則內容被擷取。 引數: Top: 列印項在紙張內的上邊距,整數或字元型,整數時預設長度單位為px。字元型時可包含單位名:in(英寸)、cm(釐米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。當上邊距超過紙張高度時,列印項被輸出在下一頁(或更下頁)。 Left: 列印項在紙張內的左邊距,整數或字元型,整數時預設長度單位為px。字元型時可包含單位名:in(英寸)、cm(釐米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Width: 列印區域的寬度,整數或字元型,整數時預設長度單位為px。字元型時可包含單位名:in(英寸)、cm(釐米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。本引數可以用RightMargin關鍵字轉義為列印區域相對於紙張的“右邊距”。 Height: 列印區域的高度,整數或字元型,整數時預設長度單位為px。字元型時可包含單位名:in(英寸)、cm(釐米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。本引數可以用BottomMargin關鍵字轉義為列印區域相對於紙張的“下邊距”。 strContent: 純文字內容,字元型,未限制長度。 結果:無 建議或要求: 要求在列印初始化後呼叫,建議在畫線類函式之後呼叫。 |
名稱:增加圖片列印項 格式:ADD_PRINT_IMAGE(Top,Left,Width,Height,strHtmlContent) 功能:增加圖片列印項,設定該列印項在紙張內的位置和區域大小。 引數: Top: 所增列印項在紙張內的上邊距,整數或字元型,整數時預設長度單位為px。字元型時可包含單位名:in(英寸)、cm(釐米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Left: 所增列印項在紙張內的左邊距,整數或字元型,整數時預設長度單位為px。字元型時可包含單位名:in(英寸)、cm(釐米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Width: 圖片的寬度,整數或字元型,整數時預設長度單位為px。字元型時可包含單位名:in(英寸)、cm(釐米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。本引數可以用RightMargin關鍵字轉義為列印區域相對於紙張的“右邊距”。 Height: 圖片的高度,整數或字元型,整數時預設長度單位為px。字元型時可包含單位名:in(英寸)、cm(釐米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。圖片大時被擷取,不會分到下頁。本引數可以用BottomMargin關鍵字轉義為列印區域相對於紙張的“下邊距”。 strHtmlContent: 本引數是字元型,有三種情況:一是超文字程式碼內容;二是本地檔名內容;第三是WEB地址。第一種情況一般是用IMG標籤組成的超文字程式碼段落。第二種情況是本地檔名全路徑,格式如“C:/test.jpg”。第三種情況是是形式的URL地址。 結果:無 建議或要求: 要求在列印初始化後呼叫,建議在畫線類函式之後呼叫。
|