带有Barcode39库的打印条形码未被扫描

时间:2015-06-04 12:42:18

标签: css codeigniter barcode barcode-scanner

我在codeigniter中使用Barcode39库来生成条形码。

下面是我用来生成条形码的辅助函数。

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;
}

我使用以下css代码将生成的条形码图像旋转90度:

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

我使用TSC TTP-244 Plus打印机打印条形码,使用Motorola Scanner扫描条形码。

主要问题是,在12个条形码中,只有大约2到3个条形码被扫描。

请帮助我。

@Swinders:实际上无法与您分享未扫描的条形码图像,但我附上了我们正在打印进行扫描的条形码图像。

enter image description here

我希望这可以帮到你!

1 个答案:

答案 0 :(得分:0)

当您将生成的条形码图像旋转90度时,应检查打印机是否正确打印代码。

我已经看到,当在标签上打印时,有时候线性代码(例如Code39)会在某些地方稍微压扁,可能是由于介质无法自由进给。如果棒的厚度太小,则介质进给可能更为关键。

通常,在标签上打印时,打印线性(1D)代码似乎更可靠。