0

下の画像のように書式設定されたテキストを印刷する必要があります。vb6 印刷オブジェクトはこのようなものに適していないため、vb6 でこれを実現するにはどうすればよいですか

ボックスで表される印刷する必要があるデータは関連していません

ここに画像の説明を入力

4

1 に答える 1

1

それほど難しいことではありません。ScaleLeftScaleWidthCurrentX、およびCurrentYプロパティを使用して、ページのどこから印刷を開始するかを設定します。この場合、おそらくOrientationプロパティをvbPROPortraitに設定することもできます。これらの配置プロパティを使用し、必要なフォントとスタイルを設定してから、 Printer.Printを呼び出します。

このメソッドは、ページに 4 つのボックスを描画します。(x, y) 座標で遊ぶか、数値をハードコーディングしてサイズを変更します。プリンターでこのメソッドからページを印刷したくない場合は、.EndDoc ステートメントを削除し、別の場所から Printer.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
于 2012-10-15T00:43:12.220 に答える