Foxtable(狐表)用户栏目专家坐堂 → [求助]条形码扫码内容与文本内容不符


  共有4378人关注过本帖树形打印复制链接

主题:[求助]条形码扫码内容与文本内容不符

帅哥哟,离线,有人找我吗?
loongtai
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:574 积分:4332 威望:0 精华:0 注册:2013/7/26 10:24:00
[求助]条形码扫码内容与文本内容不符  发帖心情 Post By:2015/5/10 14:53:00 [显示全部帖子]

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



 回到顶部
帅哥哟,离线,有人找我吗?
loongtai
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:574 积分:4332 威望:0 精华:0 注册:2013/7/26 10:24:00
回复:(大红袍)测试了一下,应该是你生成条码太小的...  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
loongtai
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:574 积分:4332 威望:0 精华:0 注册:2013/7/26 10:24:00
回复:(大红袍)1、你要打印的内容不能超过你纸张的大...  发帖心情 Post By:2015/5/10 17:00:00 [显示全部帖子]

按你的方法,将倍数调整为1,条码清晰还好扫描,问题解决,谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
loongtai
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:574 积分:4332 威望:0 精华:0 注册:2013/7/26 10:24:00
回复:(大红袍)1、你要打印的内容不能超过你纸张的大...  发帖心情 Post By:2015/6/22 16:44:00 [显示全部帖子]

我今天又试了下,怎么还是出现那样的错误呢???扫出来的内容与实际内容不符。
实际文本: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

 回到顶部
帅哥哟,离线,有人找我吗?
loongtai
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:574 积分:4332 威望:0 精华:0 注册:2013/7/26 10:24:00
回复:(sloyy)扫描出来的内容不对,应该是扫描枪的编...  发帖心情 Post By:2015/7/6 19:56:00 [显示全部帖子]

用的就是普通的条码扫描枪,USb口插上就能用,不需要设置什么的


 回到顶部
帅哥哟,离线,有人找我吗?
loongtai
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:574 积分:4332 威望:0 精华:0 注册:2013/7/26 10:24:00
  发帖心情 Post By:2015/7/7 9:44:00 [显示全部帖子]

是不是只能用Code39类型啊
Code128的话,校验符什么的设置了也没什么变化。
但我的标签纸只有40*12这么大,在这个尺寸内最多能打多少位数字???
扫描出来的文本为:hf02402215030500172015070601   共28位
实际设置文本为:hf172015070601                               共14位
这说明条码能支持的位数可达28位。现在就是为何扫描出来的内容与设置内容不符?这多出来的文本是怎么回事?

[此贴子已经被作者于2015/7/7 9:46:00编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
loongtai
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:574 积分:4332 威望:0 精华:0 注册:2013/7/26 10:24:00
  发帖心情 Post By:2015/7/7 10:09:00 [显示全部帖子]

Dim doc As New PrintDoc
’doc.PrinterName="ZDesigner GT800 (EPL)"
doc.PageSetting.Height=12     ’如果这款标签过小,实在放不下这么长的文本另外一款标签:30(高)*60(宽)
doc.PageSetting.Width=40
doc.PageSetting.BottomMargin=0
doc.PageSetting.TopMargin=0
doc.PageSetting.RightMargin=0
doc.PageSetting.LeftMargin=0
doc.PageSetting.Landscape=True
    Dim bar As new BarCodeBuilder
    bar.code="9-1|64-20150908-10|12"   
    bar.BarWidth = ???  ‘0.23  
    bar.BarRatio =??? ’2   
    bar.BarHeight = ???  ‘5
    bar.QuietZoneWidth =???  ’1   
    bar.Symbology = ???  ‘Barpro.Symbology.code128
    bar.AddCheckSum = False
    bar.DisplayChecksum=False
    bar.DisplayStartStopChar=False
    bar.Font = New Font("Cambria",9,FontStyle.Bold)
    Dim rt As New prt.RenderTable() '定义一个表格对象
    rt.Style.GridLines.All = New prt.Linedef(Color.DarkGray) '将表格的颜色设为深灰色
    rt.Rows.Count = 3 '设置行数
    rt.Cols.Count = 1 '设置列数
    rt.Width = 60 '设置表格的宽度
    rt.Height = 40 '设置表格的高度
    Dim rg As New prt.RenderGraphics
    bar.DrawOnCanvas(rg.Graphics,0,0,1)
    rt.Cells(0,0).RenderObject = rg '将单元格内容设置为图片对象rm
    doc.Body.Children.Add(rt) '将表格对象加入到报表中
还请看看,图中的黄色标记到底工该如何设置才能正确打印和识别条码内容("9-1|64-20150908-10|12"  

 回到顶部
帅哥哟,离线,有人找我吗?
loongtai
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:574 积分:4332 威望:0 精华:0 注册:2013/7/26 10:24:00
回复:(大红袍) 连最基本的都不会?40宽可以容...  发帖心情 Post By:2015/7/7 10:13:00 [显示全部帖子]

试了60宽的也不行啊。
另外,不是可以通过
Dim rg As New prt.RenderGraphics
Bar.DrawOnCanvas(rg.Graphics,0,0,0.5) 
0.5这个比例可以调的吗?
如果不考虑是否能扫描出来,理论上来说是不是文本再长,也可以通过缩放比例来调整的,只不过文本越长,缩放比例越大,相应的字体会越小



 回到顶部
帅哥哟,离线,有人找我吗?
loongtai
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:574 积分:4332 威望:0 精华:0 注册:2013/7/26 10:24:00
  发帖心情 Post By:2015/7/7 15:56:00 [显示全部帖子]

我在60*40的标签上打印了“HF17201509070001”,就这16位字符,仍是识别不出来。
而在40*12的标签上打印“HF172015090701” 14位字符就可识别。
但是条码扫描出来的内容还与接收软件有关,如果扫描的内容显示在狐表软件里,不论是数据表里还是命令窗口里,扫描出来的内容均与实际文本不符,
而扫描到excel表格里,则扫描出来的内容与实际文本一致,不知这是为什么?

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20150707155249.png
图片点击可在新窗口打开查看

以下是我这次设置的条码打印代码:
Dim doc As New PrintDoc
Dim img As prt.RenderImage
Dim Bar As New BarCodeBuilder
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=0
doc.PageSetting.LeftMargin=1
doc.PageSetting.Landscape=True
bar.BarWidth = 0.23
bar.BarRatio = 1
bar.BarHeight = 5
bar.QuietZoneWidth =1   '0.4
Bar.Symbology = Barpro.Symbology.Code128
bar.Font = New Font("Cambria",9,FontStyle.Bold)
bar.CodeAlignment = Barpro.Alignment.Belowleft
Bar.Code ="HF172015090701"   '"9-1|64-150908-56" '("打印列")
img = new prt.RenderImage
img.Image = bar.GetImage
Doc.Body.Children.Add(img)
'doc.Preview
doc.Print


 回到顶部
帅哥哟,离线,有人找我吗?
loongtai
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:574 积分:4332 威望:0 精华:0 注册:2013/7/26 10:24:00
回复:(大红袍) 那你现在的问题是扫描枪扫不出...  发帖心情 Post By:2015/7/7 16:22:00 [显示全部帖子]

现在的问题
1.打印出来的条码在不同的接收软件上扫描出来的内容是不一样的,扫描到狐表上的文本是错误的,而扫描到excel里的文本是正确的,这个肯定不是扫描枪的问题。
2.根据你说的“内容越多,条码越长,要么减少内容,要么增加纸张宽度”,在40宽的标签纸上可正确打印出14位字符的条码,那么将标签宽度增加到60,那至少也应该可以打到18位吧。可实际上却并不是这样,同样的代码设置,将打印内容由“HF172015090701” 更改为 “HF17201509070001” ,只增加了两位,但在60宽的标签纸上仍是不能正确打印和扫描。
而且我按你说的,我直接把条码打印到A4纸上,这应该是足够宽了吧,可仍然是扫描不出来的。
----我不知道这样的问题出在哪


 回到顶部
总数 12 1 2 下一页