提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:黄竹雯|2018-10-29 16:25:14.000|阅读 382 次
概述:本系列教程会解答您在使用条形码生成控件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@cahobeh.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢