用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对象打印的效果在不同的打印机效果会不同吗?

求救~!!!。

...全文
32 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bingxuehuiren 2003-11-30
  • 打赏
  • 举报
回复
对了,如果楼主解决了问题能不能说一下,你的这些线是怎么画的.我刚学打印.
bingxuehuiren 2003-11-30
  • 打赏
  • 举报
回复
对了你不如把画线变成画方块呢
bingxuehuiren 2003-11-30
  • 打赏
  • 举报
回复
关注
victorycyz 2003-11-12
  • 打赏
  • 举报
回复
把打印表格的字符都换成line,就可精确控制。
yxgsb 2003-11-12
  • 打赏
  • 举报
回复
用Printer对象打印的效果在不同的打印机效果会不同吗?
肯定不同!!!
最好放到窗体或图片框中,用窗体或图片框的Print

809

社区成员

发帖
与我相关
我的任务
社区描述
VB 多媒体
社区管理员
  • 多媒体
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧