用BCB 画 Code128 B模式条码
//--------------------------------------------------------------------------- #include <vcl.h>
#pragma hdrstop #include "Unit1.h"
#include <string>
#include <vector>
#include <map>
#include <Graphics.hpp>
using namespace std;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//--------------------------------------------------------------------------- map<int,AnsiString> g_codemap; bool FillCodeMap(void)
{
if(!g_codemap.empty())
return true; g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]="";
g_codemap[]=""; return true;
} AnsiString Get128CodeString(AnsiString inputData)
{ int checksum = ;
char* arry = inputData.c_str();
for (int i = ; i < inputData.Length() ;i++)
{ char a = *(arry + i);
if (a + >=)
{
checksum += (a - ) * (i + );
}
else
{
checksum += (a + ) * (i + );
}
} checksum = checksum % ;
if (checksum < )
{
checksum += ;
}
else
{
checksum += ;
} vector<int> nV; nV.push_back();
for (int i = ; i < inputData.Length() ;i++)
{
char *p = inputData.c_str() + i;
nV.push_back(*p);
} nV.push_back(checksum);
nV.push_back();
FillCodeMap(); AnsiString reuslt = "";
for (int i = ; i < nV.size() ;i++)
{
reuslt += g_codemap[ nV[i] ];
}
return reuslt; }
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString text = "A012345678901234567";
text = Get128CodeString(text); Graphics::TBitmap* bitmap = new Graphics::TBitmap();
bitmap->Height = ;
int width = ;
for (int i = ; i < text.Length() ;i++)
{
bitmap->Width += width;
char a = *(text.c_str() + i);
bitmap->Canvas->Pen->Width = width;
if (a == '')
{
bitmap->Canvas->Pen->Color = clWhite;
}
else if (a == '')
{
bitmap->Canvas->Pen->Color = clBlack;
} bitmap->Canvas->MoveTo(i*width,);
bitmap->Canvas->LineTo(i*width,bitmap->Height);
}
bitmap->SaveToFile("1.bmp");
Image1->Picture->Bitmap->Assign(bitmap);
delete bitmap;
}
//---------------------------------------------------------------------------
效果,可以用手机二维码扫描试试是什么内容。
参考地址:https://bbs.csdn.net/topics/350125614

用BCB 画 Code128 B模式条码的更多相关文章
- 利用Code128字体将文本转换为code128条形码
利用Code128字体将文本转换为code128条形码[转] 最近在做仓储的项目,许多的打印文件都包含条形码,之前一直使用C39P24DhTt字体直接转换为39码,但是最近要求使用code128编 ...
- 条码知识之十:EAN-128条码(下)
国际物品编码协会(EAN)和美国统一代码委员会(UCC)将CODE-128码引入EAN/UCC系统,并作如下规定:起始符由一个START A/B/C 加一个辅助字符FNC1构成,以区别普通的CODE- ...
- 【设计模式】Singleton模式C++实现
Singleton是设计模式中比较简单的一个.园中的朋友们应该都很熟悉了.前段时间参加xxx外企的面试,和面试官讨论C++的时候正好写了一个.当时由于在有些地方考虑不太周全,代码出现了一些疏漏.不过最 ...
- Singleton模式C++实现
Singleton模式C++实现 Singleton是设计模式中比较简单的一个.园中的朋友们应该都很熟悉了.前段时间参加xxx外企的面试,和面试官讨论C++的时候正好写了一个.当时由于在有些地方考虑不 ...
- OOAD(面向对象分析和设计)GRASP之创建者模式(Creator)又称生成器模式学习笔记
说OOAD是一门玄学,一点都不为过.又或许是因为我之前一直没有很好的建立面向对象的思想,更有可能是因为练得不够多...总之,一直没能很好理解,哪怕把一本叫做<UML和模式应用>的书翻来覆去 ...
- 斑马Zebra ZPLII指令集中文说明解释
我们最常用的斑马(Zebra)条码打印机,应用ZPLII命令来控制打印,说明书中有每条指令的详细说明及相关示例,下面是各指令的中文释义: ^A 对Zebra内置点阵字体缩放 ^A(可缩放/点阵字体 ...
- 使用java Graphics 绘图工具生成顺丰快递电子面单
最近公司需要开发一个公司内部使用的快递下单系统,给我的开发任务中有一个生成电子面单功能,为了下单时更方便,利用此功能使用快递公司给我们的打印机直接打印出电子面单,刚接到这个任务时我想这应该很简单,不就 ...
- Android面试题整理【转载】
面试宝典(5) http://www.apkbus.com/android-115989-1-1.html 面试的几个回答技巧 http://blog.sina.com.cn/s/blog_ad ...
- FastReport使用一——简介
一:FastReport Designer用法简介 1.使用FastReport.Net4文件夹下的Designer.exe进行模版的创建工作 图1 图1中,右键删除除==>数据区 之外的其他区 ...
随机推荐
- Data - 深入浅出学统计 - 上篇
本文是已读书籍的内容摘要,少部分有轻微改动,但不影响原文表达. :以漫画形式来讲解最基本的统计概念和方法. ISBN: 9787121299636 https://book.douban.com/su ...
- robot:循环遍历数据库查询结果是否满足要求
使用list类型变量@{}接收查询结果,再for循环遍历每行数据,取出需要比较的数值
- 【GStreamer开发】GStreamer基础教程14——常用的element
目标 本教程给出了一系列开发中常用的element.它们包括大杂烩般的eleemnt(比如playbin2)以及一些调试时很有用的element. 简单来说,下面用gst-launch这个工具给出一个 ...
- linux中硬盘分区、格式化、挂载
已经接触了小半年的linux,基本命令用的还行,就是涉及到深入操作,就显得不够看了,比如linux中的硬盘操作,于是整理了这篇博客. 1. 主分区,扩展分区,逻辑分区的联系和区别 一个硬盘可以有1 ...
- Hive行列转换
Hive行列转换 1.行转列 (根据主键,进行多行合并一列) 使用函数:concat_ws(‘,’,collect_set(column)) collect_list 不去重 collect_s ...
- 030 Android 第三方开源下拉框:NiceSpinner的使用+自定义Button样式+shape绘制控件背景图+图片选择器(selector)
1.NiceSpinner下拉框控件介绍 Android原生的下拉框Spinner基本上可以满足Android开发对于下拉选项的设计需求,但现在越来越流行的下拉框不满足于Android原生提供的下拉框 ...
- as报错 Multiple root tags Unexpected tokens 这个都是编译器识别问题
从网上复制了个代码,直接复制上,结果一篇红线提示Unexpected tokens 通过去掉空格,还是无法根治,别的地方复制的就没有问题. 通过查看复制的网页源码 可以看到里边<> 这个符 ...
- 自定义注解扩展springMvc的validation注解
文章目录 前言 自定义校验注解 使用 后记 前言 我们都知道 springMvc 的检验框架使用的是 hibernate 的 validator ,检验数据,是有那么一点小爽快: 但是,validat ...
- STM32之中断函数
本文做中断函数的索引,帮助我们找到中断函数名.中断函数参数以及中断服务函数他们的来源,以便我们编程. 1)如果一个工程只有一个中断,则我们可以进行两个步骤就可以了: 使能中断通道 编写中断服务函数 2 ...
- 【转载】Maven入门实践
Maven 确确实实是个好东西,用来管理项目显得很方便,但是如果是通过 Maven 来远程下载 JAR 包的话,我宿舍的带宽是4兆的,4个人共用,有时候用 Maven 来远程下载 JAR 包会显得很慢 ...