Ir para o conteúdo
JLDR

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

Mensagens Recomendadas

JLDR    0
JLDR

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 :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
killercode    1
killercode

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
JLDR    0
JLDR

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?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade