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.
Pergunta
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
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 kuroiAdicionar 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.