vb的printer.scale 用来打印全屏或者当前控件显示内容,换成vb.net用什么方法能实现?
一个vb的打印方法,功能是打印控件里的内容,里面的画图什么的,控件里有一个功能是放大和缩小,打印要求可以选择全屏打印和打印当前显示的,vb原来代码是用scale获取坐标实...
一个vb的打印方法,功能是打印控件里的内容,里面的画图什么的,控件里有一个功能是放大和缩小,打印要求可以选择全屏打印和打印当前显示的,vb原来代码是用scale获取坐标实现的。现在要换成vb.net实现同样功能,但是vb.net里已经没有Scale。之后用printdocument,但printdocument里面貌似也没有能按坐标打印的方法,找了很多没有发现vb.net有类似能按坐标打印的方法。请大神帮看一下,有没有研究过的?应该怎么做,很急,在线等
部分代码如下
With Drw If bWhole = True Then
'当选择按全屏打印
X1 = View(3).X1 + (View(3).X2 - View(3).X1) / 3
X2 = X1 + (View(3).X2 - View(3).X1) / 3
Y1 = View(3).Y1 + (View(3).Y2 - View(3).Y1) / 3
Y2 = Y1 + (View(3).Y2 - View(3).Y1) / 3
Else
'当选择按当前范围打印
If MemType <> "Compact" Then
X1 = .ScaleLeft + .ScaleWidth / 3
X2 = .ScaleLeft + 2 * .ScaleWidth / 3
Y1 = .ScaleTop + .ScaleHeight / 3
Y2 = .ScaleTop + 2 * .ScaleHeight / 3
Else
X1 = .ScaleLeft
X2 = .ScaleLeft + .ScaleWidth
Y1 = .ScaleTop
Y2 = .ScaleTop + .ScaleHeight
End If
End If
Y1 = Y1 + 20
Y2 = Y2 - 80
Printer.Scale (X1, Y1)-(X2, Y2)
End With
更多 0 展开
部分代码如下
With Drw If bWhole = True Then
'当选择按全屏打印
X1 = View(3).X1 + (View(3).X2 - View(3).X1) / 3
X2 = X1 + (View(3).X2 - View(3).X1) / 3
Y1 = View(3).Y1 + (View(3).Y2 - View(3).Y1) / 3
Y2 = Y1 + (View(3).Y2 - View(3).Y1) / 3
Else
'当选择按当前范围打印
If MemType <> "Compact" Then
X1 = .ScaleLeft + .ScaleWidth / 3
X2 = .ScaleLeft + 2 * .ScaleWidth / 3
Y1 = .ScaleTop + .ScaleHeight / 3
Y2 = .ScaleTop + 2 * .ScaleHeight / 3
Else
X1 = .ScaleLeft
X2 = .ScaleLeft + .ScaleWidth
Y1 = .ScaleTop
Y2 = .ScaleTop + .ScaleHeight
End If
End If
Y1 = Y1 + 20
Y2 = Y2 - 80
Printer.Scale (X1, Y1)-(X2, Y2)
End With
更多 0 展开
1个回答
2016-06-21
展开全部
报表打印应该也能实现,但是我觉得你这个用文本打印更简单,将数据输出到txt文件,结果用RichTextBox显示,但是需要简单的排版,调用打印机打印RichTextBox即可的
排版用tab()、space()、&vbcrlf或PrintLine(1)换行,代码类似如下样式
PrintLine(1, TAB(60), "准考证" )
PrintLine(1)
PrintLine(1, "姓名:" & xingming & Space(3) &"准考证号:" & cel(1) & Space(3) & cel(2) & Space(3) & cel(3))
但是TAB()排版比较规整
排版用tab()、space()、&vbcrlf或PrintLine(1)换行,代码类似如下样式
PrintLine(1, TAB(60), "准考证" )
PrintLine(1)
PrintLine(1, "姓名:" & xingming & Space(3) &"准考证号:" & cel(1) & Space(3) & cel(2) & Space(3) & cel(3))
但是TAB()排版比较规整
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询