none
Como fazer quebra de linha numa impressão normal com PrintDocumment? RRS feed

  • Pergunta

  • Uso um código, mas ele não faz quebra de linha e as observações de um richtextbox ultrapassam a margem. Como por um limite e fazer quebra de linha ao atingir esse limite? Numa folha A4

    O Código é este:

    Private Sub Ficha_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles Ficha.PrintPage
            Dim g As Graphics = e.Graphics
            'Muda a fonte a ser impressa, na ordem: ("fonte", Tamanho, System.Drawing.GraphicsUnit.Point).Eu no lugar do tamanho, usei o comando Richtextbox1.text.font.size, para não mudar a formatação.
            Dim FonteMensagem As New Font("Arial", ObservacoesRichTextBox.Font.Size, System.Drawing.GraphicsUnit.Point)
            g.DrawString("ID: " & IDTextBox.Text & vbNewLine & "Nome: " & Nome_completoTextBox.Text & vbNewLine & "Data de nascimento: " & Data_nascimentoMaskedTextBox.Text & vbNewLine & "Telefone: " & TelefoneMaskedTextBox.Text & vbNewLine & "Celular: " & CelularMaskedTextBox.Text & vbNewLine & "RG: " & RGTextBox.Text & vbNewLine & "CPF: " & CPFMaskedTextBox.Text & vbNewLine & vbNewLine & "Endereço completo: " & EnderecoTextBox.Text & vbNewLine & "Cidade: " & CidadeTextBox.Text & vbNewLine & "Bairro: " & BairroTextBox.Text & vbNewLine & "CEP: " & CEPTextBox.Text & vbNewLine & "UF: " & UFMaskedTextBox.Text & vbNewLine & vbNewLine & "Email: " & EmailTextBox.Text & vbNewLine & vbNewLine & "Observações:" & vbNewLine & ObservacoesRichTextBox.Text, FonteMensagem, Brushes.Black, 40, 40)
            End Sub

    domingo, 22 de novembro de 2015 15:27

Respostas

  • Você não deve usar diretamente a String pois antes você deve medi-la.

    Veja : https://msdn.microsoft.com/pt-br/library/system.drawing.graphics.measurestring(v=vs.110).aspx

    Então sugiro você colocar todo esse bloco em uma string primeiro:

    Dim MinhaString As String = "ID: " & IDTextBox.Text & vbNewLine & "Nome: " & Nome_completoTextBox.Text & vbNewLine & "Data de nascimento: " & Data_nascimentoMaskedTextBox.Text & vbNewLine & "Telefone: " & TelefoneMaskedTextBox.Text & vbNewLine & "Celular: " & CelularMaskedTextBox.Text & vbNewLine & "RG: " & RGTextBox.Text & vbNewLine & "CPF: " & CPFMaskedTextBox.Text & vbNewLine & vbNewLine & "Endereço completo: " & EnderecoTextBox.Text & vbNewLine & "Cidade: " & CidadeTextBox.Text & vbNewLine & "Bairro: " & BairroTextBox.Text & vbNewLine & "CEP: " & CEPTextBox.Text & vbNewLine & "UF: " & UFMaskedTextBox.Text & vbNewLine & vbNewLine & "Email: " & EmailTextBox.Text & vbNewLine & vbNewLine & "Observações:" & vbNewLine & ObservacoesRichTextBox.Text,

    e ai rodar a medição da string (método MeasureString) contra a largura da página para saber se vai caber, se não, usar a medida restante da página para fazer a quebra da String.

    • Marcado como Resposta Marcos SJ quarta-feira, 25 de novembro de 2015 13:25
    segunda-feira, 23 de novembro de 2015 10:37

Todas as Respostas

  • Você não deve usar diretamente a String pois antes você deve medi-la.

    Veja : https://msdn.microsoft.com/pt-br/library/system.drawing.graphics.measurestring(v=vs.110).aspx

    Então sugiro você colocar todo esse bloco em uma string primeiro:

    Dim MinhaString As String = "ID: " & IDTextBox.Text & vbNewLine & "Nome: " & Nome_completoTextBox.Text & vbNewLine & "Data de nascimento: " & Data_nascimentoMaskedTextBox.Text & vbNewLine & "Telefone: " & TelefoneMaskedTextBox.Text & vbNewLine & "Celular: " & CelularMaskedTextBox.Text & vbNewLine & "RG: " & RGTextBox.Text & vbNewLine & "CPF: " & CPFMaskedTextBox.Text & vbNewLine & vbNewLine & "Endereço completo: " & EnderecoTextBox.Text & vbNewLine & "Cidade: " & CidadeTextBox.Text & vbNewLine & "Bairro: " & BairroTextBox.Text & vbNewLine & "CEP: " & CEPTextBox.Text & vbNewLine & "UF: " & UFMaskedTextBox.Text & vbNewLine & vbNewLine & "Email: " & EmailTextBox.Text & vbNewLine & vbNewLine & "Observações:" & vbNewLine & ObservacoesRichTextBox.Text,

    e ai rodar a medição da string (método MeasureString) contra a largura da página para saber se vai caber, se não, usar a medida restante da página para fazer a quebra da String.

    • Marcado como Resposta Marcos SJ quarta-feira, 25 de novembro de 2015 13:25
    segunda-feira, 23 de novembro de 2015 10:37
  • Bom dia,

    Por falta de retorno do usuário, esta thread será encerrada.

    Caso seja necessário, por gentileza, abra uma thread nova.

    Atenciosamente

    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quarta-feira, 25 de novembro de 2015 13:25