以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]如何连续打印多页条码? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=71250) |
-- 作者:loongtai -- 发布时间:2015/7/8 9:14:00 -- [求助]如何连续打印多页条码? 如题,有多行数据,每行均打印在一张标签纸上,连续打印所选定的行。 Dim 公司代码 As String=e.Form.Controls("txb_前缀文本").value Dim 编号类型 As String=e.Form.Controls("dpb_编号类型").value Dim 出厂日期 As Date=e.Form.Controls("dtp_出厂日期").value Dim doc As New PrintDoc 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=0 doc.PageSetting.Landscape=True Doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight bar.QuietZoneWidth =2 \'0.4 Bar.Symbology = Barpro.Symbology.QRCode \'bar.CodeAlignment = Barpro.Alignment.Belowleft MessageBox.Show(Tables(e.Form.name & "_tab_1").GetCheckedRows.count) For Each r As Row In Tables(e.Form.name & "_tab_1").GetCheckedRows Dim rt As New prt.RenderTable() \'定义一个表格对象 rt.Style.GridLines.All = New prt.Linedef(Color.white) \'将表格的颜色设为深灰色 rt.X=0 rt.Y=0 rt.Rows.Count = 1 \'设置行数 rt.Cols.Count = 2 \'设置列数 rt.Width = 40 \'设置表格的宽度 rt.Height = 12 \'设置表格的高度 rt.Rows(0).Height=12 rt.cols(0).width=15 rt.cells(0,1).Style.Font=New Font("Times New Roman", 7, FontStyle.Bold) \'设置字体 rt.cells(0,0).Style.TextAlignHorz=prt.AlignHorzEnum.left Dim rg As New prt.RenderGraphics \'Dim r As Row=Tables(e.Form.name & "_tab_1").Rows(0) bar.code=r("打印列") MessageBox.show(r("打印列")) bar.DrawOnCanvas(rg.Graphics,0,0,0.25) rt.Cells(0,0).RenderObject = rg \'将单元格内容设置为图片对象rm rt.cells(0,1).text=公司代码 & "-" & 编号类型 & vbcrlf & Format(出厂日期,"yyyyMMdd") & "-" & r("流水号") doc.Body.Children.Add(rt) \'将表格对象加入到报表中 Next doc.Preview |
-- 作者:大红袍 -- 发布时间:2015/7/8 9:22:00 -- 1、高度不要定死
2、高度要根据行数设置
3、上传例子 |
-- 作者:loongtai -- 发布时间:2015/7/8 9:34:00 -- 标签尺寸:40*12(高) rt为1行2列 效果:选定多行后,每个标签上打印一行的数据,能够连续打印多行
|
-- 作者:大红袍 -- 发布时间:2015/7/8 10:03:00 -- Dim 公司代码 As String=e.Form.Controls("txb_前缀文本").value Dim rs As List(Of Row) = Tables(e.Form.name & "_tab_1").GetCheckedRows For i As Integer = 0 To rs.Count - 1
|
-- 作者:loongtai -- 发布时间:2015/7/8 10:17:00 -- 试了下,导致只能打一行的原因是出在黄色部分,不能对rt.X进行设置,绿色部分不改不影响此问题。谢谢大红袍!!! Dim 公司代码 As
String=e.Form.Controls("txb_前缀文本").value Dim 编号类型 As
String=e.Form.Controls("dpb_编号类型").value Dim 出厂日期 As Date=e.Form.Controls("dtp_出厂日期").value Dim doc As New PrintDoc Dim Bar As New BarCodeBuilder doc.PrinterName="ZDesigner
GT800 (EPL) -2#" doc.PageSetting.Height=12 doc.PageSetting.Width=40 doc.PageSetting.BottomMargin=0.5 doc.PageSetting.TopMargin=0 doc.PageSetting.RightMargin=0 doc.PageSetting.LeftMargin=0 doc.PageSetting.Landscape=True bar.QuietZoneWidth =2
\'0.4 Bar.Symbology = Barpro.Symbology.QRCode For Each r As Row In
Tables(e.Form.name & "_tab_1").GetCheckedRows
bar.code=r("打印列") Dim rg As
New prt.RenderGraphics
bar.DrawOnCanvas(rg.Graphics,0,0,0.25) Dim rt As
New prt.RenderTable() \'定义一个表格对象
rt.Style.GridLines.All = New prt.Linedef(Color.white) \'将表格的颜色设为深灰色 rt.X=0 rt.Y=-1 ……………… Next
|