以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]条码打印代码求助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=171854)

--  作者:jygyyl
--  发布时间:2021/9/12 18:06:00
--  [求助]条码打印代码求助
Dim txt1 As String = e.Form.Controls("TextBox1").Text   \'定义变量,用于手动输入打印数量
\'Dim cmb1 As String = e.Form.Controls("ComboBox1").Text  \'定义变量,用于手动选择打印机

Dim  doc As  New PrintDoc
doc.PageSetting.Width = 50  \'纸张宽度为200毫米
doc.PageSetting.Height = 30  \'纸张高度为170毫米
DoC.PageSetting.LeftMargin = 1  \'设置左侧边距为2毫米
DoC.PageSetting.RightMargin = 1  \'设置右侧边距为2毫米
DoC.PageSetting.TopMargin = 1  \'设置顶部边距为2毫米
Doc.PageSetting.BottomMargin = 1 \'底部边距未1毫米
Doc.Style.TextAlignHorz = prt.AlignVertEnum.Center \'垂直居中
DoC.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中
\'DoC.Style.TextAlignHorz = prt.AlignHorzEnum.Right \'右对齐
doc.PageSetting.Landscape = True  \'横向打印
doc.AutoRotate = False  \'如果纸张的宽度超过高度,要加上这行代码
Dim  rg As  prt.RenderGraphics
Dim  Bar As  New BarCodeBuilder
Bar.Symbology =   Barpro.Symbology.Code128
Bar.BarWidth = 0.3  \'窄条宽度
Bar.BarRatio = 2.3 \'设定宽窄比例
Bar.BarHeight = 12 \'设定条码高度
Bar.QuietZoneWidth = 2  \'静区宽度

Dim t As Table =  Tables("XX条码表") \'指定数据来源表
Dim ra As prt.RenderArea
For i As Integer = t.TopPosition To t.BottomPosition
    Dim r As Row = t.Rows(i)
    For j As Integer = 0 To val(txt1) - 1 \'指定每行打印数量
        If j Mod 3 = 0 Then
            ra = new prt.RenderArea
            Doc.Body.Children.Add(ra)
        End If      
        bar.Code =  r("XX条码") \'指定条码数据来源列
        Bar.QuietZoneWidth = 2
        Bar.CodeAlignment = Barpro.Alignment.BelowJustify
        Bar.Text =  r("机构")  \'指定条码上方文本说明
        Bar.TextFont = New Font("宋体",9,FontStyle.Bold) \'定义说明文本字体及字号
        Bar.TextAlignment = Barpro.Alignment.AboveLeft
        rg =  new  prt.RenderGraphics
        bar.DrawOnCanvas(rg.Graphics,0,0,1)
        rg.Stacking = prt.StackingRulesEnum.InlineLeftToRight  \'设置容器中对象的排列方式
        rg.Style.TextAlignHorz = prt.AlignVertEnum.Center \'垂直居中       
\'       rg.Style.Spacing.Bottom = 1
\'       rg.Style.Spacing.Right  = 1  \'设置右间间隔毫米
\'       rg.Style.Spacing.Left = 1 \'左边距
        rg.Style.TextAlignHorz = prt.AlignVertEnum.Center \'垂直居中
        rg.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中
\'        rg.Style.TextAlignHorz = prt.AlignHorzEnum.Right \'右对齐
        ra.Stacking = prt.StackingRulesEnum.InlineLeftToRight  \'设置容器中对象的排列方式
        ra.Style.TextAlignHorz = prt.AlignVertEnum.Center \'垂直居中
        ra.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中
 \'       ra.Style.Spacing.ALL = 1  \'设置下间隔为3毫米
 \'       ra.Style.Spacing.Bottom = 2  \'设置下间隔为3毫米
 \'       ra.Style.Spacing.Right  = 10  \'设置右间间隔毫米
 \'       ra.Style.Spacing.Left = 3 \'左边距
        ra.Children.Add(rg)
    Next  
Next
Doc.PrinterName =" ZDesigner GK888t" \'指定打印机
\'Doc.Preview() \'打印预览
Doc.Print \'直接打印

上述代码单个打印(只选择1行)可以,连续打印(选择2行以上)时,第一张合适,打印第二张时打印机红灯、停止。求老师指点!

--  作者:有点蓝
--  发布时间:2021/9/12 21:09:00
--  
看不出什么问题,使用简单的代码,打印2行试试,如果有问题应该不是代码的原因,如果没有问题在逐渐添加其他代码测试,看是什么代码影响的


Dim doc As New PrintDoc
doc.PageSetting.Width = 50  \'纸张宽度为200毫米
doc.PageSetting.Height = 30  \'纸张高度为170毫米
DoC.PageSetting.LeftMargin = 1  \'设置左侧边距为2毫米
DoC.PageSetting.RightMargin = 1  \'设置右侧边距为2毫米
DoC.PageSetting.TopMargin = 1  \'设置顶部边距为2毫米
Doc.PageSetting.BottomMargin = 1 \'底部边距未1毫米
Dim 
rg As New prt.RenderGraphics
Dim 
Bar As New BarCodeBuilder
Bar
.Symbology = Barpro.Symbology.Code128
bar
.Code = "12345678"
rg
 = new prt.RenderGraphics
bar
.DrawOnCanvas(rg.Graphics,0,0,1)
Doc
.Body.Children.Add(rg)

    bar.Code = "6666666666"
    
rg = new prt.RenderGraphics
    
bar.DrawOnCanvas(rg.Graphics,0,0,1)
    
rg.Style.Spacing.All = 3
    
Doc.Body.Children.Add(rg)
Doc.PrinterName =" ZDesigner GK888t" \'指定打印机
Doc.
Print ()

--  作者:WELOVEFOX
--  发布时间:2021/9/14 12:17:00
--  
看代码头和尾,就是我以前给的一个小事例,只要能打印,基本不关代码事,是打印机本身在系统里面的参数没设置好(如没给888t打印机定义好标签的大小),或驱动安装错误(默认EPL)。
参考:

图片点击可在新窗口打开查看此主题相关图片如下:斑马gk888t设置参数第0步先判断确认.jpg
图片点击可在新窗口打开查看





[此贴子已经被作者于2021/9/14 12:17:52编辑过]

--  作者:WELOVEFOX
--  发布时间:2021/9/14 12:18:00
--  
附件只能上传1个?
斑马GK888t设置参数第1步确认驱动及打印机型号正确错误的为EPL

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


[此贴子已经被作者于2021/9/14 12:19:39编辑过]

--  作者:WELOVEFOX
--  发布时间:2021/9/14 12:20:00
--  
斑马GK888t设置参数第2步设置参数, 图片中的标签大小是我使用的大小,可以自行设置

图片点击可在新窗口打开查看此主题相关图片如下:斑马gk888t设置参数第2步设置参数.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2021/9/14 12:20:33编辑过]

--  作者:jygyyl
--  发布时间:2021/9/19 18:07:00
--  谢谢指点,确实是打印机设置问题。
谢谢指点,确实是打印机设置问题。