利用PAZU打印POS小票
(创建时间:2011年06月04日 00:41:00)
Jangogo : 

以下代码来自 4Fang 在线软件的POS系统

//打印销售小票
function doPrinter(){
 var dfPrinter;
 var pageMargin,maxLength;
 var tempstr1,tempstr2,tempstrarray;//两个临时字符串
 dfPrinter=pazu.TPrinter.getDefaultPrinter();
 dfPrinter.FontSize=6;
 pageMargin=dfPrinter.TextWidth("   ");//左右页边距
 maxLength=dfPrinter.ScaleWidth-pageMargin*2//每一行容纳最大长度
 if(dfPrinter!=null){
  var rtXML=Sheeta.readXML(Pazu.fly('GetBillFormat()','local')).documentElement;
  if(rtXML.childNodes.length>0){
   var tempElement;
   var title,contactinfo,otherinfo,footerinfo;
   var strLen,margin;
     dfPrinter.CurrentX = 12;
     dfPrinter.CurrentY = 240;
   //居中打印标题
   dfPrinter.FontBold=true;
   dfPrinter.FontSize=12;
   tempElement=posProfileObj.BillFormat.Title;
   if(tempElement!=""){
    title=tempElement;
    while(true){
     strLen=dfPrinter.TextWidth(title);
     margin=(dfPrinter.ScaleWidth-strLen)*0.5;
     if(margin>=pageMargin){
      dfPrinter.CurrentX=margin;
      break;
     }
     dfPrinter.FontSize=dfPrinter.FontSize-1;
    }
   }
      pazu.TPrinter.printToDefaultPrinter(title);
   
   //居中打印联系方式
   dfPrinter.FontBold=false;
   dfPrinter.FontSize=7;
   tempElement=posProfileObj.BillFormat.ContactInfo;
   if(tempElement!=""){
    contactinfo=tempElement;
    tempstrarray=contactinfo.split("#");
    for(var i=0;i<tempstrarray.length;i++){
     tempstr1=tempstrarray;
     tempstr2=tempstr1;
     if(dfPrinter.TextWidth(tempstr2) <= maxLength){
      dfPrinter.CurrentX=(dfPrinter.ScaleWidth-dfPrinter.TextWidth(tempstr2))*0.5;
            pazu.TPrinter.printToDefaultPrinter(tempstr2);
     }else{
      while(tempstr2.length>0){
       dfPrinter.CurrentX=pageMargin;
       while(dfPrinter.TextWidth(tempstr2) > maxLength){
        tempstr2=tempstr2.slice(0,-1);
       }
       pazu.TPrinter.printToDefaultPrinter(tempstr2);
       tempstr1=tempstr1.slice(tempstr2.length,tempstr1.length);
       tempstr2=tempstr1;
      }
     }
    }
   }
   pazu.TPrinter.printToDefaultPrinter("");
   
   //居中打印其他信息
   dfPrinter.FontBold=false;
   dfPrinter.FontSize=7;
   tempElement=posProfileObj.BillFormat.MainInfo
   if(tempElement!=""){
    otherinfo=tempElement;
    tempstrarray=otherinfo.split("#");
    for(var i=0;i<tempstrarray.length;i++){
     tempstr1=tempstrarray;
     tempstr2=tempstr1;
     if(dfPrinter.TextWidth(tempstr2) <= maxLength){
      dfPrinter.CurrentX=(dfPrinter.ScaleWidth-dfPrinter.TextWidth(tempstr2))*0.5;
      pazu.TPrinter.printToDefaultPrinter(tempstr2);
     }else{
      while(tempstr2.length>0){
       dfPrinter.CurrentX=pageMargin;
       while(dfPrinter.TextWidth(tempstr2) > maxLength){
        tempstr2=tempstr2.slice(0,-1);
       }
       pazu.TPrinter.printToDefaultPrinter(tempstr2);
       tempstr1=tempstr1.slice(tempstr2.length,tempstr1.length);
       tempstr2=tempstr1;
      }
     }
    }
   }
   pazu.TPrinter.printToDefaultPrinter("");

   //打印商品列表
   dfPrinter.FontBold=true;
   tempstr1="商品名";
   dfPrinter.FontSize=7;
   dfPrinter.CurrentX=pageMargin;
      pazu.TPrinter.printToDefaultPrinter(tempstr1);
   tempstr1="数量       价格";
   dfPrinter.CurrentX=dfPrinter.ScaleWidth-(dfPrinter.TextWidth(tempstr1)+pageMargin)
   dfPrinter.CurrentY=dfPrinter.CurrentY-dfPrinter.TextHeight("");
      pazu.TPrinter.printToDefaultPrinter(tempstr1);
   
   
   var namecode="";
   var num="";
   var price="";
   dfPrinter.FontBold=false;
   dfPrinter.FontSize=7;
   tempstr1="";
   tempstr2=""
   for(var i=0;i<newProductList.ProductsArray.length;i++){
    namecode=newProductList.ProductsArray.productName+"("+newProductList.ProductsArray.productCode+")";
    num=newProductList.ProductsArray.quantity.toString();
    price=formatNumber(newProductList.ProductsArray.amount,2);
    var tempstr1=namecode;
    var tempstr2=tempstr1;
    while(tempstr2.length>0){
     dfPrinter.CurrentX=pageMargin;
     while(dfPrinter.TextWidth(tempstr2) > maxLength){
      tempstr2=tempstr2.slice(0,-1);
     }
     pazu.TPrinter.printToDefaultPrinter(tempstr2);
     tempstr1=tempstr1.slice(tempstr2.length,tempstr1.length);
     tempstr2=tempstr1;
    }
    dfPrinter.CurrentX=dfPrinter.ScaleWidth-(dfPrinter.TextWidth(price)+pageMargin);
        pazu.TPrinter.printToDefaultPrinter(price);
    dfPrinter.CurrentY=dfPrinter.CurrentY-dfPrinter.TextHeight("");
    dfPrinter.CurrentX=dfPrinter.ScaleWidth-(dfPrinter.TextWidth(" ")*12+pageMargin)-dfPrinter.TextWidth(num);
    pazu.TPrinter.printToDefaultPrinter(num);
   }
   
   //打印总计金额
      pazu.TPrinter.printToDefaultPrinter("");
   dfPrinter.FontBold=true;
   dfPrinter.FontSize=9;
   dfPrinter.CurrentX=pageMargin;
   pazu.TPrinter.printToDefaultPrinter("总计");
   var account=formatNumber(newProductList.AmountDetailObj.accountReceivable,2);
   dfPrinter.FontSize=7;
   dfPrinter.CurrentX=dfPrinter.ScaleWidth-(dfPrinter.TextWidth("¥"+account)+pageMargin)
   dfPrinter.CurrentY=dfPrinter.CurrentY-dfPrinter.TextHeight("");
      pazu.TPrinter.printToDefaultPrinter("¥"+account);
   pazu.TPrinter.printToDefaultPrinter("");
   //打印单号,时间,收款员id
   dfPrinter.FontBold=false;
   dfPrinter.FontSize=7;
   var listid=newProductList.ListID;
   dfPrinter.CurrentX=dfPrinter.ScaleWidth-(dfPrinter.TextWidth(listid)+pageMargin)
      pazu.TPrinter.printToDefaultPrinter(listid);
   var time=(new Date()).toLocaleString();
   dfPrinter.CurrentX=dfPrinter.ScaleWidth-(dfPrinter.TextWidth(time)+pageMargin)
      pazu.TPrinter.printToDefaultPrinter(time);
   pazu.TPrinter.printToDefaultPrinter("");
   dfPrinter.CurrentX=dfPrinter.ScaleWidth-(dfPrinter.TextWidth(Const.userid)+pageMargin)
      pazu.TPrinter.printToDefaultPrinter(Const.userid);
   pazu.TPrinter.printToDefaultPrinter("");
   
   //打印底部信息
   dfPrinter.FontBold=false;
   dfPrinter.FontSize=7;
   tempElement=posProfileObj.BillFormat.FooterInfo;
   if(tempElement!=""){
    footerinfo=tempElement;
    tempstrarray=footerinfo.split("#");
    for(var i=0;i<tempstrarray.length;i++){
     tempstr1=tempstrarray;
     tempstr2=tempstr1;
     if(dfPrinter.TextWidth(tempstr2) <= maxLength){
      dfPrinter.CurrentX=(dfPrinter.ScaleWidth-dfPrinter.TextWidth(tempstr2))*0.5;
            pazu.TPrinter.printToDefaultPrinter(tempstr2);
     }else{
      while(tempstr2.length>0){
       dfPrinter.CurrentX=pageMargin;
       while(dfPrinter.TextWidth(tempstr2) > maxLength){
        tempstr2=tempstr2.slice(0,-1);
       }
       pazu.TPrinter.printToDefaultPrinter(tempstr2);
       tempstr1=tempstr1.slice(tempstr2.length,tempstr1.length);
       tempstr2=tempstr1;
      }
     }
    }
   }
   pazu.TPrinter.printToDefaultPrinter("");
   dfPrinter.EndDoc();
  }
 }
}
文档中心