没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:黄竹雯|2018-10-29 16:25:14.000|阅读 383 次
概述:本系列教程会解答您在使用条形码生成控件TBarCode SDK产品时遇到的绝大部分疑惑。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
TBarCode SDK是一款可以在任意应用程序和打印机下生成和打印所有条码的条码软件组件。TBarCode SDK对于Microsoft® Office 用户以及软件开发者提供条码打印。使用此款条码软件组件您可以以完美效果生成和打印所有用于工业和商业条码符号。
通常,我们建议API调用的此过程:
我们建议尽可能使用自定义模块宽度 - 调整窄条宽度可以更好地控制输出。它还允许您遵守特定的标签要求和打印机的输出分辨率。可能有一个例外:对于邮政条码,条形码大小必须在精确范围内,边界矩形可能就足够了。
模块宽度的示例值(符合300 dpi):
对于位图输出,模块宽度可以适应于位图分辨率(例如,96dpi)。在这里,您可以使用GetOptimalBitmapSize API调用。
下面是如何使用BCSaveImageToBuffer的代码示例:
#include "windowsx.h" // after BCCreate(..) // generate image in buffer LPBYTE lpBuffer; eCode = BCSaveImageToBuffer (pBarCode, &lpBuffer, eIMBmp, nWidth, nHeight, 96.0, 96.0); if (eCode == ErrOk) { // lock buffer before reading if (GlobalLockPtr(lpBuffer)) { // retrieve size of buffer int nSize = GlobalSize((HGLOBAL)GlobalHandle(lpBuffer)); // process buffer for (int i=0; i< nSize; i++) { BYTE byte = (static_cast<LPBYTE> (lpBuffer))[i]; // ... } // unlock after reading (required) GlobalUnlockPtr(lpBuffer); // free memory (required) GlobalFreePtr(lpBuffer); }
TBarCode V6
'callback function Public Function MyDrawRow ( ByRef pMyData As Long, ByVal pBarCode As UIntPtr, ByVal hDC As IntPtr, ByVal hTargetDC As IntPtr, ByRef pRect As Rectangle) As UInt32 Dim strTempo As String strTempo = TBC6.BCGetMetaData(pBarCode) Return Convert.ToUInt32(0) End Function 'setting the address of the callback function Public cb As TBC6.Callback cb = AddressOf MyDrawRow eCode = TBC6.BCSetFuncDrawRow(hBarcode, cb, pData) 'required declarations Declare Ansi Function BCDrawCB Lib "TBarCode6.ocx" ( _ ByRef hBarcode As UIntPtr, _ ByVal hDC As IntPtr, _ ByRef pRect As Rectangle, _ ByVal func As Callback, _ ByVal func As Callback, _ ByVal pData As IntPtr ) As Int32 Declare Ansi Function BCGetMetaData Lib "TBarCode6.ocx" ( _ ByVal hBarcode As UIntPtr ) As String
DrawBarcode (HDC hDC, long xpos, long ypos) { RECT hRect; long lHRHeight = 0; ypos += GetFullHeight(); hRect.left = xpos; hRect.top = ypos; hRect.right = hRect.left + width; hRect.bottom = hRect.top + height; HDC memDC; HBITMAP memBMP, oldBMP; int width, height; RECT draw; width = abs(hRect.right - hRect.left); height = abs (hRect.bottom - hRect.top); draw.left = 0; draw.bottom = height; draw.top = 0; draw.right = width; memDC = CreateCompatibleDC(hDC); memBMP = CreateCompatibleBitmap(hDC, width, height); oldBMP = (HBITMAP) SelectObject(memDC, memBMP); if (S_OK = BCDraw(pBarcode, memDC, &draw)) { // scale / copy to target DC BitBlt(hDC, hRect.left, hRect.top, width, height, memDC, 0, 0, SRCCOPY); SelectObject(memDC, oldBMP); } DeleteObject(memBMP); DeleteDC(memDC); }
调整适当的DC
使用以下屏幕DC创建具有消除锯齿选项的字体渲染(根据屏幕调整):
HDC dc = CreateDC(TEXT(“DISPLAY”),NULL,NULL,NULL); eCode = BCSaveImageEx(m_pbarCode,dc,file,imageType,100,widthPx,heightPx,dpi,dpi); if(dc) DeleteDC(dc);
调整正确的字体(LOGFONT)
使用Windows标准字体对话框或以下函数从Windows GDI检索预初始化的LOGFONT结构:
HFONT hSystemVariableFont = (HFONT ) GetStockObject( ANSI_VAR_FONT ); LOGFONT lfSystemVariableFont; GetObject ( hSystemVariableFont, sizeof(LOGFONT), &lfSystemVariableFont ); // Make sure that the following flags are set in the LOGFONT structure passed to BCSetLogFont(): lfOutPrecision (e.g. set to 3) lfClipPrecision (e.g. set to 2) lfQuality (e.g. set to 1) lfWeight (e.g. set to 400) lfFaceName should be set to a True Type font (e.g. “Arial”) // Calculate the font height as follows: lfHeight = = -MulDiv( 10 /*PointSize*/, GetDeviceCaps(hDC, LOGPIXELSY), 72);
未完待续......
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@wqylolg.cn
二维码正成为越来越流行的信息存储和共享工具。在报告和文档中,二维码可用于快速访问网站、联系人、产品信息等。
本文主要介绍如何使用DevExpress WPF Grid控件的创建栏(Bands),欢迎下载最新版组件体验!
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
DeepSeek AI 现已集成到 ONLYOFFICE 编辑器中,通过先进的 AI 功能提高工作效率。在本文中,我们将探讨如何在 ONLYOFFICE 编辑器中使用可用的 DeepSeek 模型以及如何将它们连接到编辑器。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@wqylolg.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢