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