我在设计
报表打印代码时发现:doc.Preview() 和
doc.Print()显示的效果不一样,前者显示的是设计所要达到的效果,而后者所显示的是缩的很小的效果,为什么,请高手帮助解决。
两个打印效果不一样,如:
报表打印代码1:
Dim doc As New PrintDoc '定义一个报表
Dim rt As New prt.RenderTable() '定义一个表格对象
doc.Body.Children.Add(rt) '将表格对象加入到报表中
rt.Style.GridLines.All = New prt.LineDef '将网格线类型设为默认类型
rt.Width = 150 '表宽为150毫米
rt.Height = 150 '表高为150毫米
rt.Rows.Count = 3 '设置行数
rt.Cols.Count = 3 '设置列数
doc.Preview() '预览
报表打印代码2:
Dim doc As New PrintDoc '定义一个报表
Dim rt As New prt.RenderTable() '定义一个表格对象
doc.Body.Children.Add(rt) '将表格对象加入到报表中
rt.Style.GridLines.All = New prt.LineDef '将网格线类型设为默认类型
rt.Width = 150 '表宽为150毫米
rt.Height = 150 '表高为150毫米
rt.Rows.Count = 3 '设置行数
rt.Cols.Count = 3 '设置列数
doc.Print()
禁止自动旋转
打印报表的时候,系统默认会自动根据实际纸张的大小,判断是否需要旋转打印内容,以便更好地配合纸张。
如果不需要自动旋转打印内容,可以将AutoRotate属性设为False。
例如:
Dim
doc As New PrintDoc
Dim ra As New prt.RenderArea
doc.PageSetting.Width = 150
doc.PageSetting.Height = 80
doc.AutoRotate = False '禁止自动旋转打印内容
ra.Width = "Parent.Width"
ra.Height = "Parent.Height"
ra.Style.Borders.All = New prt.Linedef(5, Color.Red)
doc.Body.Children.Add(ra)
doc.Print()
你可以删除下面这一行代码,重新打印一张,看看结果有什么不同:
doc.AutoRotate = False '禁止自动旋转打印内容
删除doc.AutoRotate = False 后,还是效果不一样,doc.Preview() 大于doc.Print()。您不妨试试。
[此贴子已经被作者于2009-12-11 14:42:22编辑过]
你是不是用的旧版本啊?
Dim doc As New PrintDoc '定义一个报表
Dim rt As New prt.RenderTable() '定义一个表格对象
doc.Body.Children.Add(rt) '将表格对象加入到报表中
rt.Style.GridLines.All = New prt.LineDef '将网格线类型设为默认类型
rt.Width = 150 '表宽为150毫米
rt.Height = 150 '表高为150毫米
rt.Rows.Count = 3 '设置行数
rt.Cols.Count = 3 '设置列数
doc.AutoRotate = False
doc.Print()
用的是旧版本,新版本可以解决此问题吗?
[此贴子已经被作者于2009-12-11 16:02:21编辑过]