不管怎么设置,都不管用,很郁闷~
代码如下:
Printer.Zoom = 8
Printer.ScaleX (200)
Printer.ScaleTop = 300
'SetPrinterScale Me
frmYuLan.PrintForm ' 将显示窗体的内容送到打印机
Printer.EndDoc
Printer.KillDoc
在网上找到一个SetPrinterScale 代码,也不管用。
Private Sub SetPrinterScale(obj As Object)
Dim pwid As Single, phgt As Single, xmid As Single, ymid As Single
Dim owid As Single, ohgt As Single
owid = obj.ScaleX(obj.ScaleWidth, obj.ScaleMode, vbTwips)
ohgt = obj.ScaleY(obj.ScaleHeight, obj.ScaleMode, vbTwips) '获取窗体以Twips表示的尺寸
pwid = Printer.ScaleX(Printer.ScaleWidth, Printer.ScaleMode, vbTwips)
phgt = Printer.ScaleY(Printer.ScaleHeight, Printer.ScaleMode, vbTwips) '获取打印机以Twips表示的尺寸
If (ohgt / owid > phgt / pwid) Then
s = phgt / ohgt
Else
s = pwid / owid
End If '计算缩放因子
pwid = obj.ScaleX(pwid, vbTwips, obj.ScaleMode) / s
phgt = obj.ScaleY(phgt, vbTwips, obj.ScaleMode) / s
'将打印机的尺寸转换成obj的坐标系统 / 缩放因子
x_mid = obj.ScaleLeft + obj.ScaleWidth / 2
y_mid = obj.ScaleTop + obj.ScaleHeight / 2 '设置打印区域的中心点坐标
Printer.Scale (x_mid - pwid / 2, y_mid - phgt / 2)-(x_mid + pwid / 2, y_mid + phgt / 2)
' 设置打印机中新的ScaleWidth和ScaleHeight
End Sub
请高手指点,多谢!:)
ps:有分了就追加。
picture打印该怎么处理。
我直接 Printer.PaintPicture Picture1, Picture1.Left, Picture1.Top, Picture1.Width, Picture1.Height
显示的是空。
另外,picturebox的滚动条怎么出现啊?
拜托了。