打印多列格式文本vb6

时间:2012-10-14 22:44:50

标签: printing vb6 formatting

我需要打印格式化的文本,如下图所示,我怎样才能在vb6中实现这一点,因为vb6打印对象对此不友好

我需要打印的数据由方框表示

enter image description here

1 个答案:

答案 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