免费下载应用软件、交流使用经验。

软件下载 经验交流 软件开发 专题论述 请君留言 网站介绍 休闲时光 返回主页
 
条码打印程序

作者:本人     来源:本站

***************************************************
* 绘制条码图片                                    *
***************************************************
* 进入参数:                                      *
* 条码代码(由10BS四个字符的代码组成              *
* 可视字符                                        *
* 图片文件名(必须指定后缀名,后缀名决定图片类型)*
***************************************************
* 返回参数(无)                                  *
***************************************************

** 本程序是根据条码代码(由10BS四个字符组成)来绘制条码图片,调用这个绘图程序之前需要先按不同条码的规则先将可视字符转换成由10BS组成的条码代码。


PARAMETERS cgcode,cgtext,cgfile

cgcode=STRTRAN(cgcode,"B",REPLICATE("1",3))        && 将代码串中的“B”用3个“1”替换
cgcode=STRTRAN(cgcode,"S",REPLICATE("0",3))        && 将代码串中的“S”用3个“0”替换

nglen=LEN(cgcode)                                  && 计算代码位数

ogBitmap=NEWOBJECT("gpBitmap", "_GDIplus.vcx")     && 建立绘图板对象
WITH ogBitmap
    .Create(nglen+4,46)                            && 设定绘图板宽度和高度
    .SetResolution(100,100)                        && 設定分辨率(x,y 的 DPI 値)
ENDWITH 

ogColor = NEWOBJECT("gpColor", "_GDIplus.vcx")     && 建立颜色对象
ogPen = NEWOBJECT("gpPen", "_GDIplus.vcx")         && 建立画笔对象
ogFont = NEWOBJECT("gpFont", "_GDIplus.vcx")       && 建立字体对象
ogStringFormat = NEWOBJECT("gpStringFormat", "_GDIplus.vcx")
ogTextBrush = NEWOBJECT("gpSolidBrush", "_GDIplus.vcx")
ogPoint = NEWOBJECT("gpPoint", "_GDIplus.vcx")
ogGraphics = NEWOBJECT("gpGraphics", "_GDIplus.vcx")&& 建立图形对象
WITH ogGraphics
    .CreateFromImage(ogBitmap)                     && 指定图形对象的设备,此处指向已建立的ogBitmap绘图板对象
    ogColor.Set(255,255,255)                       && 设定颜色(设定为白色)
    .Clear(ogColor)                                && 用役定的颜色填充整个图形,可用于背景颜色
    
    ** 绘制条码
    ogColor.Set(0,0,0)                             && 改变颜色(设定为黑色)
    ogPen.Create(ogColor,1)                        && 將指定的赋予画笔,并指定画笔宽度
    FOR ngi=1 TO nglen                             && 开始循环绘制条码
        IF SUBSTR(cgcode,ngi,1)="1"                && 逐个取出字符代码
            ngt=ngi*1+1                            && 计算当前的X座标
            .DrawLine(ogPen,ngt,1,ngt,30)          && 用设定的画笔绘制条码
        ENDIF 
    ENDFOR
    
    ** 打印可视字符
    ogFont.Create("Arial", 9, 0, 3)                && 设置文本字体
    ogTextBrush.Create(ogColor)                    && 设定文本颜色
    ngstat=(nglen-LEN(cgtext)*8)/2+2
    ogPoint.Create(ngstat, 32)                     && 设定文本左上角位置
    .DrawStringA(cgText, ogFont, ogPoint, ogStringFormat, ogTextBrush)
ENDWITH 
ogBitmap.SaveToFile(cgfile,"image/bmp")            && 将绘图板保存为指定的文件
RELEASE ALL LIKE og*                               && 删除所有绘图对象
RETURN 

注:

发表日期:2011-7-22     修改日期:

备案序号:赣ICP备05002359号

建议使用1024*768分辩率浏览 ☆版权所有 摘抄或转载须得到书面许可☆ Hujiajun ©1999,2016
E-Mail: hu-jj@21cn.com