2015-06-04 41 views
3

我在codeigniter中使用條碼39庫來生成條碼。帶條碼39庫的打印條碼未被掃描

下面是我用來生成條形碼的幫助函數。

function generatebarcode12($Qty,$OrderId,$OrderItemId,$ServiceCatId){ 
    $ci =& get_instance(); 
    $ci->load->library('Barcode39'); 


    $ci->load->helper('upload_function'); 

    $configArr = array(
      'thickness' => 30, 
      'resolution' => 1, 
      'fontsize' => 2, 
      'a1' => 'A', 
      'a2' => '', 
      'code' => 'code39' 
    ); 

    $ci->load->library('barcode/barcodeclass',$configArr); 

    $UploadDirConfig = uploadDirctoryConfig('barcode',$OrderId); 

    makeDirectory($UploadDirConfig['main_dir_full_path']); 
    makeDirectory($UploadDirConfig['sub_dir_barcode']); 
    makeDirectory($UploadDirConfig['sub_child_dir_full_path']); 
    $uploadpath = $UploadDirConfig['sub_child_dir_full_path']; 

    for ($i=0;$i<$Qty;$i++){ 
     $barcode = generate_barcode_no($OrderId, $OrderItemId, $ServiceCatId, $Qty); 
     $chkunique = checkbarcode_unique($barcode); 
     while(!$chkunique){ 
      $barcode = generate_barcode_no($OrderId, $OrderItemId, $ServiceCatId, $Qty); 
      $chkunique = checkbarcode_unique($barcode); 
     } 

     if($barcode){ 
      $filename = $barcode.'.gif'; 

      $bc = new Barcode39($barcode); 
      // set text size 
      $bc->barcode_text_size = 1; 
      // set barcode bar thickness (thick bars) 
      $bc->barcode_bar_thick = 2; 
      // set barcode bar thickness (thin bars) 
      $bc->barcode_bar_thin = 1; 
      $bc->barcode_height = 50; 

      if(file_exists($uploadpath.$filename)){ 
       $output = true; 
       $output = $bc->draw($uploadpath.$filename);//Generate barcode with method2 
       //$output = $ci->barcodeclass->generate($barcode,$filename,$uploadpath);//Generate barcode with method1 
      }else{ 
       $output = $bc->draw($uploadpath.$filename);//Generate barcode with method2 
       //$output = $ci->barcodeclass->generate($barcode,$filename,$uploadpath);//Generate barcode with method1 
      } 

      if($output){ 


       $data = array(); 
       $data['OrderId']  = $OrderId; 
       $data['OrderItemId'] = $OrderItemId; 
       $data['Code']   = $barcode; 
       $data['ImageName']  = $filename; 
       $data['Status']   = 'InProgress'; 
       $data['CreatedAt']  = get_curr_datetime(); 
       $data['CreatedBy']  = get_login_user_id(); 
       grid_add_data($data,TBL_BARCODE); 
      } 
     } 
    } 

    return $UploadDirConfig; 
} 

我90度以下使用CSS代碼生成的旋轉條碼圖像:

#rotate90deg { 
    -webkit-transform: rotate(90deg); 
    -moz-transform: rotate(90deg); 
    -o-transform: rotate(90deg); 
    -ms-transform: rotate(90deg); 
    transform: rotate(90deg); 
} 

我使用TSC TTP-244加打印機打印條碼和摩托羅拉掃描器掃描條形碼。

主要問題是在12個條形碼中只有2到3個左右的條形碼被掃描。

請幫我這個。

@Swinders:實際上它不可能與您分享未掃描的條形碼圖像,但我附上了一個正在打印的掃描樣本條形碼圖像。

enter image description here

我希望這可以幫助你!

+0

您能否提供可掃描和不可掃描的代碼示例? – Swinders

+0

嗨Swinders,我掃描的代碼是正常的整數,如1-1-1或15-22-11。我還想告訴我,當我改變我的配置陣列時,增加了條形碼的厚度,他們正在被掃描。但我真的想知道這個問題可能是什麼? –

+0

您能否顯示不作爲圖像掃描的示例代碼? – Swinders

回答

0

當您將生成的條形碼圖像旋轉90度時,應檢查打印機是否正確打印了代碼。

我已經看到,有時一個線性代碼(如Code39)打印下來的標籤會稍微擠壓在一些地方,可能是由於媒體不自由餵食。如果條的厚度太小,則介質進給可能更爲關鍵。

打印整個標籤時,通常打印線性(1D)代碼似乎更可靠。

+0

不,打印條形碼沒有問題。所有條形碼都能正確打印。 –

+0

@SwapnilPunekar水平打印時,代碼是否正確打印和掃描? – Swinders

+0

其實我的打印機有一個非常狹窄的地帶,因爲它不可能水平打印它們。這就是爲什麼我在印刷前旋轉它們。 –