以文本方式查看主题

-  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=24653)

--  作者:rjh4078
--  发布时间:2012/10/19 13:53:00
--  请教下标签打印问题 在线等

我实现标签打印的代码如下

但是现在发现一个问题 标签打出来是旋转了90度的  和我预想的不一样 代码改了很久一点作用也没有  请教高手

 

 

 

"条码"
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.InlineLeftToRight
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)
                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.Preview()


--  作者:rjh4078
--  发布时间:2012/10/19 14:06:00
--  

自己顶一下


--  作者:lin_hailun
--  发布时间:2012/10/19 14:11:00
--  
 楼主,带个表,给点数据吧……

 试试 doc.AutoRotate = False
[此贴子已经被作者于2012-10-19 14:15:30编辑过]

--  作者:lihe60
--  发布时间:2012/10/19 14:22:00
--  
要上传附件的,别人才好测试的。
--  作者:rjh4078
--  发布时间:2012/10/19 14:23:00
--  

项目上传了 麻烦大家看看  试了下lin的方法 现在不旋转了 但是实际打印出来的页面占据了2张纸 而不是设想的一张纸

纸张大小60*40 prt.RenderArea大小58*38

 

问题已经解决 谢谢啦

[此贴子已经被作者于2012-10-19 14:37:17编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/10/19 14:38:00
--  

我们在激光打印机和针式打印机下测试,都没有问题。

至于标签打印机,我们没有条件测试。

你调整调整纸张大小和边距看看,先简单的开始,打印几个简单的字符