以文本方式查看主题

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

--  作者:top5522700
--  发布时间:2018/7/4 14:59:00
--  关于条码打印的问题
想打印条码 采用了专业报表的方式设计了标签,
但是直接打出来条码有锯齿,但是转换成PDF的话 打印出来的还是很清晰的,
专业报表里面可以有办法改善这方面的问题么,因为不想通过生成PDF的方式手动点选打印


图片点击可在新窗口打开查看此主题相关图片如下:上为打印报表打印下为pdf.jpg
图片点击可在新窗口打开查看

                Dim ID111 As String = e.Form.Controls("A031ID1").text
                Dim ID222 As String = e.Form.Controls("A031ID2").text
                
                Dim fl As String = "c:\\data\\test.pdf"
 
                Dim doc As New PrintDoc \'定义一个报表
                doc.PageSetting.Width = 60 \'纸张宽度为100毫米
                doc.PageSetting.Height = 40 \'纸张高度为120毫米
                Dim art As New prt.RenderTable() \'定义一个表格对象
                
                Doc.PageSetting.LeftMargin = 2 \'设置左边距
                Doc.PageSetting.RightMargin = 2 \'设置右边距
                Doc.PageSetting.TopMargin = 2 \'设置上边距
                Doc.PageSetting.BottomMargin = 2 \'设置下边距
                art.Width = "Parent.Width" \'对象宽度等于页面宽度
                art.Height = "Parent.Height" \'对象高度等于页面高度
                
                doc.Body.Children.Add(art) \'将表格对象加入到报表中
                art.Rows.Count = 5 \'设置行数
                art.Cols.Count = 5 \'设置列数
                art.Rows(4).height = 5
                
                art.Cells(0,0).SpanCols = 2 
                art.Cells(0,2).SpanCols = 3 
                art.Cells(1,1).SpanCols = 4 
                art.Cells(2,0).SpanCols = 5
                art.Cells(3,0).SpanCols = 5
                art.Cells(4,0).SpanCols = 4
                
                art.cells(1,0).text = "型号:"
                art.Cells(1,0).Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中
                art.Cells(1,0).Style.TextAlignVert = prt.AlignHorzEnum.Center \'水平居中
                art.cells(4,0).text = "北京测试维修"
                art.Cells(4,0).Style.Font = New Font("宋体", 8 , FontStyle.Bold) \'设置文本对象的字体
                art.cells(1,1).text = e.Form.Controls("A031PM").text
                art.cells(0,2).text = e.Form.Controls("A031ItemNo").text
                art.Cells(0,2).Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中
                art.Cells(0,2).Style.TextAlignVert = prt.AlignHorzEnum.Center \'水平居中
                
                Dim BarID1 As New BarCodeBuilder
                BarID1.Symbology = Barpro.Symbology.Code128
                BarID1.Code = ID111
                BarID1.QuietZoneWidth = 3
                BarID1.SaveImage("c:\\ID111.bmp",1200)
                
                Dim BarID2 As New BarCodeBuilder
                BarID2.Symbology = Barpro.Symbology.Code128
                BarID2.Code = ID222
                BarID2.QuietZoneWidth = 3
                BarID2.SaveImage("c:\\ID222.bmp",1200)
                
                Dim rm1 As New prt.RenderImage() \'定义一个图片对象
                rm1.Image = GetImage("c:\\ID111.bmp") \'请改为实际的图标名称和路径
                
                rm1.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center \'图片水平居中
                rm1.Style.ImageAlign.AlignVert = prt.ImageAlignVertEnum.Center \'图片垂直居中
                rm1.Style.ImageAlign.StretchHorz = False \'禁止水平方向扩展图片
                rm1.Style.ImageAlign.StretchVert = False \'禁止垂直方向扩展图片
                art.Cells(2,0).RenderObject = rm1 \'将单元格内容设置为图片对象rm
                
                Dim rm2 As New prt.RenderImage() \'定义一个图片对象
                rm2.Image = GetImage("c:\\ID222.bmp") \'请改为实际的图标名称和路径
                rm2.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center \'图片水平居中
                rm2.Style.ImageAlign.AlignVert = prt.ImageAlignVertEnum.Center \'图片垂直居中
                rm2.Style.ImageAlign.StretchHorz = False \'禁止水平方向扩展图片
                rm2.Style.ImageAlign.StretchVert = False \'禁止垂直方向扩展图片
                \'doc.Body.Children.Add(art) \'将表格对象加入到报表中
                art.Cells(3,0).RenderObject = rm2 \'将单元格内容设置为图片对象rm
                
                Dim rm3 As New prt.RenderImage() \'定义一个图片对象
                rm3.Image = GetImage("2233__EXGX.jpg") \'请改为实际的图标名称和路径
                rm3.Width = 20\'宽度等于页面宽度
                rm3.Height = "Auto" \'高度由图片大小自动决定
                rm3.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center \'图片水平居中
                rm3.Style.ImageAlign.AlignVert = prt.ImageAlignVertEnum.Center \'图片垂直居中
                rm3.Style.ImageAlign.StretchHorz = True \'禁止水平方向扩展图片
                rm3.Style.ImageAlign.StretchVert = True \'禁止垂直方向扩展图片
                art.Cells(0,0).RenderObject = rm3 \'将单元格内容设置为图片对象rm

                doc.AutoRotate = True
                doc.PageSetting.Landscape = True
                \'doc.Print()
                doc.SavePDF(fl) \'保存为PDF文件

--  作者:有点甜
--  发布时间:2018/7/4 15:58:00
--  

用这种方式打印条码

 

http://www.foxtable.com/webhelp/scr/2093.htm

 

 


--  作者:top5522700
--  发布时间:2018/7/4 18:47:00
--  
那在请教一下老师 这个功能我怎样做能将条形码添加在之前绘制的指定表格art.Cells(2,0)里
我这直接加的话 会变成两页标签 

Dim ccc As New prt.RenderGraphics()

Dim BarID1 As New BarCodeBuilder
BarID1.Symbology = Barpro.Symbology.Code128
BarID1.Code = ID111
BarID1.QuietZoneWidth = 3
BarID1.DrawOnCanvas(ccc.Graphics,0,0,1)


--  作者:有点甜
--  发布时间:2018/7/4 22:14:00
--  

Dim doc As New PrintDoc \'定义一个报表
Dim rt As New prt.RenderTable() \'定义一个表格对象
doc.Body.Children.Add(rt) \'将表格对象加入到报表中
rt.Style.GridLines.All = New prt.Linedef \'设置网格线
\'下面的代码向表格中填入值
rt.Cells(0, 0).text = 123

Dim ccc As New prt.RenderGraphics()
Dim BarID1 As New BarCodeBuilder
BarID1.Symbology = Barpro.Symbology.Code128
BarID1.Code = "3333"
BarID1.QuietZoneWidth = 3
BarID1.DrawOnCanvas(ccc.Graphics,0,0,1)
rt.cells(1,0).RenderObject = ccc

rt.Cells(2, 0).text = 765

doc.Preview() \'预览报表