以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于自定义纸张设置问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=178609) |
||||
-- 作者:jhxb8821 -- 发布时间:2022/7/12 10:38:00 -- 关于自定义纸张设置问题
老师,我对自定义纸张和打印机进行设置,可是选择票据打印机后,打出的内容不齐全,有的方向还有问题,我用的纸张为190*93,连续纸;票据打印机映美FP560K,请老师帮我看看两个代码,在哪里出现问题
[此贴子已经被作者于2022/7/12 10:42:32编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2022/7/12 10:43:00 -- 预览和打印要分开2个按钮,不能在预览界面里进行打印。 |
||||
-- 作者:jhxb8821 -- 发布时间:2022/7/12 10:53:00 -- 请教如何分开 请问老师怎么写打印代码? |
||||
-- 作者:有点蓝 -- 发布时间:2022/7/12 11:07:00 -- Doc.Print() |
||||
-- 作者:jhxb8821 -- 发布时间:2022/7/12 11:34:00 -- 代码 老师,我试了多次,浪费了很多纸张,还是不行,应该横着打,结果竖做打,打的还不齐全。麻烦老师帮我认真看看代码 怎么实例上传不了 打印预览代码: 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编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2022/7/12 11:42:00 -- 去掉doc.PageSetting.Landscape = True |
||||
-- 作者:jhxb8821 -- 发布时间:2022/7/12 12:24:00 -- 谢谢老师指导 终于打了一张正常的 |
||||
-- 作者:jhxb8821 -- 发布时间:2022/7/20 8:48:00 -- 代码 老师,我在进账单窗口设计时,想从日期列提取日,比如2022-07-01,e.Text = Day(e.Value),这个代码得到1,我想为2位数,得到01,请教老师如何修改?
|
||||
-- 作者:有点蓝 -- 发布时间:2022/7/20 8:59:00 -- e.Text = format(e.Value,"dd") |
||||
-- 作者:jhxb8821 -- 发布时间:2022/8/19 13:40:00 -- 代码 保存达到这个效果:选房顺序号(2022-08-19 13:20:29). 老师,帮忙看一下下面代码怎么修改? Dim fl As String =
ProjectPath & "Reports\\打印报表\\" &
format(Date.now, "yyyy-MM-dd") & "\\" & r("户型") & " 选房顺序号" & "(" &
format(Date.now, "yyyy-MM-dd") & " " & "HH:mm:ss" & ").xls" |