Option Explicit
'definiert den Abstand vom Blattkopf in cm
Const AbstandOben = 2
'definiert den Abstand vom Blattfuss in cm
Const AbstandUnten = 1
'definiert den Abstand von der linken Seite in cm
Const AbstandLinks = 2.5
'definiert den Abstand von der rechten Seite in cm
Const AbstandRechts = 2.5
'definiert den Abstand zwischen den einzelnen Objekten
Const TextAbstand = 0.1
'definiert die Rahmenart
Const RahmenOben = True
Const RahmenUnten = True
Const RahmenLinks = True
Const RahmenRechts = True
'legt fest, ob die Seiten gezählt werden
Const SeitenZaehlen = True
'setzt den Zaehler für die Seitenzahlen
Dim Seiten As Integer
Private Sub Command1_Click()
Dim i As Integer
Dim DruckString As String
Seiten = 0
'mit cm skalieren
Printer.ScaleMode = 7
'Schriftart wählen
Printer.Font = "Arial"
'Schriftgröße wählen
Printer.FontSize = "11"
Call NeueSeite(False
For i = 1 To 100
Call Zentriert(Printer.CurrentY, "Test " + Str(i))
Next i
Printer.EndDoc
End Sub
Private Sub NeueSeite(Newpage As Boolean)
If Newpage = True Then
Printer.Newpage
End If
Seiten = Seiten + 1
If RahmenOben = True Then Printer.Line _
(0 + AbstandLinks - TextAbstand, 0 + AbstandOben - _
TextAbstand)-(Printer.ScaleWidth - AbstandRechts + _
TextAbstand, 0 + AbstandOben - TextAbstand)
If RahmenUnten = True Then Printer.Line _
(0 + AbstandLinks - TextAbstand, Printer.ScaleHeight - _
AbstandUnten + TextAbstand)-(Printer.ScaleWidth - _
AbstandRechts + TextAbstand, Printer.ScaleHeight - _
AbstandUnten + TextAbstand)
If RahmenLinks = True Then Printer.Line _
(0 + AbstandLinks - TextAbstand, 0 + AbstandOben - _
TextAbstand)-(0 + AbstandLinks - TextAbstand, _
Printer.ScaleHeight - AbstandUnten + TextAbstand)
If RahmenRechts = True Then Printer.Line _
(Printer.ScaleWidth - AbstandLinks + TextAbstand, 0 + _
AbstandOben - TextAbstand)-(Printer.ScaleWidth - _
AbstandLinks + TextAbstand, Printer.ScaleHeight - _
AbstandUnten + TextAbstand)
If SeitenZaehlen = True Then
If RahmenUnten = False Then
Printer.CurrentY = (Printer.ScaleHeight - AbstandUnten + _
TextAbstand)
Printer.CurrentX = (Printer.ScaleWidth - _
Printer.TextWidth("- Seite " + Str(Seiten) + " -")) / 2
Printer.Print "- Seite " + Str(Seiten) + " -"
Else
Printer.CurrentY = (Printer.ScaleHeight - AbstandUnten + _
TextAbstand + 0.1)
Printer.CurrentX = (Printer.ScaleWidth - _
Printer.TextWidth("- Seite " + Str(Seiten) + " -")) / 2
Printer.Print "- Seite " + Str(Seiten) + " -"
End If
End If
Printer.CurrentY = AbstandOben
End Sub
Private Sub Zentriert(Height As Single, strText As String)
If Printer.CurrentY + Printer.TextHeight(strText) >= _
Printer.ScaleHeight - AbstandUnten Then
Call NeueSeite(True)
Height = Printer.CurrentY
End If
'hiermit wird der Text auf der X-Kooradinate zentriert
'Schema: Seitenbreite - Textbreite / 2
Printer.CurrentX = (Printer.ScaleWidth - _
Printer.TextWidth(strText)) / 2
Printer.CurrentY = Height
Printer.Print strText
End Sub
Private Sub Rechts(Height As Single, strText As String)
If Printer.CurrentY + Printer.TextHeight(strText) >= _
Printer.ScaleHeight - AbstandUnten Then
Call NeueSeite(True)
Height = Printer.CurrentY
End If
'hiermit wird der Text auf der X-Kooradinate zentriert
'Schema: Seitenbreite - Textbreite - AbstandvonRechts
Printer.CurrentX = (Printer.ScaleWidth - _
Printer.TextWidth(strText) - AbstandRechts)
Printer.CurrentY = Height
Printer.Print strText
End Sub
Private Sub Links(Height As Single, strText As String)
If Printer.CurrentY + Printer.TextHeight(strText) >= _
Printer.ScaleHeight - AbstandUnten Then
Call NeueSeite(True)
Height = Printer.CurrentY
End If
'hiermit wird der Text auf der X-Kooradinate zentriert
'Schema: 0 + AbstandvonLinks
Printer.CurrentX = (0 + AbstandLinks)
Printer.CurrentY = Height
Printer.Print strText
End Sub
|