我需要打印格式化的文本,如下图所示,我怎样才能在vb6中实现这一点,因为vb6打印对象对此不友好
我需要打印的数据由方框表示
答案 0 :(得分:1)
这不是很困难。您可以使用 ScaleLeft , ScaleWidth , CurrentX 和 CurrentY 属性来设置页面上打印的开始位置。在这种情况下,您可能还需要将方向属性设置为 vbPROPortrait 。使用这些定位属性,并设置所需的字体和样式,然后调用 Printer.Print
此方法将在页面上绘制4个框。使用(x,y)坐标进行游戏或对数字进行硬编码以改变大小。如果您不希望打印机从此方法打印页面并从其他位置调用Printer.EndDoc,请删除.EndDoc语句。可以在http://msdn.microsoft.com/en-us/library/aa443915%28v=vs.60%29.aspx
找到VB6的完整打印机对象文档Private Sub DrawBox()
With Printer
.ScaleMode = vbTwips
lngScaleWidth = .ScaleWidth
lngScaleHeight = .ScaleHeight
Printer.Line (.ScaleLeft + lngMargin, .ScaleTop + lngMargin)-(lngScaleWidth / 2 - (100 + lngMargin * 2), lngScaleHeight / 2 - (100 + lngMargin * 2)), lngColor, B
Printer.Line (lngScaleWidth / 2 + (100 + lngMargin * 2), .ScaleTop + lngMargin)-(.ScaleWidth - lngMargin, lngScaleHeight / 2 - (100 + lngMargin * 2)), lngColor, B
Printer.Line (.ScaleLeft + lngMargin, lngScaleHeight / 2 + (100 + lngMargin * 2))-(lngScaleWidth / 2 - (100 + lngMargin * 2), .ScaleHeight - lngMargin), lngColor, B
Printer.Line (lngScaleWidth / 2 + (100 + lngMargin * 2), lngScaleHeight / 2 + (100 + lngMargin * 2))-(.ScaleWidth - lngMargin, .ScaleHeight - lngMargin), lngColor, B
.EndDoc
End With
End Sub
下面的示例代码演示了一些定位和其他属性。
Dim lMargin as Integer
lMargin = 200
With Printer
.FontBold = True
.FontItalic = False
.CurrentY = .CurrentY + (3 * .TextHeight(App.ProductName))
.CurrentX = lLeftMargin
.FontName = "Arial"
.FontSize = 11
Printer.Print "Date " & strTransDate
End With