我在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:实际上无法与您分享未扫描的条形码图像,但我附上了我们正在打印进行扫描的条形码图像。
我希望这可以帮到你!
答案 0 :(得分:0)
当您将生成的条形码图像旋转90度时,应检查打印机是否正确打印代码。
我已经看到,当在标签上打印时,有时候线性代码(例如Code39)会在某些地方稍微压扁,可能是由于介质无法自由进给。如果棒的厚度太小,则介质进给可能更为关键。
通常,在标签上打印时,打印线性(1D)代码似乎更可靠。