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
展开
 我来答
匿名用户
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()排版比较规整
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式