打印标签
一个页面中会有很多个标签,标签本身按顺序排列,但是标签中的内容,是需要精确定位的。
也就是说,页面内容的排列方式,和标签内容的排列方式是不同的。
用RenderArea可以轻松实现这样的要求。
下面是演示代码,每一个RenderArea就是一个标签,请留意RenderArea的子对象是如何定位的:
Dim
doc
As New PrintDoc
'定义一个报表
doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight
'设置排列方式
For i As
integer =
1
to
100
Dim
ra As New
prt.RenderArea
Dim rt
As prt.RenderText
ra.Width = 53
'宽度53毫米
ra.Height = 24
'高度24毫米
ra.Style.Spacing.All =
1
ra.Style.Borders.All = New prt.Linedef(0.3,
Color.Red) '设置边框
ra.SplitHorzBehavior = prt.SplitBehaviorEnum.Never
'禁止水平分割
ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never
'禁止垂直分割
Doc.Body.ChildRen.Add(ra)
'将容器加入到报表中
rt = New prt.RenderText
rt.Text = "姓名:"
rt.X = 2
rt.Y = 2
ra.Children.Add(rt)
'添加到容器中
rt = New prt.RenderText
rt.Text = "黄财德"
rt.X = 15
rt.Y = 2
ra.Children.Add(rt)
rt = New prt.RenderText
rt.Text = "职务:"
rt.X = 2
rt.Y = "Prev.Bottom +
2" '垂直坐标位于迁移对象之下的2毫米
ra.Children.Add(rt)
rt = New prt.RenderText
rt.Text = "总经理"
rt.X = 15
rt.Y = "Prev.Top"
'垂直坐标和前一对象相同
ra.Children.Add(rt)
rt = New prt.RenderText
rt.Text = "编号:"
rt.X = 2
rt.Y = "Prev.Bottom +
2"
ra.Children.Add(rt)
rt = New prt.RenderText
rt.Text =
"44081919710917243"
rt.X = 15
rt.Y = "Prev.Top"
ra.Children.Add(rt)
Next
Doc.Preview() '预览报表
执行结果:
注意一定要有下面两行代码:
ra.SplitHorzBehavior = prt.SplitBehaviorEnum.Never
'禁止水平分割
ra.SplitVertBehavior =
prt.SplitBehaviorEnum.Never
'禁止垂直分割
否则可能会出现一个标签被分割在两页的情况。
本页地址:http://www.foxtable.com/webhelp/topics/1186.htm