PHP列印條碼

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