web打印控件

一般我們使用web打印都是把要打印的信息放在一個Iframe 或一個DIV中,傳到打印機中 ,這樣做比較麻煩的是,每次打印都要有個預覽的提示,但是最麻煩的是,頁面的佈局,整個頁面打印出來的效果不好,行距,也邊距,等都不對稱。

 

網上找了半天發現這個控件組件不錯:

WEB應用平臺—LAPUTAC (一個同時支持數據在服務器、客戶端存儲,同時支持WEB應用模式和單獨打包模式的領先應用平臺,詳見http://www.4Fang.net/apps/SaaS/ )

 

PAZU 的永久主站網址 http://www.4Fang.net/tech/pazu.html

 

PAZU 的永久下載網址 http://www.4Fang.net/4ff/sc_setup.exe

 

PAZU 開發包下載網址 http://www.4Fang.net/4ff/pazu.rar 

 

PAZU的討論和意見反饋請到4Fang的論壇 http://www.4Fang.net/BBS/

<script>

function SaleSuccess()

{

    isprev=false;
    var isPromtUser=false;
    pazu.TPrinter.marginTop=parseInt("0");                 //屬性 上邊距
    pazu.TPrinter.marginBottom=parseInt("0");                 //屬性 下邊距
    pazu.TPrinter.marginLeft=parseInt("0");                   //屬性  左邊距
    pazu.TPrinter.marginRight=parseInt("0");                  //屬性  右邊距
    pazu.TPrinter.footer="";                  //屬性 頁腳
    pazu.TPrinter.header="";                  //屬性  頁眉
    pazu.TPrinter.orientation=1;                   //屬性 整型:紙張方向 1=縱向  2=橫向
    pazu.TPrinter.paperName="58mm * 自定義長度";                //屬性   紙張大小名稱
    // pazu.TPrinter.printerName="Zonerich AB-POS58";            //屬性   打印機名稱
    pazu.TPrinter.getDefaultPrinter();
    pazu.TPrinter.isPrintBackground=false;    //屬性  是否打印背景 true / false
    pazu.TPrinter.isZoomOutToFit=true;           //屬性   是否縮放以適應大小打印 true / false
    pazu.TPrinter.printTemplate="";                 //屬性   打印模板的URL
    pazu.TPrinter.copies="1";               //屬性   打印份數
    pazu.TPrinter.range="";                 //屬性   頁面範圍
    pazu.TPrinter.isCopyByCopy=false; //屬性    是否整份打印結束後再打印下一份 true / false
    window.frames["print_Iframe"].focus();
    pazu.TPrinter.doPrint(isPromtUser);
}

</script>


<!--引入PAZU 控件-->
<div style="display:none">
  <object classid="clsid:AF33188F-6656-4549-99A6-E394F0CE4EA4" codebase="http://www.4Fang.net/4ff/sc_setup.exe" id="pazu" name="pazu"> 
   <param name="License" value="You Need a License from 4Fang"/> 
  </object>  
</div>

 

其中print_Iframe 是我們需要打印的頁面

 

. TPrinter對象詳解

DEMO和實例網頁請看目錄下的pazu_tprinter.html

 

marginTop                     屬性 上邊距   數據類型:數字   單位: 毫米
marginBottom              
屬性 下邊距   數據類型:數字   單位: 毫米
marginLeft                    
屬性  左邊距   數據類型:數字   單位: 毫米
marginRight                 
屬性  右邊距   數據類型:數字   單位: 毫米

例子:把上邊距設置爲10mm

pazu.TPrinter. marginTop=10

 

footer                             屬性 頁腳   數據類型:字符串
header                           
屬性  頁眉   數據類型:字符串

例子:設置頁眉

pazu.TPrinter.header=”這是新的頁眉

要取消頁眉和頁腳,只要賦給它們一個空字符串就行了,例如不要頁眉:

pazu.TPrinter.header=””

同時頁眉和頁腳也支持左中右的對齊方式和自動用日期、URL、頁碼等的填充。這方面的信息可以參考IE這方面的相關文檔

 

 

orientation                     屬性 紙張方向  數據類型:整數1或者2 1=縱向  2=橫向

例子:設置紙張方向爲橫向

pazu.TPrinter. orientation=2

 

paperName                   屬性   紙張大小名稱  數據類型:字符串
printerName                  
屬性   打印機名稱    數據類型:字符串
 
這兩個屬性我們都不要求完全匹配,可以採用左匹配的方式,舉例:

假設您有兩臺打印機,一臺是 Epson 1600K III ,一臺是 HP Deskjet 300。如果你要制定打印機爲 HP Deskjet 300 你有兩種方式:

方式一:全匹配 pazu.TPrinter. printerName=” HP Deskjet 300”

方式二:左匹配 pazu.TPrinter. printerName=” HP”

紙張的大小也是一樣的道理,例如,指定用B5:

pazu.TPrinter. paperName=”B5”

提示:所有紙張格式和所有打印機的列表都可以通過pazu的相應方法取得,你還可以自定義紙張的大小。請看本文相應的章節。

 

isPrintBackground        屬性  是否打印背景  數據類型:Boolean  true / false
isZoomOutToFit            
屬性   是否縮放以適應大小打印  數據類型:Boolean true / false
printTemplate                
屬性   打印模板的URL
copies                            
屬性   打印份數  數據類型:整數,默認爲1
range                              
屬性   頁面範圍  數據類型:字符串
isCopyByCopy               
屬性    是否整份打印結束後再打印下一份   數據類型:Boolean  true / false

說明:

copies屬性允許你當前內容打印多份拷貝

range 你可以指定打印的頁面,例如:

只打印15頁:pazu.TPrinter.range=”1-5”

只打印1,3,5,7頁:pazu.TPrinter.range=”1,3,5,7”

提示:利用range屬性可以實現雙面打印功能

printTemplate屬性是打印模板的URL,詳細的內容請參考微軟的printTemplate技術的說明。

 

 

getPrinters                       方法    返回一個打印機列表,返回以一個回車換行符分隔的字符串
例如:獲得所有的打印機

var ps=pazu.TPrinter.getPrinters();

      //獲得是一個以回車換行分隔的字符串

      //alert(ps);

      var pa=ps.split("/r/n");

      for(var i=0;i<pa.length;i++){

        alert(pa[i]);

      }    

 

 

 

getPaperForms              方法    返回所有紙張格式的列表,返回以一個回車換行符分隔的字符串
getPrinters類似,不同的是getPaperForms是帶參數的,你可以指定獲得那個打印機的紙張類別,沒有參數或者參數爲空字符表示獲得當前默認打印機的紙張列表

例如:var ps=pazu.TPrinter.getPaperForms(“HP deskjet 300”);

 

 

getDefaultPrinter             方法    獲得默認打印機的對象,返回一個Printer Object
printToDefaultPrinter     
方法    把要打印的字符串輸送到默認打印機(配合getDefaultPrinter 使用),參數:字符串

通過返回的對象,你可以控制該打印機,調用該打印機的EndDoc等方法,來實現直接輸出內容到打印機


createPaper                    
方法    按指定的寬度和高度創建自定義紙張

有兩個參數,paperWidth  paperHeight ,參數類型都是數字,單位是釐米。如果你指定的大小的紙張存在,則返回該紙張的名稱,如果不存在,就先創建新的紙張格式並放回新的格式名稱

例如:strDefaultPaper=pazu.TPrinter.createPaper(20,14); //創建20cm*14cm的紙張格式

      alert('成功創建紙張格式:'+strDefaultPaper);


doPrint                             
方法    執行打印

有一個Boolean的參數,該參數表示是否要彈出打印機選擇對話框

例如:不提示用戶直接打印:

pazu.TPrinter.doPrint(false)

 


doPrint_                           
方法    執行打印但是不進行頁面參數設置
doPrint類似,但是沒有參數,而且執行打印前不去進行頁面參數的設置,也不提示用戶

 

doPreview                        方法    打印預覽 沒有參數
doPageSetup                  
方法    執行頁面參數的設置 沒有參數
showPageSetup             
方法    彈出頁面設置窗口 沒有參數

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章