+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Dati visibili su Anteprima Stampa ma non stampa niente

  1. #1
    L'avatar di Maury63
    Maury63 non è in linea Scolaretto
    Luogo
    Torino
    Post
    235

    Dati visibili su Anteprima Stampa ma non stampa niente

    Salve a tutti

    ho un problema che per adesso non riesco a capire come fare per risolverlo, avevo creato questo programmino in vb6 per stampare i Progetti realizzati, dopo averlo modificato per (vb.net) non riesco a stampa i dati

    mi spiego :
    il programma recupera tutti i dati che scelgo per la stampa
    con Anteprima stampa li vedo , solo che quando clicco sul tasto stampa mi stampa una pagina vuota.

    inserisco il programma per maggiore chiarimento.

    grazie anticipatamente a tutti coloro che mi vogliono aiutare
    File allegati File allegati
    Ultima modifica di Maury63; 06-04-2019 17:16 
    Il vero Amico rimane tale Soprattutto al momento del Bisogno

  2. #2
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,253
    Blogs
    5
    In sostanza fai confusione sulla gestione del file di testo da leggere, ovvero nella sua apertura e chiusura.

    Devi fare delle modifiche.

    Queste diventano così

    codice:
        Public Sub New(ByVal nomefile As String)
            FileName = nomefile
            streamToPrint = Nothing
            pd = New PrintDocument
            AddHandler pd.PrintPage, AddressOf Stampa
        End Sub
    
        Public Sub Print()
            Try
                pd.Print()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            Finally
                'streamToPrint.Close()
            End Try
        End Sub
    
        Public Sub PrintPreview()
            Try
                ImpostaStampa()
                PrintPreviewDialog1.Document = pd
                PrintPreviewDialog1.ShowDialog()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub
    e nella

    Private Sub Stampa(ByVal sender As Object, ByVal ev As PrintPageEventArgs)

    dopo la Dim Colore e prima del ciclo scrivi

    codice:
            If streamToPrint Is Nothing Then
                streamToPrint = New StreamReader(FileName)
            End If
    Alla fine della stessa la Else diventa

    codice:
            Else
                ev.HasMorePages = False
    
                streamToPrint.Close()
                streamToPrint = Nothing
            End If
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  3. #3
    L'avatar di Maury63
    Maury63 non è in linea Scolaretto
    Luogo
    Torino
    Post
    235
    Quote Originariamente inviato da AntonioG Visualizza il messaggio
    In sostanza fai confusione sulla gestione del file di testo da leggere, ovvero nella sua apertura e chiusura.

    Devi fare delle modifiche.

    Queste diventano così

    codice:
        Public Sub New(ByVal nomefile As String)
            FileName = nomefile
            streamToPrint = Nothing
            pd = New PrintDocument
            AddHandler pd.PrintPage, AddressOf Stampa
        End Sub
    
        Public Sub Print()
            Try
                pd.Print()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            Finally
                'streamToPrint.Close()
            End Try
        End Sub
    
        Public Sub PrintPreview()
            Try
                ImpostaStampa()
                PrintPreviewDialog1.Document = pd
                PrintPreviewDialog1.ShowDialog()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub
    e nella

    Private Sub Stampa(ByVal sender As Object, ByVal ev As PrintPageEventArgs)

    dopo la Dim Colore e prima del ciclo scrivi

    codice:
            If streamToPrint Is Nothing Then
                streamToPrint = New StreamReader(FileName)
            End If
    Alla fine della stessa la Else diventa

    codice:
            Else
                ev.HasMorePages = False
    
                streamToPrint.Close()
                streamToPrint = Nothing
            End If

    grazie per la risposta

    ho provato ad inserire quello che mi hai inviato ma non funzione forse sbaglio a collocare le varie modifiche!
    io ho modificato così:

    codice:
    Imports System.Xml
    Imports System.IO
    Imports System.Drawing.Printing
    
    '*************   Classe Del Form     **************
    
    Public Class FrmMain
        Dim oPF As ProjectFile
    
        'Pulsante "Seleziona il Progetto da Stampare"
      Private Sub btnOpenFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpenFile.Click
            With dlgOpenFile
                .Title = "Apri File di Progetto"
                .FileName = ""
                .DefaultExt = "vbproj"
                .Filter = "Visual Basic Project Files (*.vbproj)|*.vbproj|All Files (*.*)|*.*"
                .ShowDialog()
                If Not String.IsNullOrEmpty(.FileName) Then
                    Dim si As New FileInfo(.FileName)
                    lblFileName.Text = "Progetto Selezionato: --->   " & si.Name
                    oPF = New ProjectFile(.FileName)
                    oPF.ReadXmlFile()
                    lbFiles.Items.Clear()
                    For Each element As String In oPF.Files
                        lbFiles.Items.Add(element, Not element.Contains(".Designer"))
                    Next
                    btnAnteprimaStampa.Visible = True
                    btnSettaStampante.Visible = True
                    BtnSelezDeselez.Visible = True
                End If
            End With
        End Sub
    
        'Pulsante "Anteprima Stampa"
        Private Sub btnAnteprimaStampa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAnteprimaStampa.Click
            For Each itemChecked As Object In lbFiles.CheckedItems
                If lbFiles.GetItemCheckState(lbFiles.Items.IndexOf(itemChecked)) = CheckState.Checked Then
                    Dim pf As New PrintFile(oPF.Path & "\" & itemChecked.ToString)
                    pf.PrintPreview()
                End If
            Next
    
        End Sub
    
        'Pulsante "BtnSelezDeselez"
        Private Sub BtnSelezDeselez_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSelezDeselez.Click
            Dim myEnumerator As IEnumerator
            Dim y As Integer
            'questo serve per Deselezionare tutte le Checked True
            If BtnSelezDeselez.Text = "Deseleziona Tutto" Then
                myEnumerator = lbFiles.CheckedIndices.GetEnumerator()
                While myEnumerator.MoveNext() <> False
                    y = CInt(myEnumerator.Current)
                    lbFiles.SetItemChecked(y, False)
                End While
                BtnSelezDeselez.Text = "Seleziona Tutto"
                y = Nothing
                myEnumerator = Nothing
                GoTo fine
            End If
    
            'questo serve per Selezionare tutte le Checked
            If BtnSelezDeselez.Text = "Seleziona Tutto" Then
                myEnumerator = lbFiles.CheckedIndices.GetEnumerator()
                Dim i As Integer
                For i = 0 To lbFiles.Items.Count - 1
                    lbFiles.SetItemChecked(i, True)
                Next i
                BtnSelezDeselez.Text = "Deseleziona Tutto"
            End If
    fine:
        End Sub
    
        'Pulsante "Uscita"
        Private Sub btnUscita_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUscita.Click
            Me.Close()
        End Sub
    
        'Pulsante "btnSettaStampante"
        Private Sub btnSettaStampante_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSettaStampante.Click
            PrintPreviewDialog1.Show()
        End Sub
    
    End Class
    
    '*************   Classe Recupera Progetto File     **************
    
    Public Class ProjectFile
        Dim mFileName As String
    
        Public ReadOnly Property FileName() As String
            Get
                Return mFileName
            End Get
        End Property
    
      Dim mPath As String
    
        Public ReadOnly Property Path() As String
            Get
                Return mPath
            End Get
        End Property
    
      Dim mFiles As List(Of String)
    
        Public Property Files() As List(Of String)
            Get
                Return mFiles
            End Get
            Set(ByVal value As List(Of String))
                mFiles = value
            End Set
        End Property
    
        ' Public Sub New(ByVal fileName As String)
        'mFileName = fileName
        ' Dim si As New FileInfo(FileName)
        ' mPath = si.DirectoryName
        ' Me.Files = New List(Of String)
        'End Sub
    
        Public Sub New(ByVal nomefile As String)
            FileName = nomefile
            streamToPrint = Nothing
            pd = New PrintDocument
            AddHandler pd.PrintPage, AddressOf Stampa
        End Sub
    
        Public Sub ReadXmlFile()
            Using rd As XmlReader = XmlReader.Create(Me.FileName)
                Do While Not rd.EOF
                    rd.ReadToFollowing("Compile")
                    If Not IsNothing(rd.Item("Include")) Then
                        Me.Files.Add(rd.Item("Include"))
                    End If
                Loop
            End Using
        End Sub
    End Class
    
    '*************   Classe Anteprima Stampa File     **************
    
    Public Class PrintFile
    
        Private pd As PrintDocument
    
        Friend WithEvents PrintPreviewDialog1 As PrintPreviewDialog
        Private font As New Font("Courier", 10)
        Private streamToPrint As StreamReader
        Dim mFileName As String
    
        Public Property FileName() As String
            Get
                Return mFileName
            End Get
            Set(ByVal value As String)
                mFileName = value
            End Set
        End Property
    
        Public Sub New(ByVal nomefile As String)
            FileName = nomefile
        End Sub
    
        Public Sub Print()
            Try
                pd.Print()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            Finally
                'streamToPrint.Close()
            End Try
        End Sub
    
    
        Public Sub PrintPreview()
            Try
                ImpostaStampa()
                PrintPreviewDialog1.Document = pd
                PrintPreviewDialog1.ShowDialog()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub
    
    
        ' Public Sub PrintPreview()
        'Try
        '  pd = New PrintDocument
        '  AddHandler pd.PrintPage, AddressOf Stampa
        '   streamToPrint = New StreamReader(FileName)
        '   ImpostaStampa()
        '   PrintPreviewDialog1.Document = pd
        '    PrintPreviewDialog1.ShowDialog()
        ' Catch ex As Exception
        '     MessageBox.Show(ex.Message)
        ' Finally
        '    streamToPrint.Close()
        ' End Try
        'End Sub
    
        Private Sub ImpostaStampa()
            Me.PrintPreviewDialog1 = New PrintPreviewDialog
            Me.PrintPreviewDialog1.ClientSize = New System.Drawing.Size(400, 300)
            Me.PrintPreviewDialog1.Location = New System.Drawing.Point(50, 50)
            Me.PrintPreviewDialog1.Name = "PrintPreviewDialog1"
            Me.PrintPreviewDialog1.MinimumSize = New System.Drawing.Size(700, 700)
            Me.PrintPreviewDialog1.UseAntiAlias = True
        End Sub
    
        'Recupera tutto quello che hai selezionato
        Private Sub Stampa(ByVal sender As Object, ByVal ev As PrintPageEventArgs)
            'dichira quante righe da stampare per Pagina
            Dim linesPerPage As Single = ev.MarginBounds.Height / font.GetHeight(ev.Graphics) + 5
            'dichira il Margine Sinistro dove incominciare a Stampare
            Dim leftMargin As Single = ev.MarginBounds.Left - 30
            'dichira il Margine Superiore Inizio Pagina dove incominciare a Stampare
            Dim topMargin As Single = ev.MarginBounds.Top - 30
            Dim linesCount As Integer = 0
            Dim yPos As Single = 0
            Dim line As String = Nothing
            Dim sFormat As StringFormat = StringFormat.GenericTypographic
            Dim charsNumber, fittedLines As Integer
            'dichira l'area di Stampa sul Foglio
            Dim printableArea As SizeF = New SizeF(670.0F, 900.0F)
            Dim sf As New SizeF
            ' usa il Colore nero
            Dim colore As Brush = Brushes.Black
            'luppa finche le righe stampate sono Minori delle righe totali del Progetto
    
            If streamToPrint Is Nothing Then
                streamToPrint = New StreamReader(FileName)
            End If
    
            While linesCount < linesPerPage
                'copia l'intera riga sulla variabile line
                line = streamToPrint.ReadLine()
                'se sulla variabile line non vi e nessun dato esci dal lup
                If line Is Nothing Then
                    Exit While
                End If
                'posizione del Rigo da stampare sulla verticale del Foglio
                yPos = topMargin + linesCount * font.GetHeight(ev.Graphics)
                'Controllo la lunghezza della Frase in Orizzontale
                sf = ev.Graphics.MeasureString(line, font, printableArea, sFormat, charsNumber, fittedLines)
                Dim str1 As String
                Dim marcatore1, marcatore2, marcatore3, marcatore4, marcatore5, marcatore6, marcatore7 As Boolean
                'Dichiarazione del Carattere o frase da ricercare
                Dim valore1 As String = "'"
                Dim valore2 As String = "Public"
                Dim valore3 As String = "Private"
                Dim valore4 As String = "Imports"
                Dim valore5 As String = "End Sub"
                Dim valore6 As String = "End Class"
                Dim valore7 As String = "End Property"
                'passa le informazione della Riga da controllare a str1
                str1 = line
                'elimina gli spazzi vuoti
                str1 = str1.Trim()
                'verifia se la Riga contiene la frase da ricercare
                marcatore1 = str1.StartsWith(valore1)
                marcatore2 = str1.StartsWith(valore2)
                marcatore3 = str1.StartsWith(valore3)
                marcatore4 = str1.StartsWith(valore4)
                marcatore5 = str1.StartsWith(valore5)
                marcatore6 = str1.StartsWith(valore6)
                marcatore7 = str1.StartsWith(valore7)
                colore = Brushes.Black
                If marcatore1 = True Then
                    colore = Brushes.Green
                End If
                If marcatore2 Or marcatore3 Or marcatore4 Or marcatore5 Or marcatore6 Or marcatore7 = True Then
                    colore = Brushes.Blue
                End If
                If fittedLines > 1 Then
                    Dim line2 As String = line
                    Do While fittedLines > 1
                        line2 = line2.Remove(line2.LastIndexOf(" "c))
                        sf = ev.Graphics.MeasureString(line2, font, printableArea, sFormat, charsNumber, fittedLines)
                    Loop
                    ev.Graphics.DrawString(line2 & " _", font, colore, leftMargin, yPos)
                    linesCount += 1
                    yPos = topMargin + linesCount * font.GetHeight(ev.Graphics)
                    line = " " & line.Remove(0, line2.Length)
                End If
                ev.Graphics.DrawString(line, font, colore, leftMargin, yPos)
                linesCount += 1
            End While
            If Not (line Is Nothing) Then
                ev.HasMorePages = True
            Else
                ev.HasMorePages = False
    
                streamToPrint.Close()
                streamToPrint = Nothing
            End If
        End Sub
    End Class
    Ultima modifica di AntonioG; 06-04-2019 21:54  Motivo: Usa i tag code correttamente ...
    Il vero Amico rimane tale Soprattutto al momento del Bisogno

  4. #4
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,253
    Blogs
    5
    Hai sbagliato a modificare la Sub New

    NON è quella che hai modificato tu ma quella della Class PrintFile !

    Non hai visto che era quella prima della Print() ? Fai attenzione ...
    Ultima modifica di AntonioG; 06-04-2019 21:58 
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  5. #5
    L'avatar di Maury63
    Maury63 non è in linea Scolaretto
    Luogo
    Torino
    Post
    235
    Grazie per la puntualizzazione
    così funziona Grazie

    codice:
    Imports System.Xml
    Imports System.IO
    Imports System.Drawing.Printing
    
    '*************   Classe Del Form     **************
    
    Public Class FrmMain
        Dim oPF As ProjectFile
    
        'Pulsante "Seleziona il Progetto da Stampare"
      Private Sub btnOpenFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpenFile.Click
            With dlgOpenFile
                .Title = "Apri File di Progetto"
                .FileName = ""
                .DefaultExt = "vbproj"
                .Filter = "Visual Basic Project Files (*.vbproj)|*.vbproj|All Files (*.*)|*.*"
                .ShowDialog()
                If Not String.IsNullOrEmpty(.FileName) Then
                    Dim si As New FileInfo(.FileName)
                    lblFileName.Text = "Progetto Selezionato: --->   " & si.Name
                    oPF = New ProjectFile(.FileName)
                    oPF.ReadXmlFile()
                    lbFiles.Items.Clear()
                    For Each element As String In oPF.Files
                        lbFiles.Items.Add(element, Not element.Contains(".Designer"))
                    Next
                    btnAnteprimaStampa.Visible = True
                    btnSettaStampante.Visible = True
                    BtnSelezDeselez.Visible = True
                End If
            End With
        End Sub
    
        'Pulsante "Anteprima Stampa"
        Private Sub btnAnteprimaStampa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAnteprimaStampa.Click
            For Each itemChecked As Object In lbFiles.CheckedItems
                If lbFiles.GetItemCheckState(lbFiles.Items.IndexOf(itemChecked)) = CheckState.Checked Then
                    Dim pf As New PrintFile(oPF.Path & "\" & itemChecked.ToString)
                    pf.PrintPreview()
                End If
            Next
    
        End Sub
    
        'Pulsante "BtnSelezDeselez"
        Private Sub BtnSelezDeselez_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSelezDeselez.Click
            Dim myEnumerator As IEnumerator
            Dim y As Integer
            'questo serve per Deselezionare tutte le Checked True
            If BtnSelezDeselez.Text = "Deseleziona Tutto" Then
                myEnumerator = lbFiles.CheckedIndices.GetEnumerator()
                While myEnumerator.MoveNext() <> False
                    y = CInt(myEnumerator.Current)
                    lbFiles.SetItemChecked(y, False)
                End While
                BtnSelezDeselez.Text = "Seleziona Tutto"
                y = Nothing
                myEnumerator = Nothing
                GoTo fine
            End If
    
            'questo serve per Selezionare tutte le Checked
            If BtnSelezDeselez.Text = "Seleziona Tutto" Then
                myEnumerator = lbFiles.CheckedIndices.GetEnumerator()
                Dim i As Integer
                For i = 0 To lbFiles.Items.Count - 1
                    lbFiles.SetItemChecked(i, True)
                Next i
                BtnSelezDeselez.Text = "Deseleziona Tutto"
            End If
    fine:
        End Sub
    
        'Pulsante "Uscita"
        Private Sub btnUscita_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUscita.Click
            Me.Close()
        End Sub
    
        'Pulsante "btnSettaStampante"
        Private Sub btnSettaStampante_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSettaStampante.Click
            PrintPreviewDialog1.Show()
        End Sub
    
    End Class
    
    '*************   Classe Recupera Progetto File     **************
    
    Public Class ProjectFile
        Dim mFileName As String
    
        Public ReadOnly Property FileName() As String
            Get
                Return mFileName
            End Get
        End Property
    
      Dim mPath As String
    
        Public ReadOnly Property Path() As String
            Get
                Return mPath
            End Get
        End Property
    
      Dim mFiles As List(Of String)
    
        Public Property Files() As List(Of String)
            Get
                Return mFiles
            End Get
            Set(ByVal value As List(Of String))
                mFiles = value
            End Set
        End Property
    
      Public Sub New(ByVal fileName As String)
        mFileName = fileName
        Dim si As New FileInfo(fileName)
        mPath = si.DirectoryName
        Me.Files = New List(Of String)
      End Sub
    
      Public Sub ReadXmlFile()
        Using rd As XmlReader = XmlReader.Create(Me.FileName)
          Do While Not rd.EOF
            rd.ReadToFollowing("Compile")
            If Not IsNothing(rd.Item("Include")) Then
              Me.Files.Add(rd.Item("Include"))
            End If
          Loop
        End Using
      End Sub
    End Class
    
    '*************   Classe Anteprima Stampa File     **************
    
    Public Class PrintFile
        Private pd As PrintDocument
    
        Friend WithEvents PrintPreviewDialog1 As PrintPreviewDialog
        Private font As New Font("Courier", 10)
        Private streamToPrint As StreamReader
        Dim mFileName As String
    
        Public Property FileName() As String
            Get
                Return mFileName
            End Get
            Set(ByVal value As String)
                mFileName = value
            End Set
        End Property
    
        Public Sub New(ByVal nomefile As String)
            FileName = nomefile
        End Sub
    
         Public Sub Print()
            Try
                pd.Print()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            Finally
                streamToPrint.Close()
            End Try
        End Sub
    
        Public Sub PrintPreview()
            Try
                pd = New PrintDocument
                AddHandler pd.PrintPage, AddressOf Stampa
                streamToPrint = New StreamReader(FileName)
                ImpostaStampa()
                PrintPreviewDialog1.Document = pd
                PrintPreviewDialog1.ShowDialog()
           Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub
    
        Private Sub ImpostaStampa()
            Me.PrintPreviewDialog1 = New PrintPreviewDialog
            Me.PrintPreviewDialog1.ClientSize = New System.Drawing.Size(400, 300)
            Me.PrintPreviewDialog1.Location = New System.Drawing.Point(50, 50)
            Me.PrintPreviewDialog1.Name = "PrintPreviewDialog1"
            Me.PrintPreviewDialog1.MinimumSize = New System.Drawing.Size(700, 700)
            Me.PrintPreviewDialog1.UseAntiAlias = True
        End Sub
    
        'Recupera tutto quello che hai selezionato
        Private Sub Stampa(ByVal sender As Object, ByVal ev As PrintPageEventArgs)
            'dichira quante righe da stampare per Pagina
            Dim linesPerPage As Single = ev.MarginBounds.Height / font.GetHeight(ev.Graphics) + 5
            'dichira il Margine Sinistro dove incominciare a Stampare
            Dim leftMargin As Single = ev.MarginBounds.Left - 30
            'dichira il Margine Superiore Inizio Pagina dove incominciare a Stampare
            Dim topMargin As Single = ev.MarginBounds.Top - 30
            Dim linesCount As Integer = 0
            Dim yPos As Single = 0
            Dim line As String = Nothing
            Dim sFormat As StringFormat = StringFormat.GenericTypographic
            Dim charsNumber, fittedLines As Integer
            'dichira l'area di Stampa sul Foglio
            Dim printableArea As SizeF = New SizeF(670.0F, 900.0F)
            Dim sf As New SizeF
            ' usa il Colore nero
            Dim colore As Brush = Brushes.Black
    
            '===========================================================================
            If streamToPrint Is Nothing Then
                streamToPrint = New StreamReader(FileName)
            End If
            '===========================================================================
    
            'luppa finche le righe stampate sono Minori delle righe totali del Progetto
            While linesCount < linesPerPage
                'copia l'intera riga sulla variabile line
                line = streamToPrint.ReadLine()
                'se sulla variabile line non vi e nessun dato esci dal lup
                If line Is Nothing Then
                    Exit While
                End If
                'posizione del Rigo da stampare sulla verticale del Foglio
                yPos = topMargin + linesCount * font.GetHeight(ev.Graphics)
                'Controllo la lunghezza della Frase in Orizzontale
                sf = ev.Graphics.MeasureString(line, font, printableArea, sFormat, charsNumber, fittedLines)
                Dim str1 As String
                Dim marcatore1, marcatore2, marcatore3, marcatore4, marcatore5, marcatore6, marcatore7 As Boolean
                'Dichiarazione del Carattere o frase da ricercare
                Dim valore1 As String = "'"
                Dim valore2 As String = "Public"
                Dim valore3 As String = "Private"
                Dim valore4 As String = "Imports"
                Dim valore5 As String = "End Sub"
                Dim valore6 As String = "End Class"
                Dim valore7 As String = "End Property"
                'passa le informazione della Riga da controllare a str1
                str1 = line
                'elimina gli spazzi vuoti
                str1 = str1.Trim()
                'verifia se la Riga contiene la frase da ricercare
                marcatore1 = str1.StartsWith(valore1)
                marcatore2 = str1.StartsWith(valore2)
                marcatore3 = str1.StartsWith(valore3)
                marcatore4 = str1.StartsWith(valore4)
                marcatore5 = str1.StartsWith(valore5)
                marcatore6 = str1.StartsWith(valore6)
                marcatore7 = str1.StartsWith(valore7)
                colore = Brushes.Black
                If marcatore1 = True Then
                    colore = Brushes.Green
                End If
                If marcatore2 Or marcatore3 Or marcatore4 Or marcatore5 Or marcatore6 Or marcatore7 = True Then
                    colore = Brushes.Blue
                End If
                If fittedLines > 1 Then
                    Dim line2 As String = line
                    Do While fittedLines > 1
                        line2 = line2.Remove(line2.LastIndexOf(" "c))
                        sf = ev.Graphics.MeasureString(line2, font, printableArea, sFormat, charsNumber, fittedLines)
                    Loop
                    ev.Graphics.DrawString(line2 & " _", font, colore, leftMargin, yPos)
                    linesCount += 1
                    yPos = topMargin + linesCount * font.GetHeight(ev.Graphics)
                    line = " " & line.Remove(0, line2.Length)
                End If
                ev.Graphics.DrawString(line, font, colore, leftMargin, yPos)
                linesCount += 1
            End While
            If Not (line Is Nothing) Then
                ev.HasMorePages = True
            Else
                ev.HasMorePages = False
                streamToPrint.Close()
                streamToPrint = Nothing
            End If
        End Sub
    End Class
    Ultima modifica di AntonioG; 07-04-2019 01:27 
    Il vero Amico rimane tale Soprattutto al momento del Bisogno

  6. #6
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,253
    Blogs
    5
    Prego. Adesso hai capito dove sbagliavi?

    P.S. usa i tag CODE per il codice non quelli HTML
    Ultima modifica di AntonioG; 07-04-2019 01:27 
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  7. #7
    L'avatar di Maury63
    Maury63 non è in linea Scolaretto
    Luogo
    Torino
    Post
    235
    Quote Originariamente inviato da AntonioG Visualizza il messaggio
    Prego. Adesso hai capito dove sbagliavi?

    P.S. usa i tag CODE per il codice non quelli HTML
    si è ti ringrazio di nuovo
    Il vero Amico rimane tale Soprattutto al momento del Bisogno

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi