Jump to content

[vb 2500 express] PrintDocument - mais do que uma página para imprimir


Recommended Posts

Posted

Boas.

Alguém me sabe dizer como faço para adicionar mais do que uma página para imprimir?

O que eu queria mesmo era algo do género:

- Na primeira página imprimir o texto "Página 1"

- Na segunda página imprimir o texto "Página 2"

e depois num PrintPreviewDialog poder circular entre as páginas.

Peço ajuda a quem souber... Cumps 🙂

<p style="text-align: center">Visita o site em <a class="bbc_url" href="http://www.sys4soft.com" rel="nofollow external" title="Link Externo">www.sys4soft.com</a> e subscreve o canal do YouTube.</p>

<p style="text-align: center"><span style="font-size: 12px;">"Mais importante que saber muito é saber aplicar o pouco que se sabe."</span></p>

Posted

no metodo printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPAgeEventArgs e)

tens de definir isto e.HasMorePages = true or false

atenção... aconselho-te a trabalhares com contadores comuns a classe para não perderes o fio a meada porq quando metes isso ele limita-se a imprir ate e.HasMorePAges = false.

Posted

Cumps

Bem, eu sabia que tinha que meter o HasMorePages pelo meio, até já estive a ver exemplos disso, mas ainda não consegui perceber a dinâmica da rotina.

O que eu queria era, por exemplo, colocar uma frase na página 1 e outra frase na página 2. Para experimentar o sistema escrevi o seguinte código em que Documento1 é um objecto PrintDocument e Prever é um PrintPreviewDialog:

Public Class Form1
    Dim a As Integer

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        a = 1
        Prever.Document = Documento1
        Prever.Show()
    End Sub

    Private Sub Documento1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles Documento1.PrintPage
        Dim f As New Font("Verdana", 20)
        If a = 1 Then
            e.Graphics.DrawString("Texto página 1", f, Brushes.Black, 100, 100)
            a = a + 1
            e.HasMorePages = True
        End If
        If a = 2 Then
            e.Graphics.DrawString("Texto página 2", f, Brushes.Black, 100, 100)
            e.HasMorePages = False
            Exit Sub
        End If

    End Sub
End Class

O resultado disto é que o PrintPreviewDialog mostra-me apenas uma página e as duas frases escritas uma por cima da outra literalmente.

O que tenho de errado?

<p style="text-align: center">Visita o site em <a class="bbc_url" href="http://www.sys4soft.com" rel="nofollow external" title="Link Externo">www.sys4soft.com</a> e subscreve o canal do YouTube.</p>

<p style="text-align: center"><span style="font-size: 12px;">"Mais importante que saber muito é saber aplicar o pouco que se sabe."</span></p>

Posted

Ups! Já descobri!!! Faltava fazer um Exit Sub após e.HasMorePages=True...

Obrigado na mesma.

Cumps 🙂

<p style="text-align: center">Visita o site em <a class="bbc_url" href="http://www.sys4soft.com" rel="nofollow external" title="Link Externo">www.sys4soft.com</a> e subscreve o canal do YouTube.</p>

<p style="text-align: center"><span style="font-size: 12px;">"Mais importante que saber muito é saber aplicar o pouco que se sabe."</span></p>

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.