当前位置:首页>>条码知识>>条码数据采集与条码打印程序设计原理 (2)

条码数据采集与条码打印程序设计原理 (2)

WINDOWS操作系统的打印机制如下图所示:? 首先,应用程序应首先获得指向打印机设备描述表的一个句柄,使得打印机驱动程序被加载到内存,并进行打印机的初始化;
? 其次,应用程序程序调用GDI函数进行绘图(画出条码),GDI模块一般将这些绘图调用存储在元文件中;
? 打印机驱动程序将元文件中的各种绘图指令翻译成打印机能够识别的指令集;
? 打印机进行打印。
在这个打印机的流程当中,不难看出,在应用程序当中我们要作的就是绘图,其余的工作就交给操作系统以及打印机驱动程序去做。对于我们要进行的条码打印来说,关键就集中于如何绘制条码,下面之例子即为CODE39之绘制程序,读者了解后不难举一反三:

//此程序是基于C++BUILDER5.0之语法;已在此环境下编译通过
//此程序仅实现绘制CODE39的最原始/最基本的功能
//读者在编写程序前应先了解条所要绘制之条码的详细规格;
{
…………
TPrinter *printer;
printer=Printer(); //得到一个操纵打印机类的实例,
String print_code;
print_code=return_logicCODE('*'); //code39的起始符及终止符均为”*”;
for (int i=1; i<=MaskEdit1->Text.Length(); i++)
{
char *code;
String temp;
temp=MaskEdit1->Text.SubString(i,1);
code=temp.c_str();
print_code+="0"; //CODE39的每个数据用一条空来分隔
temp=return_logicCODE(*code);//得到每一个数据的在CODE39中逻
//辑码
if (temp=="0") return;
print_code+=temp;
}
print_code+="0";
print_code+=return_logicCODE('*');

printer->BeginDoc();
printer->Canvas->Pen->Width=2; //CODE39每一个逻辑位元的宽度,此处设为2个//像素
printer->Canvas->MoveTo(100,60);
int x;
x=100;
for (int k=0;k<print_code.Length();k++)
{
if (print_code.SubString(k+1,1)=="0" )
{
printer->Canvas->Pen->Color=clWhite; //如果逻辑位元为“0”画条白线
}
else
{
printer->Canvas->Pen->Color=clBlack; //如果逻辑位元为“1”画条黑线
}

printer->Canvas->LineTo(x,120);
x=x+printer->Canvas->Pen->Width;
printer->Canvas->MoveTo(x,60);

}
printer->EndDoc();

}
String return_logicCODE(char code) //将每个数据转换为CODE39的逻辑码,若不
//再CODE39字符集内的数据则返回“0”
{
switch(code)
{
case '0': return "101001101101"; //code--0
case '1': return "110100101011"; //code--1
case '2': return "101100101011"; //code--2
case '3': return "110110010101"; //code--3
case '4': return "101001101011"; //code--4
case '5': return "110100110101"; //code--5
case '6': return "101100110101"; //code--6
case '7': return "101001011011"; //code--7
case '8': return "110100101101"; //code--8
case '9': return "101100101101"; //code--9
case '+': return "100101001001"; //code--+
case '-': return "100101011011"; //code---
case '*': return "100101101101"; //code--*
case '/': return "100100101001"; //code--/
case '%': return "101001001001"; //code--%
case '$': return "100100100101"; //code--$
case '.': return "110010101101"; //code--.
case ' ': return "100110101101"; //code--空白
case 'A': return "110101001011"; //code--A
case 'B': return "101101001011"; //code--B
case 'C': return "110110100101"; //code--C
case 'D': return "101011001011"; //code--D
case 'E': return "110101100101"; //code--E
case 'F': return "101101100101"; //code--F
case 'G': return "101010011011"; //code--G
case 'H': return "110101001101"; //code--H
case 'I': return "101101001101"; //code--I
case 'J': return "101011001101"; //code--J
case 'K': return "110101010011"; //code--K
case 'L': return "101101010011"; //code--L
case 'M': return "110110101001"; //code--M
case 'N': return "101011010011"; //code--N
case 'O': return "110101101001"; //code--O
case 'P': return "101101101001"; //code--P
case 'Q': return "101010110011"; //code--Q
case 'R': return "110101011001"; //code--R
case 'S': return "101101011001"; //code--S
case 'T': return "101011011001"; //code--T
case 'U': return "110010101011"; //code--U
case 'V': return "100110101011"; //code--V
case 'W': return "110011010101"; //code--W
case 'X': return "100101101011"; //code--X
case 'Y': return "110010110101"; //code--Y
case 'Z': return "100110110101"; //code--Z
default: return "0";
}
……….

 
相关资讯:

·商品条码印刷资格认定工作实施办 ·企业申请条码须知
·DNA条码条形码让造假者望尘莫及 ·从陶瓷条码标识的推广看气瓶电子
·金属条码系统的应用       ·金属条码——集装箱自动识别系统
·金属条码介绍 ·自动识别技术与电子商务  
·商品条码的注册及续展 ·广州广州条码技术网公司路线图
·数据采集器的原理 ·条码技术在客运系统中的应用解决
·扫描枪原理 ·扫描枪种类
·扫描枪的基本知识 ·条形码描器枪工作方式
·如何选择合适的条码打印机 ·Opticon 7724 无线条码扫描器 
·DATAMAX条形码打印机关键字 ·GODEX条形码打印机关键字

  公司首页
  新闻中心
  条码打印机
  条码扫描器
  数据采集器
  条码检测仪
  条码软件
  条码标签
  条码碳带
  解决方案
  产品推荐
  条码知识
  RFID无线射频
  条码无线产品
  其他条码产品
  客户服务
  广州条码技术在线
产品推荐
产品导航

新闻中心
 业界新闻  广州条码技术网新闻    
条码打印机
 TEC条码打印机  Intermec条码打印机  SATO条码打印机  Shinsei条码打印机
 Ring条码打印机  Lexmark条码打印机  ARGOX条码打印机  GODEX条码打印机
 TSC条码打印机  Zebra条码打印机  Avery条码打印机  DATAMAX条码打印机
 RICOH条码打印机  Citizen条码打印机  Cab条码打印机  北洋条码打印机
 Elephant条码打印机  博思德POSTEK条码打印机    
条码扫描器
 ACAN条码扫描器  ARGOX条码扫描器  Metrologic条码扫描器  Symbol条码扫描器
 恒山条码扫描器  CipherLAB条码扫描器  Intermec条码扫描器  新大陆条码扫描器
 德国SICK条码扫描器  HHP扫描器  datalogic条码扫描器  Opticon条码扫描器
 psc条码扫描器  Microscan扫描器  大硕条码扫描仪  TOHKEN(东研)条码扫描器
 Zebex条码扫描器  Scanhero 扫描器  ncr条玛扫描器  
数据采集器
 CASIO数据采集器  DENSO数据采集器  SYMBOL数据采集器  欣技数据采集器
 新大陆数据采集器  兰德数据采集器  Argox数据采集器  Intermec数据采集器
 HHP数据采集器  Unitech采集器  ZEBEX数据采集器  Opticon数据采集器
 psc数据采集器      

   
tec条码标签打印机
         公司介绍 | 联系我们 | 工作机会 | 法律条款 | 产品答疑
         Copyright (C) 2003 - 2005 Www.Gzlike.Net All Rights Reserved.