如题用专业报表设计的piao据连续打印,通过 代码设置了纸张的大小,如果从针式 打印机前面放纸,打一张放一张没有问题,如果从后面连续放纸,按理说打完第一纸再打第二张的时候位置会自动根据自定义纸张的大小自行调整吐纸位置,但现在打完第一张,吐很长一段纸,不知是代码的问题还是设置的问题?请大神指教。。。
Dim Doc As new PrintDoc
Dim pr As DataRow = DataTables("lsconf").Find("f_vkey = 'PRinter'") '打印机
If pr.IsNull("f_val")
MessageBox.Show("未设置默认打印机,请在系统参数中设置默认打印机!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Return
Else
Doc.PrinterName = pr("f_val") '设置默认打印机
End If
Dim dyzz As DataRow= DataTables("print_conf").find("F_num like '01%' and F_name='zzdx'") '打印纸张
Dim ztpy As DataRow= DataTables("print_conf").find("F_num like '01%' and F_name='ztpyz'") ' 整体偏移
Dim mxhg As DataRow = DataTables("print_conf").find("F_num like '01%' and F_name='SYGD'") '明细行高度
Dim pyz As Integer = val(ztpy("F_X"))
Dim pys As Integer = val(ztpy("F_Y"))
Doc.PageSetting.Width = val(dyzz("f_X")) ‘从数据库取纸张参数。
Doc.PageSetting.Height = val(dyzz("f_Y"))
doc.PageSetting.Landscape = True
Doc.PageSetting.LeftMargin=1
Doc.PageSetting.BottomMargin =1
Doc.PageSetting.TopMargin=1
Doc.PageSetting.LeftMargin =1
doc.AutoRotate = False
Dim zbs As List(of DataRow)= DataTables("print_conf").Select("F_num like '01%'") '打印参数表
For Each zb As DataRow In zbs
Select Case zb("f_name")
Case "JKR"
Dim jkr As new prt.RenderText
If zb.IsNull("F_P") OrElse zb("F_P") = "1" '如果为空的话是必打项目,如果是有数 再判断是0或者1
jkr.Text = dr("交款人")
jkr.Style.FontSize =11
jkr.X = val(zb("F_X")) + pyz
jkr.y = val(zb("F_Y")) + pys
Doc.Body.Children.Add(jkr)
End If
此处为取数据库数据代码。。略
Case "JE"
Dim n As Integer = 0
For Each dc As DataRow In dcs
Dim JE As new prt.RenderText
If zb.IsNull("F_P") OrElse zb("F_P") = "1"
JE.Text =Format(dc("金额"),"#,###.00")
je.Style.TextAlignHorz = prt.AlignHorzEnum.Justify
JE.X= val(zb("F_X"))+ pyz
JE.y = val(zb("F_Y"))+ pys + val(mxhg("F_Y"))*n
Doc.Body.Children.Add(JE)
n=n+1
End If
Next
End Select
Next
Dim dp As DataRow = DataTables("lsconf").Find("f_vkey = 'direct_print'")
If dp("f_VAL") ="Y"
Doc.Print
Else
Doc.Preview()
End If