VB form打印缩放的问题,想把form扩大打印到A4纸

不管怎么设置,都不管用,很郁闷~代码如下:Printer.Zoom=8Printer.ScaleX(200)Printer.ScaleTop=300'SetPrinter... 不管怎么设置,都不管用,很郁闷~
代码如下:

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的滚动条怎么出现啊?
拜托了。
展开
 我来答
excel712
2008-05-05 · TA获得超过329个赞
知道小有建树答主
回答量:250
采纳率:0%
帮助的人:0
展开全部
FORM的大小不是无限制大的,是不能超过屏幕分辨率的范围的。
这种情况可以在form中放一个picturebox,然后再加上垂直和水平滚动条,在picturebox中打印内容作为模拟显示,picturebox的大小可以超过屏幕大小的。
如果是打印的话,建议直接向printer发送print命令,不需要通过FORM.PrintForm

-------------------------
给个邮箱,发段示例代码给你。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式