条码插件TBarCode Office系列教程八(OCX篇)

TBarCode Office 是一款适用于 Microsoft? Word 2007、 2010和2013等具有强大功能的条码插件。通过此插件只需点击几下鼠标便可在您的 Word 文档 – 包括支持系列信件中添加所有条码。从本篇文章开始,我们将讲解在TBarCode Office中关于TBarCode OCX的常见问题解答。

TBarCode Office 是一款适用于 MicrosoftWord 2007、 2010和2013等具有强大功能的条码插件。通过此插件只需点击几下鼠标便可在您的 Word 文档 – 包括支持系列信件中添加所有条码。

从本篇文章开始,我们将讲解在TBarCode Office中关于TBarCode OCX的常见问题解答。

TBarCode Office最新版免费下载试用


※如何在Word中使用条形码创建邮件合并文档/span>

TBarCode Office V10

使用数据源创建邮件合并文档。在条件中插入条形码。使用“插入合并字段”按钮将邮件合并字段插入条形码。

TBarCode V9

要插入多个条形码,您可以使用中的串行字母功能TBarCode Word Toolbar。此功能允许您在创建邮件合并文档后用条形码替换标记的文本。有关TBarCode工具栏及其功能的更多信息,请参阅TBarCode OCX用户手册。

※如何在 告中插入TBarCode OCX(作为ActiveX控件)/span>

在设计视图中打开一个新 告。如果你需要一个条形码为每个记录,然后插入ActiveX 制到具体区域,并在需要的地方进行定位。你可以Insert – ActiveX Control在主菜单中选择。您将看到所有可用元素的列表,您可以从中选择TBarCode。控件将插入详细信息区域。对于表(或查询)中的每个记录集,将打印一次详细信息区域。

※如何控制 表中条形码的内容/span>

在设计模式中右键单击的TBarCode -的ActiveX 制。您将看到一个选择的菜单Properties。在Control Source子菜单中的字段中,data您可以定义控件的内容。这意味着您可以选择编码为条形码的表或查询字段。

※Crystal Reports中的条形码

无法将TBarCode直接添加到 表中,但您可以“动态”创建条形码图像并将其加载到图片框中。按照以下说明查看如何将TBarCode嵌入到Crystal Reports 8中。

通过图片框嵌入(VB6样本)

在一个表格(名为“Form1”)中嵌入一个TBarCode控件(名为“tbc”)和一个图片框(名为“TmpPicture1”)。然后将下面的功能代码添加到表单中。它“动态”创建条形码图像,并使用PictureBox作为绘图表面。

Public Function BarcodeGenerate(Id As String, Width As Long, Height As Long) As PictureBoxDim nSizing, cm    tbc.Text = Id    cm = tbc.CountModules    TmpPicture1.Cls    TmpPicture1.ScaleMode = vbPixels    Form1.ScaleMode = vbPixels    Width = ScaleX(Width, vbTwips, vbPixels)    Height = ScaleY(Height, vbTwips, vbPixels)    nSizing = Int(Width / cm)    If nSizing < 1 Then nSizing = 1    TmpPicture1.Width = cm * nSizing    TmpPicture1.Height = Height    DoEvents    tbc.BCDraw TmpPicture1.hDC, 0, 0, TmpPicture1.Width, TmpPicture1.Height    Set BarcodeGenerate = TmpPicture1End Function 

在 告事件代码(格式事件)中调用条形码生成器功能,并将新创建的条形码图像分配给 告中的图片框(名为Picture1)。

 Private Sub Section3_Format(ByVal pFormattingInfo As Object)    'create the bar code for each record set    Dim data As String    data = Field1.Value    Set Me.Picture1.FormattedPicture =           Form1.BarcodeGenerate(data, Me.Picture1.Width, Me.Picture1.Height).ImageEnd Sub 

通过位图文件嵌入(VB6示例)

在一个表格(名为“Form1”)中嵌入一个TBarCode控件(名为“TBarCode”)并根据需要调整条形码类型和所有其他设置。该条形码对象将在 告运行期间用于“动态”创建条形码。在 告事件代码(格式事件)中,在临时文件夹中创建动态条形码图像,并将此图像加载到 告中的图片框(名为pictBarCode)。

 Private Sub Section3_Format(ByVal pFormattingInfo As Object)' Simulate data binding' by saving the bar code as bitmap with data from fldArticleID' then reload it to a picture controlOn Error Resume NextDim nWidthDim pathDim fso     ' here we use hard coded temp path (must exist!)    path = "c:tempCR8_" & Me.fldArticleID.Value & ".bmp"     ' reference the TBarCode Control in the Form1    Form1.TBarCode.Text = Me.fldArticleID.Value    Form1.TBarCode.PrintDataText = False    nWidth = Form1.TBarCode.CountModules * 3 'adapt width to number of graphical modules     Form1.TBarCode.SaveImage path, eIMBmp, nWidth, 100, 96, 96    Me.pictBarcode.SetOleLocation (path)End Sub

※VB运行时错误’429’:ActiveX组件无法创建对象。

如果未使用CreateObject指定完整的Prog-ID,则可能会收到此运行时错误。在项目设置中引用TBarCode Type Lib,并使用以下命令在VB中创建TBarCode对象(TBarCode OCX V9的示例):

Dim objTB作为TBarCode9      设置objTB = CreateObject(“TBarCode9.TBarCode9”)      objTB.AboutBox

※如何在VB6中为812.8 dpi创建最佳位图(1D代码)/span>

方法一

第一种方法使用预设(自定义)模块宽度,设置DPI,然后计算符 的总宽度。该原理也适用于其他打印机。OCX方法BCWidthHdc2可用于计算条形码的宽度。如果已设置模块宽度,请使用[in] nWidth的虚拟值。如果以unit = mm计算宽度,则为SaveImage函数将其转换为Pixels。高度有类似的功能 – 但高度只需要计算2D条形码。

注意:当您将模块宽度设置为精确到0.3125毫米或0.0123英寸时,您在812.8 dpi机器的打印光栅中是100%。这是推荐值之一。如果已启用opt resolution标志,则模块宽度将更改为打印栅格中的下一个(较低)像素边界,因此会“优化”。必须相应地设置Dpi以进行此优化。

Dim widthPx As LongDim heightPx As LongDim heightMM As DoubleTBarCode111.Dpi = 812.8TBarCode111.SizeMode = eSizeMode_CustomModuleWidthTBarCode111.ModuleWidth = "312.5"heightPx = 500heightMM = heightPx * (25.4 / TBarCode111.Dpi)widthPx = TBarCode111.BCWidthHdc2(0, 1000, heightMM * 1000, eMUPixel)TBarCode111.SaveImage "c:temptest2.tif", eIMTif, widthPx, heightPx, 812.8, 812.8

方法二

使用第二种更简单的方法,模块宽度未明确设置。相反,传递给GetOptimalBitmapSize(OCX API)函数的缩放因子控制模块宽度。如果您使用它,请不要在API中设置自定义模块宽度和/或最佳分辨率。该函数执行一些额外的放大(基于dpi),在调用函数时应该用DPI = 0关闭。

因为我们知道打印机的DPI,所以我们也知道像素(打印机点)尺寸。我们还知道一个模块应该始终是一个打印机点的整数倍。我们必须考虑通常一个模块根本不应小于0.190毫米(但取决于条形码类型)。然后,您需要做的就是将ScaleX = ModuleWidth / PixelSize因子(= 8,9,10,…)传递给GetOptimalBitmapSize函数,并使用返回的值保存SaveImage。模块宽度:0.0123英寸最佳值为10像素,812.8 dpi。因此,GetOptimalBitmapSize函数的缩放因子为10。

Dim width As LongDim height As Longwidth = 1height = 500TBarCode111.Dpi = 0  'turn off additional dpi/96 scalingTBarCode111.GetOptimalBitmapSize 10, 10, width, heightTBarCode111.SaveImage "c:temptest.tif", eIMTif, width, height, 812.8, 812.8

– 未完待续 –

其他精彩教程,尽在资源列表

工厂春季采购季,知名企业良心推荐,详情点击下方图片

条码插件TBarCode Office系列教程八(OCX篇)

标签:条码生成条码识别条码读取工业4.0

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年3月15日
下一篇 2019年3月15日

相关推荐

发表回复

登录后才能评论