Inhalt drucken

  • Themenstarter Themenstarter cooper111
  • Beginndatum Beginndatum
C

cooper111

hallo ,


Ich bin ein Anfänger in VB und möchte ein Urlaubsantrag Programm schreiben.
Ich habe bereits eine Form mit jeweiligen Textboxen .Nun möchte ich den Inhalt der textboxen
ausdrucken. Möchte aber das der Inhalt der textboxen auf eine bestimmte stelle des Papiers ausgedrckt wird mit einer jeweiligen Formatierung.

Nun meine Frage : Gibt es ein Tutorial zum Drucken und Formatieren des Textes ?
 
Hallo cooper111,

habe dies mit einer Picturebox und einem API-Befehl gelöst.

' frmMain ist der Name Deines Formulares, wo Du die Textbox hast
' txtbox ist der Name Deiner Textbox
' frmPrint ist der Name des Formulares, wo ich die Picturebox für den Ausdruck habe

Codeauszug:
Den kompletten Code in das Formular kopieren, wo Du die Picturebox hast.
___________________________________________________________________
Option Explicit

'Nicht wundern. Zwei mal Sendmessage ist schon ok.
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wp As Long, Ip As Any) As Long
Private Declare Function SendMessage1 Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Any) As Long

Private Const EM_GETLINE = &HC4
Private Const EM_GETLINECOUNT = &HBA
Private Const MAX_CHAR_PER_LINE = &H100

Function PageCtnProc(inControl As Control) As Integer

Dim Max&, X&, pxStart&

pxStart = 150

Max = SendMessage(frmMain.txtbox.hwnd, EM_GETLINECOUNT, 0, 0&) - 1
inControl.Cls

inControl.Font.Size = 11
inControl.Font.Bold = False

For X = 0 To Max
inControl.CurrentX = ((5 - pxStart) * 480)
inControl.CurrentY = ((5 - pxStart) * 480) + inControl.TextHeight("H") * (X + 5)
inControl.Print GetLine(frmMain.txtbox, X)
DoEvents
Next X

End Function

Function GetLine(Text As TextBox, ByVal Line&) As String
Dim Lo%, Hi%, Result&, Buff$

Lo = MAX_CHAR_PER_LINE And &HFF
Hi = Int(MAX_CHAR_PER_LINE / &H100)
Buff = Chr$(Lo) & Chr$(Hi) & Space$(MAX_CHAR_PER_LINE - 2)

Result = SendMessage1(Text.hwnd, EM_GETLINE, Line, Buff)
GetLine = Left$(Buff, Result)
End Function

Private Sub Form_Load()
' picPreview Name der Picturepox

PageCtnProc Me.picPreview

End Sub
___________________________________________________________________

Aufrufen des Formulares tätige ich mit folgenden Code:

frmPrint.Show 1, Me

Probier dies mal aus. Sicherlich musst Du dies noch für Dich umstricken.
Vielleicht konnte ich Dir helfen.

Gruß ANI
 
Zurück