none
PrintDocument: Quebra de pagina lendo txt RRS feed

  • Pergunta

  • Srs,

    Fiz um programa que gera um txt e depois manda para o printdocument assim:

    Public Class Form1
     
        Dim stringToPrint As String
     
        Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
     
     
            PrintDocument1.DocumentName = "c:\ix.txt"
            Dim stream As New System.IO.FileStream("c:\ix.txt", System.IO.FileMode.Open)
            Try
                Dim reader As New System.IO.StreamReader(stream)
                Try
                    stringToPrint = reader.ReadToEnd()
                Finally
                    reader.Dispose()
                End Try
            Finally
                stream.Dispose()
            End Try
     
            PrintPreviewDialog1.Show()
     
        End Sub
     
        Private Sub PrintDocument1_PrintPage(ByVal sender As System.ObjectByVal e As System.Drawing.Printing.PrintPageEventArgsHandles PrintDocument1.PrintPage
     
            Dim charactersOnPage As Integer = 0
            Dim linesPerPage As Integer = 0
     
            e.Graphics.MeasureString(stringToPrint, Me.Font, e.MarginBounds.Size, StringFormat.GenericTypographic, charactersOnPage, linesPerPage)
            e.Graphics.DrawString(stringToPrint, Me.Font, Brushes.Black, e.MarginBounds, StringFormat.GenericTypographic)
            stringToPrint = stringToPrint.Substring(charactersOnPage)
            e.HasMorePages = stringToPrint.Length > 0
     
        End Sub
     
    End Class

    A rotina acima salta as paginas sempre que esta chega no fim da folha, porem eu queria forçar o salto em determinadas partes do txt.

    Uma solucao (meia-boca) foi encher o txt de linhas em branco para paginar corretamente.

    Existe algo mais elegante?

     

    • Movido Eder Costa terça-feira, 28 de junho de 2011 19:22 Processos de relatorios (De:VB.NET e Visual Basic)
    quarta-feira, 22 de junho de 2011 13:17

Todas as Respostas