下の画像のように書式設定されたテキストを印刷する必要があります。vb6 印刷オブジェクトはこのようなものに適していないため、vb6 でこれを実現するにはどうすればよいですか
ボックスで表される印刷する必要があるデータは関連していません
下の画像のように書式設定されたテキストを印刷する必要があります。vb6 印刷オブジェクトはこのようなものに適していないため、vb6 でこれを実現するにはどうすればよいですか
ボックスで表される印刷する必要があるデータは関連していません
それほど難しいことではありません。ScaleLeft、ScaleWidth、CurrentX、および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