当前位置: 首页 > wzjs >正文

网站建设平台用乐云践新谷歌搜索引擎免费入口镜像

网站建设平台用乐云践新,谷歌搜索引擎免费入口镜像,宁波外贸网站制作公司,百度做推广一般要多少钱Code 11 是一种高密度的数字条形码,主要用于标识电信设备和电子元件。它的名称来源于其能够编码 11 种字符:数字 0-9 和连接符 -。Code 11 是一种双向可读的条形码,支持校验位以提高数据准确性。 在使用BARCODE_CODE11码制生成code 11码时可指…

Code 11 是一种高密度的数字条形码,主要用于标识电信设备和电子元件。它的名称来源于其能够编码 11 种字符:数字 0-9 和连接符 -。Code 11 是一种双向可读的条形码,支持校验位以提高数据准确性。
在使用BARCODE_CODE11码制生成code 11码时可指定其是否校验。默认是以两位校验码的设置生成。文档中的描述为:
Two modulo-11 check digits are added by default. To add just one check digit, set --vers=1 (API option_2 = 1). To add no check digits, set --vers=2 (API option_2 = 2).
故而如果我们需要更改其校验规则只需在生成时更改option_2参数的值即可。
生成代码如下:

struct zint_symbol* symbol;
symbol = ZBarcode_Create();
symbol->symbology = BARCODE_CODE11;   //码制
symbol->input_mode = DATA_MODE; //数据编码格式
symbol->option_2 = 1;   //默认添加俩校验位、1 添加一个校验位、2 不添加校验位std::string strContent = "123456";
CRect rcCode(0,0,200,50);
int nRet = ZBarcode_Encode_and_Buffer_Vector(symbol, (unsigned char*)strContent.c_str(), strContent.size(), 0);
if (nRet == 0)
{//successZBarcode_Print(symbol, 0);std::vector<CRect> vecBlackRect;if (symbol->vector){struct zint_vector_rect* rect = symbol->vector->rectangles;while (rect){CRect rcTmp;rcTmp.left = rect->x;rcTmp.top = rect->y;rcTmp.right = rcTmp.left + rect->width;rcTmp.bottom = rcTmp.top + rect->height;vecBlackRect.push_back(rcTmp);rect = rect->next;        }    }double nDrawUint = (double)rcCode.Width() / symbol->width;double nUint = (double)symbol->bitmap_width / symbol->width;std::vector<CRect> vecDrawBlack;  //绘制条码条的真实区域for (int i = 0; i < vecBlackRect.size(); i++){CRect rcTmp(vecBlackRect[i]);rcTmp.left = rcTmp.left / nUint * nDrawUint;rcTmp.right = rcTmp.right / nUint * nDrawUint;rcTmp.bottom = rcTmp.top + rcCode.Height();vecDrawBlack.push_back(rcTmp);   }//绘制条码//可选择是否绘制条码背景色{COLORREF clrBkgnd = GETCOLOR(L"RGB(255,255,255)");CAutoRefPtr<IBrush> brush, oldbrush;pRT->CreateSolidColorBrush(clrBkgnd, &brush);pRT->SelectObject(brush, (IRenderObj**)&oldbrush);pRT->FillRectangle(&rcCode);pRT->SelectObject(oldbrush, NULL);    }CAutoRefPtr<IPath> path;GETRENDERFACTORY->CreatePath(&path);for (int i = 0; i < vecDrawBlack.size(); i++){CRect rcBlack;rcBlack.left += vecDrawBlack[i].left + rcCode.left;rcBlack.top += vecDrawBlack[i].top + rcCode.top;rcBlack.right = rcBlack.left + vecDrawBlack[i].Width();rcBlack.bottom = rcBlack.top + vecDrawBlack[i].Height();path->addRect(rcBlack);  }COLORREF clrFrgnd = GETCOLOR(L"RGB(0,0,0)"); //可自定义条码前景色CAutoRefPtr<IBrush> brush, oldbrush;pRT->CreateSolidColorBrush(clrFrgnd, &brush);pRT->SelectObject(brush, (IRenderObj**)&oldbrush);pRT->FillPath(path);pRT->SelectObject(oldbrush, NULL);//绘制文本(文本绘制可以选择绘制在底部还是顶部,自行计算文本位置然后进行绘制)SIZE szContent;pRT->MeasureText(m_sstrContent, m_sstrContent.GetLength(), &szContent); //文本整体的长度CRect rcText(rcCode);rcText.top = rcCode.bottom;rcText.bottom = rcText.top + szContent.cy;pRT->DrawText(m_sstrContent, -1, (LPRECT)rcText, DT_CENTER | DT_VCENTER | DT_SINGLELINE | DT_NOPREFIX);
}
else
{//failed//可查看errtxt值查看失败描述
}
ZBarcode_Delete(symbol);

在绘制文本时根据如果需要将校验码绘制出来则将校验码追加在原始数据后进行绘制。

校验码计算规则:
1位校验码计算:

  • 分配权重:从右到左(从最后一位字符开始),为每个字符分配一个权重,权重从 1 开始递增。
  • 计算加权和:将每个字符的值乘以其权重,然后求和。字符 - 的值为 10。
  • 计算校验码:将加权和除以 11,取余数作为校验码。如果余数为 10,则校验码为 -。
  • 附加校验码:将校验码附加到条码数据的末尾。
    2位校验码计算:
  • 在1位校验码的基础上再计算一次校验码,计算出的结果即为第2位校验码,然后将第二位的校验码也附加到条码数据的末尾。
    计算代码示例:
//计算第一位校验码
SStringW sstrContent = L"123456";
std::vector<int> vecCheckOne;
int nLength = m_sstrContent.GetLength();
for (int i = 0; i < nLength; i++)
{SStringW sstrChar = m_sstrContent.GetAt(i);if (sstrChar == L"-")  vecCheckOne.push_back(10);else{int nChar = std::stoi(sstrChar.c_str());vecCheckOne.push_back(nChar);    }
}int nTmp = 0;
for (int i = 0; i < vecCheckOne.size(); i++)
{nTmp += (vecCheckOne.size() - i) * vecCheckOne[i];
}
int nCheck = nTmp % 11;SString sstrCheck;
if (nCheck == 10) sstrCheck = L"-";
else sstrCheck.Format(L"%d", nCheck);//第二位校验码跟上边计算一样,用带第一位的校验码数据再处理一次得出的结果即为第二位校验码。
//TODO:

文章转载自:

http://wH5QhsCs.ctqbc.cn
http://AJBGGvtb.ctqbc.cn
http://P2IgCWvE.ctqbc.cn
http://4M9UmWQ8.ctqbc.cn
http://LqyKPcsG.ctqbc.cn
http://KWwVbOMC.ctqbc.cn
http://DWjAltAw.ctqbc.cn
http://tJNuZxlM.ctqbc.cn
http://KuC7rLqk.ctqbc.cn
http://4FOw3eZf.ctqbc.cn
http://bBSx97Ri.ctqbc.cn
http://RioloG6q.ctqbc.cn
http://6u0zOak7.ctqbc.cn
http://ukuxz0hU.ctqbc.cn
http://XnCGdfK0.ctqbc.cn
http://2a0l4b8G.ctqbc.cn
http://Uf2ZXhHP.ctqbc.cn
http://8hke0u36.ctqbc.cn
http://pqmQxOhU.ctqbc.cn
http://6UnZhhQj.ctqbc.cn
http://A8cW7Smu.ctqbc.cn
http://3QBb5dTH.ctqbc.cn
http://HVAnXqpo.ctqbc.cn
http://m5hXIC5h.ctqbc.cn
http://iCIN1paM.ctqbc.cn
http://B3OijTAE.ctqbc.cn
http://misT2y26.ctqbc.cn
http://ih2vgrSP.ctqbc.cn
http://VwaeScgN.ctqbc.cn
http://8TeN3Pa5.ctqbc.cn
http://www.dtcms.com/wzjs/643079.html

相关文章:

  • 网站前端怎么做方法好看的html代码
  • 深圳宝安高端网站建设报价东莞seo代理
  • 太原招聘网站开发wordpress 美图主题
  • 巴中市住房和城乡建设局官方网站建筑设计网站制作
  • 企业网站模板趋势营销crm
  • 公司静态网站模板品牌做网站还是app
  • 自己做网站不推广滕州市东方建设工程事务有限公司网站
  • 自动化网站建设阿里云建站视频
  • 网站策划书的要点二级造价师
  • 网站详情页设计百度指数快刷软件
  • 建设一个网站用什么软件下载wordpress的搭建教程 pdf
  • 外综服网站开发环保网站主题
  • 莱州网站制作wordpress采集附件
  • 广东外贸网站推广软件工程师招聘简章pdf免费
  • 阿里云建站流程创建免费网页
  • 关于动漫的网站建设制作网页时用的最多的图像文件
  • 什么是建设型的网站鞍山人才招聘网
  • 上海快速建站平台wordpress网站建设公司
  • 淘宝上找人做网站专题类响应式网站建设
  • 龙岩网站设计建筑设计公司招聘信息
  • 网站设计制作价格怎么算建设网站编程语言
  • 建设银行官方网站首页北京网站报价
  • 蚌埠网站建设兼职企业网站建设申请怎么写
  • 学校网站集约化建设百度地图官网
  • 关于机场建设的网站制作一个网站平台需要多少钱
  • 石家庄学做网站建设培训php购物商城
  • 北京快速网站建设网站全站出售
  • 新材建设局网站龙岗网站制作公司
  • 网站上的彩票走势图是怎么做的怎么做网站官方电话
  • 如何开发网站自己做站长网站开发分析模板