Announcement

Collapse
No announcement yet.

Textbox drucken

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Textbox drucken

    Hallo Ihr,

    ich habe in meinem Programm eine Listview. Die Werte dieser Listview schreibe ich in eine Textdatei. Danach würde ich die Textdatei gerne ausdrucken. Kann mir dazu jemand Tipps geben oder hat jemand eine Lösung?
    Die Textdatei liegt im Ordner bin/debug.

    LG und Danke schonmal

    Rebecca

  • #2
    Hallo Rebecca,

    bei meiner Lösung Formular/Control drucken oder als Bitmap speichern kann nicht nur ein Formular, sondern jedes beliebige Control gedruckt werden.

    Ich muss die Download-Datei doch einmal um eine fertige DLL erweitern, damit auch VB-Nutzer diese Lösung direkt nutzen können.

    Gruß Jürgen

    Comment


    • #3
      Hallo Jürgen,

      leider ist diese Seite nur für c und C# geschrieben,
      hilft mir leider nicht weiter.

      Hat noch jemand eine Idee?

      Grüße Rebecca

      Comment


      • #4
        Doch, C# gilt genauso für VB.NET. Wenn du dich nicht durch meinen Code durchwühlen willst, dann schau dir einfach Control.DrawToBitmap an; meine Lösung ist nichts anderes, als dies für alle Controls und alle Varianten zusammenzupacken.

        Jürgen

        PS. Die Klassen des NET Framework gelten für alle NET-Sprachen: C#, VB.NET, F#, Boo, Delphi.Prism (vormals Oxygene, vormals Chrome). Nur deshalb kann ich auch in diesem Unterforum helfen; alle Klassen, Eigenschaften, Methoden usw., die ich mit C# bearbeite, gelten ganz identisch auch für VB.NET; nur die Schreibweisen der Sprachen unterscheiden sich.

        Comment


        • #5
          Dankeschön, ich setzte mich gleich mal ran.

          Rebecca

          Comment


          • #6
            So habe nun eine ausführliche Lösung für mein Problem, falls jemand es braucht

            [highlight=vbnet]
            'Vorbereiten des Druckens beginnen...................................

            Private printFont As Font
            Private streamToPrint As StreamReader
            Private Shared filePath As String

            ' The PrintPage event is raised for each page to be printed.
            Private Sub pd_PrintPage(ByVal sender As Object, ByVal ev As PrintPageEventArgs)
            Dim linesPerPage As Single = 0
            Dim yPos As Single = 0
            Dim count As Integer = 0
            Dim leftMargin As Single = ev.MarginBounds.Left
            Dim topMargin As Single = ev.MarginBounds.Top
            Dim line As String = Nothing

            ' Calculate the number of lines per page.
            linesPerPage = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics)

            ' Iterate over the file, printing each line.
            While count < linesPerPage
            line = streamToPrint.ReadLine()
            If line Is Nothing Then
            Exit While
            End If
            yPos = topMargin + count * printFont.GetHeight(ev.Graphics)
            ev.Graphics.DrawString(line, printFont, Brushes.Black, leftMargin, _
            yPos, New StringFormat())
            count += 1
            End While

            ' If more lines exist, print another page.
            If (line IsNot Nothing) Then
            ev.HasMorePages = True
            Else
            ev.HasMorePages = False
            End If
            End Sub

            ' Print the file.
            Public Sub Printing()
            Try
            streamToPrint = New StreamReader(Application.StartupPath & "/KritischesMHD.txt")
            Try
            printFont = New Font("Arial", 10)
            Dim pd As New PrintDocument()
            AddHandler pd.PrintPage, AddressOf pd_PrintPage
            ' Print the document.
            pd.Print()
            Finally
            streamToPrint.Close()
            End Try
            Catch ex As Exception
            MessageBox.Show(ex.Message)
            End Try
            End Sub 'Printing

            ' This is the main entry point for the application.
            Public Shared Sub Main()
            Dim args() As String = System.Environment.GetCommandLineArgs()
            Dim sampleName As String = args(0)
            If args.Length <> 1 Then
            Console.WriteLine("Usage: " & sampleName & " <file path>")
            Return
            End If
            filePath = args(0)
            End Sub
            'Vorbereiten des Druckens Ende............................
            [/highlight]

            Grüße Rebecca
            Zuletzt editiert von gfoidl; 15.05.2009, 11:43. Reason: Code-Formatierung!

            Comment

            Working...
            X