老师,我试了多次,浪费了很多纸张,还是不行,应该横着打,结果竖做打,打的还不齐全。麻烦老师帮我认真看看代码
怎么实例上传不了
打印预览代码:
Dim doc As New PrintDoc '定义一个报表
Dim rt As New prt.RenderTable() '定义一个表格对象
Dim rx As New prt.RenderText '定义一个文本对象
doc.PageSetting.Landscape = True '横向打印 逻辑型型,是否横向打印
doc.PageSetting.Width = 190 '自定义设置纸张宽度为210毫米 设置页面宽度,单位为毫米
doc.PageSetting.Height = 93 '纸张高度为120毫米 设置页面高度,单位为毫米
doc.AutoRotate = False '如果纸张的宽度超过高度,要加上这行代码
Doc.PageSetting.TopMargin = 5 '设置上边距为15毫米
Doc.PageSetting.LeftMargin = 15 '设置左边距,单位为毫米
Doc.PageSetting.RightMargin = 15 '设置右边距
Doc.PageSetting.BottomMargin = 5 '设置下边距 底边距
Dim CurRow As Row = Tables("表A").Current
'加入标题
rx.text = "浙中旅游公司——员工资料卡"
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 16 '大体大小为16磅
rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中排列
rx.Style.Spacing.Bottom = 2 '和下面的对象(表格)距离3毫米
doc.Body.Children.Add(rx) '加入到报表中
'指定行数、列数、列宽、行高
rt.Rows.Count = 7 '设置总行数
rt.Cols.Count = 5 '设置总列数
rt.Height = 55 '设置表格的高度为80毫米
rt.Width = 155 '设置表格的宽度为155毫米
rt.Rows(6).Height = 16 '设置第7行(显示备注的行)的高度为40毫米,剩余高度被平均分排到其他行
'rt.Cols(0).Width = 24 '设置前四列的宽度,剩余的宽度被分配给5列(显示图片的那列)
rt.Cols(1).Width = 35
'rt.Cols(2).Width = 24
rt.Cols(3).Width = 35
rt.Cols(4).Width = 35
'设置合并单元格
rt.Cells(0, 4).SpanRows = 6 '第1行第5个单元格向下合并6行(用于显示照片)
rt.Cells(4, 1).SpanCols = 3 '第5行第2个单元格向右合并3列(用于显示地址)
rt.Cells(6, 0).SpanCols = 5 '第7行第1个单元格向右合并5列(用于显示备注)
'设置表格样式
rt.CellStyle.Spacing.All = 1 '单元格内容缩进1毫米
rt.Style.GridLines.All = New prt.Linedef '设置网格线
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中排列 新增
rt.Style.TextAlignVert = prt.AlignVertEnum.Center '内容垂直居中
'rt.Style.Font = New Font("宋体", 11, FontStyle.Bold) '设置字体 新增
rt.Style.Font = New Font("宋体", 11) '设置字体 新增
rt.Rows(6).Style.TextAlignVert = prt.AlignVertEnum.Top '唯独第7行是备注,内容靠上对齐
'下面很简单,指定每一个单元格的内容
rt.Cells(0, 0).Text = "姓 名"
rt.Cells(0, 1).Text = CurRow("姓名")
rt.Cells(0, 2).Text = "出生日期"
rt.Cells(0, 3).Text = CurRow("出生日期")
rt.Cells(1, 0).Text = "部 门"
rt.Cells(1, 1).Text = CurRow("部门")
rt.Cells(1, 2).Text = "雇佣日期"
rt.Cells(1, 3).Text = CurRow("雇佣日期")
rt.Cells(2, 0).Text = "性 别"
rt.Cells(2, 1).Text = CurRow("性别")
rt.Cells(2, 2).Text = "职 务"
rt.Cells(2, 3).Text = CurRow("职务")
rt.Cells(3, 0).Text = "城 市"
rt.Cells(3, 1).Text = CurRow("城市")
rt.Cells(3, 2).Text = "邮政编码"
rt.Cells(3, 3).Text = CurRow("邮政编码")
rt.Cells(4, 0).Text = "地 址"
rt.Cells(4, 1).Text = CurRow("地址")
rt.Cells(5, 0).Text = "家庭电话"
rt.Cells(5, 1).Text = CurRow("家庭电话")
rt.Cells(5, 2).Text = "办公电话"
rt.Cells(5, 3).Text = CurRow("办公电话")
rt.Cells(6, 0).Text = CurRow("备注")
rt.Cells(0, 4).Image = GetImage(CurRow("照片"))
doc.Body.Children.Add(rt) '将表格对象加入到报表中
'二维码代码
Dim rg As prt.RenderGraphics
Dim mg As String = ProjectPath & "Images\二维码.wmf"''约定的图片文件 二维码保存代码1
Dim Bar As New BarCodeBuilder
Bar.Symbology = Barpro.Symbology.QRCode
Bar.QRCodeModuleSize = 2 '二维码的放大倍数
Bar.Code = "姓名:" & CurRow("姓名") & vbcrlf & "部门:" & CurRow("部门") & vbcrlf & "电话:" & CurRow("办公电话")
bar.SaveImage(mg, 300) '二维码保存代码2
rg = New prt.RenderGraphics
bar.DrawOnCanvas(rg.Graphics, 0, 0, 0.5)
rg.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center '图片水平居中
rg.Style.ImageAlign.AlignVert = prt.ImageAlignVertEnum.Center '图片垂直居中
rg.Style.ImageAlign.StretchHorz = False '禁止水平方向扩展图片
rg.Style.ImageAlign.StretchVert = False '禁止垂直方向扩展图片
Dim ra2 = rt.Cells(0, 4).Area '引用单元格的容器 '
ra2.Children.Add(rg)
'表格后新增内容设计
rx = New prt.RenderText() '再次定义一个文本对象
rx.Text = "说明:第一联(存根),第二联(客户),第三联(会计)"
rx.Style.Font = New Font("仿宋", 10 , FontStyle.Bold) '设置文本对象的字体
rx.Style.Spacing.Top = 2 '表格和前面对象的垂直间隔为4毫米 '此代码是调整"标题与表格"之间的间距
doc.Body.Children.Add(rx) '将文本对象加入到表格中
Doc.Preview() '预览报表
'Doc.Print()
打印按钮代码:
Dim doc As New PrintDoc()
doc.PageSetting.Width = 190 '纸张宽度为190毫米
doc.PageSetting.Height = 93 '纸张高度为93毫米
doc.AutoRotate = False '如果纸张的宽度超过高度,要加上这行代码
'添加打印内容
'Dim doc As New PrintDoc '定义一个报表
Dim rt As New prt.RenderTable() '定义一个表格对象
Dim rx As New prt.RenderText '定义一个文本对象
doc.PageSetting.Landscape = True '横向打印 逻辑型型,是否横向打印
Doc.PageSetting.TopMargin = 5 '设置上边距为15毫米
Doc.PageSetting.LeftMargin = 15 '设置左边距,单位为毫米
Doc.PageSetting.RightMargin = 15 '设置右边距
Doc.PageSetting.BottomMargin = 5 '设置下边距 底边距
Dim CurRow As Row = Tables("表A").Current
'加入标题
rx.text = "浙中旅游公司——员工资料卡"
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 16 '大体大小为16磅
rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中排列
rx.Style.Spacing.Bottom = 2 '和下面的对象(表格)距离3毫米
doc.Body.Children.Add(rx) '加入到报表中
'指定行数、列数、列宽、行高
rt.Rows.Count = 7 '设置总行数
rt.Cols.Count = 5 '设置总列数
rt.Height = 55 '设置表格的高度为80毫米
rt.Width = 155'设置表格的宽度为160毫米
rt.Rows(6).Height = 16 '设置第7行(显示备注的行)的高度为40毫米,剩余高度被平均分排到其他行
'rt.Cols(0).Width = 24 '设置前四列的宽度,剩余的宽度被分配给5列(显示图片的那列)
rt.Cols(1).Width = 35
'rt.Cols(2).Width = 24
rt.Cols(3).Width = 35
rt.Cols(4).Width = 35
'设置合并单元格
rt.Cells(0, 4).SpanRows = 6 '第1行第5个单元格向下合并6行(用于显示照片)
rt.Cells(4, 1).SpanCols = 3 '第5行第2个单元格向右合并3列(用于显示地址)
rt.Cells(6, 0).SpanCols = 5 '第7行第1个单元格向右合并5列(用于显示备注)
'设置表格样式
rt.CellStyle.Spacing.All = 1 '单元格内容缩进1毫米
rt.Style.GridLines.All = New prt.Linedef '设置网格线
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中排列 新增
rt.Style.TextAlignVert = prt.AlignVertEnum.Center '内容垂直居中
'rt.Style.Font = New Font("宋体", 11, FontStyle.Bold) '设置字体 新增
rt.Style.Font = New Font("宋体", 11) '设置字体 新增
rt.Rows(6).Style.TextAlignVert = prt.AlignVertEnum.Top '唯独第7行是备注,内容靠上对齐
'下面很简单,指定每一个单元格的内容
rt.Cells(0, 0).Text = "姓 名"
rt.Cells(0, 1).Text = CurRow("姓名")
rt.Cells(0, 2).Text = "出生日期"
rt.Cells(0, 3).Text = CurRow("出生日期")
rt.Cells(1, 0).Text = "部 门"
rt.Cells(1, 1).Text = CurRow("部门")
rt.Cells(1, 2).Text = "雇佣日期"
rt.Cells(1, 3).Text = CurRow("雇佣日期")
rt.Cells(2, 0).Text = "性 别"
rt.Cells(2, 1).Text = CurRow("性别")
rt.Cells(2, 2).Text = "职 务"
rt.Cells(2, 3).Text = CurRow("职务")
rt.Cells(3, 0).Text = "城 市"
rt.Cells(3, 1).Text = CurRow("城市")
rt.Cells(3, 2).Text = "邮政编码"
rt.Cells(3, 3).Text = CurRow("邮政编码")
rt.Cells(4, 0).Text = "地 址"
rt.Cells(4, 1).Text = CurRow("地址")
rt.Cells(5, 0).Text = "家庭电话"
rt.Cells(5, 1).Text = CurRow("家庭电话")
rt.Cells(5, 2).Text = "办公电话"
rt.Cells(5, 3).Text = CurRow("办公电话")
rt.Cells(6, 0).Text = CurRow("备注")
rt.Cells(0, 4).Image = GetImage(CurRow("照片"))
doc.Body.Children.Add(rt) '将表格对象加入到报表中
'二维码代码
Dim rg As prt.RenderGraphics
Dim mg As String = ProjectPath & "Images\二维码.wmf"''约定的图片文件 二维码保存代码1
Dim Bar As New BarCodeBuilder
Bar.Symbology = Barpro.Symbology.QRCode
Bar.QRCodeModuleSize = 2 '二维码的放大倍数
Bar.Code = "姓名:" & CurRow("姓名") & vbcrlf & "部门:" & CurRow("部门") & vbcrlf & "电话:" & CurRow("办公电话")
bar.SaveImage(mg, 300) '二维码保存代码2
rg = New prt.RenderGraphics
bar.DrawOnCanvas(rg.Graphics, 0, 0, 0.5)
rg.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center '图片水平居中
rg.Style.ImageAlign.AlignVert = prt.ImageAlignVertEnum.Center '图片垂直居中
rg.Style.ImageAlign.StretchHorz = False '禁止水平方向扩展图片
rg.Style.ImageAlign.StretchVert = False '禁止垂直方向扩展图片
Dim ra2 = rt.Cells(0, 4).Area '引用单元格的容器 '
ra2.Children.Add(rg)
'表格后新增内容设计
rx = New prt.RenderText() '再次定义一个文本对象
rx.Text = "说明:第一联(存根),第二联(客户),第三联(会计)"
rx.Style.Font = New Font("仿宋", 10 , FontStyle.Bold) '设置文本对象的字体
rx.Style.Spacing.Top = 2 '表格和前面对象的垂直间隔为4毫米 '此代码是调整"标题与表格"之间的间距
doc.Body.Children.Add(rx) '将文本对象加入到表格中
'doc.Preview() '预览报表
Doc.Print()'直接打印
[此贴子已经被作者于2022/7/12 11:39:06编辑过]