Hi,
es geht um Folgendes unten steht mal ein Beispielcode dieser Druckt eine normale TextBox mit einem Zeilenumbruch aus auf einer bestimmten stelle aufs Papier und wenn er zu lang ist macht er auf der nächsten Seite weiter. Mein Problem ist folgendes das ich gerne 2 Textboxen Drucken will aber nur bei der 2ten (nur 2te TextBox) soll er auf der nächsten Seite weiter machen wenn es erforderlich ist diese 2te Textbox muss aber auch mit einem Zeilenumbruch Gedruckt werden wie die erste.
Kann mir da mal jemand helfen ich steig da überhaupt nicht durch und wie mach ich das noch das er an einer Bestimmten stelle bei der 2ten Seite weitermacht wenn es erforderlich ist da er bei mir dann bis ganz unten druckt und die letzte Zeile nur halb.
Option Strict On
Imports System.Drawing.Printing
Public Class frmMain
Inherits System.Windows.Forms.Form
Private WithEvents PrintDocument1 As New PrintDocument()
Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As _
System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
Static intCurrentChar As Int32
Dim font As New font("Arial", 12)
Dim intPrintAreaHeight, intPrintAreaWidth, marginLeft, marginTop As _
Int32
With PrintDocument1.DefaultPageSettings
intPrintAreaHeight = .PaperSize.Height - .Margins.Top - _
.Margins.Bottom
intPrintAreaWidth = .PaperSize.Width - .Margins.Left - _
.Margins.Right
marginLeft = .Margins.Left
marginTop = .Margins.Top
End With
If PrintDocument1.DefaultPageSettings.Landscape Then
Dim intTemp As Int32
intTemp = intPrintAreaHeight
intPrintAreaHeight = intPrintAreaWidth
intPrintAreaWidth = intTemp
End If
Dim intLineCount As Int32 = CInt(intPrintAreaHeight / font.Height)
Dim rectPrintingArea As New RectangleF(marginLeft, marginTop, _
intPrintAreaWidth, intPrintAreaHeight)
Dim fmt As New StringFormat(StringFormatFlags.LineLimit)
Dim intLinesFilled, intCharsFitted As Int32
e.Graphics.MeasureString(Mid(TextBox1.Text, intCurrentChar + 1), font, _
New SizeF(intPrintAreaWidth, intPrintAreaHeight), fmt, _
intCharsFitted, intLinesFilled)
e.Graphics.DrawString(Mid(TextBox1.Text, intCurrentChar + 1), font, _
Brushes.Black, rectPrintingArea, fmt)
intCurrentChar += intCharsFitted
If intCurrentChar < TextBox1.Text.Length Then
e.HasMorePages = True
Else
e.HasMorePages = False
intCurrentChar = 0
End If
End Sub Ich hoffe man kann mir hier Helfen?
Mit freundlichen Grüßen
Enrico Hahn |