我需要打印如下图所示的格式化文本,我如何在 vb6 中实现这一点,因为 vb6 打印对象对此不友好
我需要打印的由方框表示的数据是不相关的
这不是很困难。您可以使用ScaleLeft、ScaleWidth、CurrentX和CurrentY属性来设置打印在页面上的开始位置。在这种情况下,您可能还希望将Orientation属性设置为vbPROPortrait。使用这些定位属性,并设置您想要的字体和样式,然后调用Printer.Print
此方法将在页面上绘制 4 个框。使用 (x, y) 坐标或对数字进行硬编码以更改大小。如果您不希望打印机从此方法打印页面并从其他地方调用 Printer.EndDoc,请删除 .EndDoc 语句。VB6 的完整打印机对象文档可在http://msdn.microsoft.com/en-us/library/aa443915%28v=vs.60%29.aspx找到
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