<?php
header('Content-Type:text/html;charset=big5');
/*
傳入參數:
*$v_cmdstr 標籤格式代碼,其中動態變量分別有$SN1、$MS1、$SIZE1、$SKU1等等,使用^_^分割。
*$v_snstr 傳入需要批量列印的SN字符串,每個SN之間用逗號隔開。
*$v_sizestr 傳入需要批量列印的SIZE字符串,每個SIZE之間用逗號隔開。
*$v_msstr 傳入需要批量列印的料號型號字符串,每個料號型號之間用逗號隔開。
*$v_descstr 傳入需要批量列印的描述字符串,每個描述之間用逗號隔開。
*$v_skustr 傳入需要批量列印的SKU字符串,每個SKU之間用逗號隔開。
*/
/*打開列印緩存文件如果不存在則創建該文件*/
$handle=fopen('C:/TEMP/sn.txt','w+');
/*清空文件*/
fwrite($handle,'');
/*關閉文件*/
fclose($handle);
/*將傳入的SN字符串轉化為一維數組*/
$v_count1=explode('^_^',$v_cmdstr);
if(count($v_count1)>1){
$rowcmd=explode('^_^',$v_cmdstr);
}else{
$rowcmd[0]=$v_cmdstr;
}
$v_cmd = $rowcmd[0];
/*檢測列印代碼中有幾個$SN1參數,用於判斷幾聯列印*/
$v_c1=count(explode('$SN1',$v_cmd));
$v_c2=count(explode('$SN2',$v_cmd));
$v_c3=count(explode('$SN3',$v_cmd));
if($v_c1>1){$pcount=1;}//判斷為1式1聯標籤
if($v_c2>1){$pcount=2;}//判斷為1式2聯標籤
if($v_c3>1){$pcount=3;}//判斷為1式3聯標籤
/*將傳入的SN字符串轉化為一維數組*/
$v_count1=explode(',',$v_snstr);
if(count($v_count1)>1){
$row=explode(',',$v_snstr);
$nrows=count($row);
$rows=ceil($nrows/$pcount);
}else{
$rows=1;
$nrows=1;
$row[0]=$v_snstr;
}
/*將傳入的SIZE字符串轉化為一維數組*/
$v_count1=explode(',',$v_sizestr);
if(count($v_count1)>1){
$rowsize=explode(',',$v_sizestr);
}else{
$rowsize[0]=$v_sizestr;
}
/*將傳入的料號型號字符串轉化為一維數組*/
$v_count1=explode(',',$v_msstr);
if(count($v_count1)>1){
$rowms=explode(',',$v_msstr);
}else{
$rowms[0]=$v_msstr;
}
/*將傳入的描述字符串轉化為一維數組*/
$v_count1=explode(',',$v_descstr);
if(count($v_count1)>1){
$rowdesc=explode(',',$v_descstr);
}else{
$rowdesc[0]=$v_descstr;
}
/*將傳入的SKU字符串轉化為一維數組*/
$v_count1=explode(',',$v_skustr);
if(count($v_count1)>1){
$rowsku=explode(',',$v_skustr);
}else{
$rowsku[0]=$v_skustr;
}
$j=0;
for($i=0;$i<$rows;$i++){
$command = $v_cmd;
/*每次循環開始清空上一寫入標籤信息*/
$temp1='';$tsize1='';$tms1='';$tdesc1='';$tsku1='';
$temp2='';$tsize2='';$tms2='';$tdesc2='';$tsku2='';
$temp3='';$tsize3='';$tms3='';$tdesc3='';$tsku3='';
if($j<$nrows){
$temp1 = $row[$j];
$tsize1= $rowsize[$j];
$tms1 = $rowms[$j];
$tdesc1= $rowdesc[$j];
$tsku1 = $rowsku[$j];
//echo $v_c3;
if($v_c1>1){//當標籤為一聯的時候累加替換方式
$command=str_replace('$SN1',$temp1,$command);
$command=str_replace('$SIZE1',$tsize1,$command);
$command=str_replace('$MS1',$tms1,$command);
$command=str_replace('$DESC1',$tdesc1,$command);
$command=str_replace('$SKU1',$tsku1,$command);
$j++;
}
if($v_c2>1){//當標籤為二聯的時候累加替換方式
$temp2 = $row[$j];
$tsize2= $rowsize[$j];
$tms2 = $rowms[$j];
$tdesc2= $rowdesc[$j];
$tsku2 = $rowsku[$j];
$command=str_replace('$SN2',$temp2,$command);
$command=str_replace('$SIZE2',$tsize2,$command);
$command=str_replace('$MS2',$tms2,$command);
$command=str_replace('$DESC2',$tdesc2,$command);
$command=str_replace('$SKU2',$tsku2,$command);
$j++;
}
if($v_c3>1){//當標籤為三聯的時候累加替換方式
$temp3 = $row[$j];
$tsize3= $rowsize[$j];
$tms3 = $rowms[$j];
$tdesc3= $rowdesc[$j];
$tsku3 = $rowsku[$j];
$command=str_replace('$SN3',$temp3,$command);
$command=str_replace('$SIZE3',$tsize3,$command);
$command=str_replace('$MS3',$tms3,$command);
$command=str_replace('$DESC3',$tdesc3,$command);
$command=str_replace('$SKU3',$tsku3,$command);
$j++;
}
/*打開緩存文件將信息加入到內容後面*/
$handle=fopen('C:/TEMP/sn.txt','a+');
fwrite($handle,$command);
fclose($handle);
}
}
/*在LPT1端口的列印上面列印文件*/
$msg = exec('copy C:\\TEMP\\sn.txt lpt1:');
/*輸入頁面消息*/
echo $msg;
?>
PHP列印條碼
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.