用Printer对象打印表格,出现问题。头疼,帮帮忙,大家!
yeman 2003-11-12 12:19:26 Private Sub Label1_Click()
With Printer
.Orientation = 2 '横向打印
.ScaleMode = 6
.Height = 420
.Width = 297
.ScaleWidth = 297
.ScaleHeight = 420
.ScaleLeft = 0
.ScaleTop = -10
usew = .ScaleWidth
useh = .ScaleHeight
'.Zoom = 70
.FontName = "黑体"
.FontSize = 16
.CurrentX = (usew - Printer.TextWidth("现金支出表")) / 2
.CurrentY = 0
End With
Printer.Print frmmain.Label1.Caption
Printer.Print
Dim Y As Integer
Y = Printer.CurrentY
Printer.CurrentX = 10
Printer.Print "部门:" + frmmain.bum
Printer.CurrentX = 180
Printer.CurrentY = Y
Printer.Print frmmain.Label3.Caption
Printer.FontBold = False
Printer.FontName = "宋体"
Printer.CurrentX = 0
If frmmain.bx = 1 Or frmmain.bx = 2 Then
Printer.FontSize = 10
Printer.Print "┏━━┯━━━━━━┯━━━━━━┯━━━━━━┯━━━━━━┯━━━━━━┯━━━━━━┯━━━━━━┯━━━━━━┯━━━━━━┯━━━━━━┯━━━━━━┯━━━━━━┓"
Printer.Print "┃ │ 一月 │ 二月 │ 三月 │ 四月 │ 五月 │ 六月 │ 七月 │ 八月 │ 九月 │ 十月 │ 十一月 │ 十二月 ┃"
For a = 1 To 31
Printer.Print "┠──┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┨"
s = "┃" + Right(" " + Trim(CStr(a)), 2) + "日"
For b = 1 To 12
s = s + "│" + Right(Space(12) + Trim(frmmain.MSG.TextMatrix(b, a)), 12)
Next b
s = s + "┃"
Printer.Print s
Next a
Printer.Print "┠──┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┨"
s = "┃合计"
For b = 1 To 12
s = s + "│" + Right(Space(12) + Trim(frmmain.MSG.TextMatrix(b, 32)), 12)
Next b
s = s + "┃"
Printer.Print s
Printer.Print "┗━━┷━━━━━━┷━━━━━━┷━━━━━━┷━━━━━━┷━━━━━━┷━━━━━━┷━━━━━━┷━━━━━━┷━━━━━━┷━━━━━━┷━━━━━━┷━━━━━━┛"
Printer.EndDoc
End If
If frmmain.bx = 3 Then
Printer.FontSize = 12
Printer.Print "┏━━━┯━━━━━━┯━━━━━━┯━━━━━━┯━━━━━━┯━━━━━━┯━━━━━━┯━━━━━━┓"
Printer.Print "┃ │ 期 初 数 │ 补助收入 │ 上级收入 │ 预算外收入 │ 其它收入 │ 支 出 │ 结 余 ┃"
For a = 1 To 12
Printer.Print "┠───┼──────┼──────┼──────┼──────┼──────┼──────┼──────┨"
s = "┃" + Right(" " + Trim(CStr(a)), 3) + "月 "
For b = 1 To 7
s = s + "│" + Right(Space(12) + Trim(frmmain.MSG.TextMatrix(a, b)), 12)
Next b
s = s + "┃"
Printer.Print s
Next a
Printer.Print "┗━━━┷━━━━━━┷━━━━━━┷━━━━━━┷━━━━━━┷━━━━━━┷━━━━━━┷━━━━━━┛"
Printer.EndDoc
End If
End Sub
=============================================
问题
==============================================
.ScaleMode = 6 ‘设置为以mm为单位,在那个针式打印机上不起作用,
.Zoom = 70 ‘同样不起作用
Printer.FontSize = 10 字体大小为10或者12时表格才能显示正常,但是A3纸打印不下
如果选择其他字体大小的话,表线和下面有数字的行会产生一点偏差,效果如下:
┏━━━┯━━━━━━┯━━━━━━┯━━━━━━┯
┃ │ 一月 │ 二月 │ 三月 │
一开始偏差很小很小(不到一毫米),越向右偏差越来越大。不知道这点偏差是因为什么引起的。在几个打印机上都是如此。
还有一些奇怪的问题。一个很简单的打印让我头疼,不知道该怎么办。
那个打印机是那种一次送一张纸,打完自动退出来的那种。打票据的。
用Printer对象打印的效果在不同的打印机效果会不同吗?
求救~!!!。