以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]条形码扫码内容与文本内容不符  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=68118)

--  作者:loongtai
--  发布时间:2015/5/10 14:53:00
--  [求助]条形码扫码内容与文本内容不符
做了一个窗口用于打印尾数递增的条形码,表中打印列的内容是我想打印的内容,显示是这正确的,如打印列内容为HF17201505100001,可将条形码打印出来后,对条形码进行扫描,扫码显示的内容却是:hf0240221503050017201505100001。不知这是怎么回事。
另外一个问题是,打出来的条形码用条码枪扫描比较困难,这是否与条码的格式参数设置有关?如何设置才能容易扫描。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:条形码打印窗口.zip



--  作者:大红袍
--  发布时间:2015/5/10 15:39:00
--  

测试了一下,应该是你生成条码太小的缘故吧?

 

http://www.foxtable.com/help/topics/2093.htm

 

 

Dim doc As New PrintDoc
Doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight
For Each r As Row In Tables(e.form.name & "_tab_1").GetCheckedRows
    Dim Bar As New BarCodeBuilder
    Bar.Symbology = Barpro.Symbology.Code128
    Bar.Code = r("打印列")
    Bar.AddCheckSum = False
    Bar.DisplayStartStopChar = False
   
   
    Dim rg As New prt.RenderGraphics
    rg = new prt.RenderGraphics
    bar.DrawOnCanvas(rg.Graphics,0,0,3)
    Doc.Body.Children.Add(rg)
   
    doc.PageSetting.Landscape=True
    Doc.Preview
Next


--  作者:loongtai
--  发布时间:2015/5/10 15:47:00
--  回复:(大红袍)测试了一下,应该是你生成条码太小的...
我标签纸的大小是40*12,按你的方式我把代码加进去:
For Each r As Row In Tables(e.form.name & "_tab_1").GetCheckedRows    
    bac.Code = r("打印列")
   \' MessageBox.show(bac.code)
Dim rg As New prt.RenderGraphics
    rg = new prt.RenderGraphics
    bac.DrawOnCanvas(rg.Graphics,0,0,3)
    Doc.Body.Children.Add(rg)
    \'img = new prt.RenderImage
    \'img.Image = bac.GetImage
    \'Doc.Body.Children.Add(img)
    doc.PageSetting.Height=12
    doc.PageSetting.Width=40
    doc.PageSetting.BottomMargin=0
    doc.PageSetting.TopMargin=0
    doc.PageSetting.RightMargin=8
    doc.PageSetting.LeftMargin=0
    doc.PageSetting.Landscape=True
    Doc.Print
Next
试了下,打印出来的内容是这样:

图片点击可在新窗口打开查看此主题相关图片如下:img_20150510_154503.jpg
图片点击可在新窗口打开查看


[此贴子已经被作者于2015/5/10 15:47:56编辑过]

--  作者:大红袍
--  发布时间:2015/5/10 15:54:00
--  

1、你要打印的内容不能超过你纸张的大小;

 

2、有一些编码,需要的长度大一些,有一些编码不需要太长的,正确选择你需要的编码;

 

3、用2楼的代码,设置好扩大的倍数啊,2楼的代码是3倍啊


--  作者:loongtai
--  发布时间:2015/5/10 17:00:00
--  回复:(大红袍)1、你要打印的内容不能超过你纸张的大...
按你的方法,将倍数调整为1,条码清晰还好扫描,问题解决,谢谢!
--  作者:loongtai
--  发布时间:2015/6/22 16:44:00
--  回复:(大红袍)1、你要打印的内容不能超过你纸张的大...
我今天又试了下,怎么还是出现那样的错误呢???扫出来的内容与实际内容不符。
实际文本:HF17201506220001
扫描文本:hf0240221503050017201506220001
Dim doc As New PrintDoc

doc.PrinterName="ZDesigner GT800 (EPL) -2#"
doc.PageSetting.Height=12
doc.PageSetting.Width=40
doc.PageSetting.BottomMargin=0
doc.PageSetting.TopMargin=0
doc.PageSetting.RightMargin=4
doc.PageSetting.LeftMargin=0
doc.PageSetting.Landscape=True
For Each r As Row In Tables(e.form.name & "_tab_1").GetCheckedRows
    Dim Bar As New BarCodeBuilder
    bar.BarWidth = 0.23  
    bar.BarRatio = 2   
    bar.BarHeight = 5
    bar.QuietZoneWidth = 0.4 
    Bar.Symbology = Barpro.Symbology.Code128
    Bar.Code = r("打印列")
    Bar.AddCheckSum = False
    Bar.DisplayStartStopChar = False
    bar.Font = New Font("Cambria",9,FontStyle.Bold)
    bar.CodeAlignment = Barpro.Alignment.Belowleft
    Dim rg As New prt.RenderGraphics
    rg = new prt.RenderGraphics
    rg.Style.TextAlignVert=prt.AlignHorzEnum.center
    bar.DrawOnCanvas(rg.Graphics,0,0,1.1)
    Doc.Body.Children.Add(rg)
Next
\'doc.Preview
doc.Print

--  作者:sloyy
--  发布时间:2015/6/22 22:23:00
--  
扫描出来的内容不对,应该是扫描枪的编码格式没有设置对的原因,你检查一下你的扫描枪设置为什么码?
--  作者:Bin
--  发布时间:2015/6/23 8:44:00
--  
肯定是扫描枪或者扫描软件的问题.
--  作者:loongtai
--  发布时间:2015/7/6 19:56:00
--  回复:(sloyy)扫描出来的内容不对,应该是扫描枪的编...
用的就是普通的条码扫描枪,USb口插上就能用,不需要设置什么的


--  作者:大红袍
--  发布时间:2015/7/6 19:58:00
--  
以下是引用loongtai在2015/7/6 19:56:00的发言:
用的就是普通的条码扫描枪,USb口插上就能用,不需要设置什么的

 

用纸打印,打印全部,肯定不会读错。

 

http://www.foxtable.com/help/topics/2079.htm