以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  条码无法扫描的问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=24658)

--  作者:rjh4078
--  发布时间:2012/10/19 14:51:00
--  条码无法扫描的问题

通过一下代码生成一个条码标签  现在发现扫描枪不认下 用foxtable的专门条码打印功能打出来的条码就能认  求真相

 

Dim doc As New PrintDoc
doc.PageSetting.Width = 60
doc.PageSetting.Height =40
Doc.PageSetting.LeftMargin =1
Doc.PageSetting.TopMargin =1


doc.Stacking = prt.StackingRulesEnum.BlockTopToBottom
Dim i As Integer=Tables("打印选择").Rows.count-1
For i=0 To i
    Dim t As Integer=Tables("打印选择").Rows(i)("打印张数")
    If t>0 Then
        For t=1 To t
            Dim ra As New prt.RenderArea
            Dim rt As prt.RenderText
           
            ra.Width =58
            ra.Height =38
            ra.Style.Spacing.All = 1
            \'ra.Style.Borders.All = New prt.Linedef(0.3, Color.black)
            ra.SplitHorzBehavior = prt.SplitBehaviorEnum.Never
            ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never
            Doc.Body.ChildRen.Add(ra)
           
            rt = New prt.RenderText
            rt.Text = "名称: "
            rt.X =4
            rt.Y = 2
            \' rt.Style.Font = New Font("宋体",14)
            ra.Children.Add(rt)
           
            rt = New prt.RenderText
            rt.Text = Tables("打印选择").Rows(i)("药材名称")
            rt.X =20
            rt.Y = 2
            \' rt.Style.Font = New Font("宋体",12)
           
            ra.Children.Add(rt)
           
            rt = New prt.RenderText
            rt.Text = "单位: "
            rt.X =4
            rt.Y = "Prev.Bottom + 2"
            \'rt.Style.Font = New Font("宋体", 14)
            ra.Children.Add(rt)
           
            rt = New prt.RenderText
            rt.Text = Tables("打印选择").rows(i)("单位")
            rt.X =20
            rt.Y = "Prev.Top"
            \' rt.Style.Font = New Font("宋体",12)
            ra.Children.Add(rt)
           
            rt = New prt.RenderText
            rt.Text = "SN: "
            rt.X =4
            rt.Y = "Prev.Bottom + 2"
            \'rt.Style.Font = New Font("宋体", 14)
            ra.Children.Add(rt)
           
           
            rt = New prt.RenderText
            rt.Text =Tables("打印选择").rows(i)("SN")
            rt.X =20
            rt.Y = "Prev.Top"
            \' rt.Style.Font = New Font("宋体",12)
            ra.Children.Add(rt)
           
            Dim rpar As New prt.RenderParagraph()
            Dim img As prt.RenderImage
            Dim Bar As New BarCodeBuilder
            Bar.Symbology = Barpro.Symbology.Code39
            Bar.BarRatio = 0.3
            Bar.BarHeight = 8
            Doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight
            If  not Tables("打印选择").rows(i).Isnull("SN") Then
                bar.Code = Tables("打印选择").rows(i)("条码")
                img = new prt.RenderImage
                img.Image = bar.GetImage
                Dim rm As New prt.RenderImage \'定义一个图片对象
                rm.Image =bar.getimage \'设置图片
                rm.Width = "Parent.Width" \'宽度等于页面宽度
                rm.Height = "Auto" \'高度由图片大小自动决定
                rm.Style.ImageAlign.StretchHorz = False \'禁止图片水平拉伸
                rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.center
                rm.X=2
                rm.y="Prev.Bottom + 2"
               \' ra.Children.Add(rm)
Doc.Body.Children.Add(img)
                Tables("打印选择").rows(i)("已打印")=True
            Else
               
               
                messagebox.show("请输入" &Tables("打印选择").rows(i)("药材名称")  &"的SN码!")
              \'  Return
            End If
           
        Next
    Else
       
        messagebox.show("请输入" &Tables("打印选择").rows(i)("药材名称")  &"的打印张数!")
      \'  Return
    End If
   
Next
doc.AutoRotate = False
Doc.Preview


--  作者:lihe60
--  发布时间:2012/10/19 14:53:00
--  
可能是没有连接好。
--  作者:lin_hailun
--  发布时间:2012/10/19 14:58:00
--  
 从bar.GetImage后,尽量不要再调整宽高等,这样试试。
--  作者:rjh4078
--  发布时间:2012/10/19 15:15:00
--  

试了下还是不行  现在发现用代码打出来的条码颜色很浅  没有专业的条码软件打印的那么清楚


--  作者:lihe60
--  发布时间:2012/10/19 15:16:00
--  
以下是引用rjh4078在2012-10-19 15:15:00的发言:

试了下还是不行  现在发现用代码打出来的条码颜色很浅  没有专业的条码软件打印的那么清楚

可以改变颜色设置的。


--  作者:rjh4078
--  发布时间:2012/10/19 15:22:00
--  

颜色怎么设置啊


--  作者:lin_hailun
--  发布时间:2012/10/19 15:24:00
--  
 试试用下面这个打印,看是否识别。如果识别,就修改你原先的代码;如果不识别,可能就是扫描枪或者打印机的问题了。

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

--  作者:rjh4078
--  发布时间:2012/10/19 15:37:00
--  

用这个可以识别  但是用我那代码生成的就不行  非常郁闷


--  作者:lin_hailun
--  发布时间:2012/10/19 16:17:00
--  
 楼主,删简你的代码,留有最精炼的代码,测试,然后慢慢添加代码。这样去排错。

 img = new prt.RenderImage
 img.Image = bar.GetImage

 对于条形码,先用这两句。

--  作者:rjh4078
--  发布时间:2012/10/19 21:35:00
--  

感谢lin的指导  不过测试了大半下午  还是没有解决识别的问题  条码可以正常打印出来 条码枪就是不识别 换了几把枪也是一样