Ajuda - Busca - Membros - Calendário
Versão Completa: Imprimir form
Fórum Script Brasil > Programação & Desenvolvimento > .NET
dianaemanuel
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

CODE
‘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.
kuroi
isso aí é visual basic .net, vou mover pra area correta.
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.