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(); } } }
文档中心