Ir para conteúdo
Fórum Script Brasil
  • 0

Imprimir form


dianaemanuel

Pergunta

Boa tarde,

Eu sou aspirante em vb, e estou a trabalhar com o vb 2010 beta2.

Eu tenho uma dúvida relativamente á impressão de forms. Estou a desenvolver uma aplicação sobre contabilidade, e quero imprimir um form que contém um balanço, eu criei um botão imprimir e quando eu clico no botão ele imprime-me o form mas só imprimo aquilo que eu visualizo, e o form não pode ser todo visualizado no ecrã do pc, a minha dúvida é como faço para que eu consiga imprimir o form todo numa folha A4 mesmo aquilo que não está visivel.

Nota: Se eu colocar o programa a correr num monitor maior já é possivel ver o form todo como também imprimi-lo todo, mas no ecrã que tou a trabalhar não.

Vou colocar o código que estou a utilizar para imprimir o form:

Vou colocar aqui o código que estou a usar para a impressão

‘Variáveis 

Private Declare Function BitBlt Lib "gdi32.dll" Alias "BitBlt" (ByVal _

        hdcDest As IntPtr, ByVal nXDest As Integer, ByVal nYDest As _

        Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal _

        hdcSrc As IntPtr, ByVal nXSrc As Integer, ByVal nYSrc As Integer, _

        ByVal dwRop As System.Int32) As Long


Dim memoryImage As Bitmap


‘Código Botão Imprimir

Private Sub btnImprimir_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnImprimir.Click

        btnImprimir.Visible = False

        btnsair.Visible = False


        Dim result As DialogResult

        PrintDialogBalanço.ShowDialog()


        If result = Windows.Forms.DialogResult.OK Then

            PrintDocumentBalanço.Print()

        End If


        PrintDocumentBalanço.DefaultPageSettings.Landscape = True


        CaptureScreen()

        PrintDocumentBalanço.DocumentName = "Balanço"

        PrintDocumentBalanço.Print()


        btnImprimir.Visible = True

        btnsair.Visible = True


End Sub



‘Código do PrintDocumento

Private Sub PrintDocumentBalanço_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocumentBalanço.PrintPage


e.Graphics.DrawImage(memoryImage, New Rectangle(0, 0, 900, 800), New Rectangle(0, 0, 1700, 1070), Drawing.GraphicsUnit.Pixel)


End Sub



‘Código Capturar Form

Private Sub CaptureScreen()


        Dim mygraphics As Graphics = Me.CreateGraphics()

        memoryImage = New Bitmap(Me.Width, Me.Height, mygraphics)


        Dim memoryGraphics As Graphics = Graphics.FromImage(memoryImage)


        Dim dc1 As IntPtr = mygraphics.GetHdc

        Dim dc2 As IntPtr = memoryGraphics.GetHdc


        BitBlt(dc2, 0, 0, Me.ClientRectangle.Width, Me.ClientRectangle.Height, dc1, 0, 0, 13369376)

        mygraphics.ReleaseHdc(dc1)

        memoryGraphics.ReleaseHdc(dc2)



End Sub

Eu estou a utilizar o printdocument, o printdialog e o printform, mas o printform eu não estou a utilizá-lo até ao momento.

Eu queria mesmo muito conseguir fazer isto.

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...