Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Printing Listview

Îåêßíçóå áðü ôï ìÝëïò lakis. Τελευταία δημοσίευση από το μέλος SIN στις 31-01-2006, 16:42. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  23-01-2006, 11:50 8871

    Stick out tongue [:P] Printing Listview

    Καλημέρα,

    Θα ήθελα να βρώ ή να φτιάξω μια κλάση ή μια ρουτίνα που να τυπώνει τα περιεχόμενα ενος Listview. Δηλαδή, να υπολίζει αντίστοιχα το μήκος της κάθε στήλης, και αναλογίκα να μου τα τυπώνει στο χαρτί. Επείσης να μου κόβει το περιεχόμενο το κελλιών ώστε να χωράει στο υπολογισμένο κελί για να βγεί σώστα η εκτύπωση. Δεν έχω βρεί κάτι έτοιμο, αλλά σε vb 6 μου είχαι λύση τα χέρια μια αντίστοιχη ρουτίνα. Αν κάποιος γνωρίζει κάτι .... Η αλλίως πρότασεις και ιδέες για να το φτιάξω μόνος μου. ..

    Ευχαριστώ!

     

  •  26-01-2006, 18:21 8975 σε απάντηση της 8871

    Απ: Printing Listview

    Imports System
    Imports System.Drawing
    Imports System.Drawing.Printing
    Imports System.IO

    Public Class PrintDoc

    Private printFont As Font
    Private streamToPrint As StreamReader

    Public Sub PrintFile(ByVal strFileToPrint As String)

    Try
    streamToPrint = New StreamReader(strFileToPrint)
    Try
    printFont = New Font("Lucida Console", 9)
    Dim pd As PrintDocument = New PrintDocument()

    AddHandler pd.PrintPage, New System.Drawing.Printing.PrintPageEventHandler(AddressOf Me.pd_PrintPage)
    pd.Print()
    Finally
    streamToPrint.Close()
    End Try

    Catch ex As Exception
    MessageBox.Show("An error occurred printing the file - " + ex.Message)
    End Try

    End Sub

    Private Sub pd_PrintPage(ByVal sender As Object, ByVal ev As System.Drawing.Printing.PrintPageEventArgs)

    Dim lpp As Single = 0
    Dim yPos As Single = 0
    Dim count As Integer = 0
    Dim leftMargin As Single = 30
    Dim topMargin As Single = 60
    Dim line As String

    lpp = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics)

    line = streamToPrint.ReadLine()
    While (count < lpp And line <> Nothing)

    yPos = topMargin + (count * printFont.GetHeight(ev.Graphics))

    ev.Graphics.DrawString(line, printFont, Brushes.Black, leftMargin, yPos, New StringFormat())

    count = count + 1

    If (count < lpp) Then
    line = streamToPrint.ReadLine()
    End If

    End While

    If (line <> Nothing) Then
    ev.HasMorePages = True
    Else
    ev.HasMorePages = False
    End If

    End Sub

    End Class


    Things go better with rock...
  •  30-01-2006, 12:09 9019 σε απάντηση της 8871

    Απ: Printing Listview

    Ευχαριστώ θα το δοκιμάσω και θα ενημερώσω....
  •  30-01-2006, 12:23 9020 σε απάντηση της 9019

    Απ: Printing Listview

    Μάλλον είναι ιδέα για να λυθεί γιατί δεν έχει σχέση με ListView... Μάλλον δεν υπάρχει κάτι έτοιμο ...
  •  31-01-2006, 16:42 9085 σε απάντηση της 8871

    Απ: Printing Listview

    Δημιούργησε μία καινούργια κλάση και επικόλλησε τον κώδικα που σου έστειλα στην αρχή μετά χρησιμοποιώντας αυτήν την κλάση και των κώδικα που σου έγγραφα, λογικά θα μπορείς να εκτυπώνεις ListViews εγώ τουλάχιστον μπόρεσα…

    Dim objPrint As New PrintDoc

    FileOpen(1, "TEMPFILE.TXT", OpenMode.Output)

    for n = 0 to (myListView.items.count - 1)
    WriteLine(1, myListview.items(n))
    next

    FileClose(1)

    objPrint.PrintFile("TEMPFILE.TXT")


    Things go better with rock...
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems