PRINTFORM
Precisava de imprimir um form centrado na folha. Haverá forma de fazer isto?
...
Imprimir form? Que coisa, acho que não entendi....
Digo...imprimir a janela com printform
Alguém pode ajudar?
Haverá forma de fazer tipo um printform mas centrando o form na folha?!
Teste esta SUB, Não se esqueça de acertar as MARGENS...
Private Sub Imprimir():
DoEvents
keybd_event VK_MENU, 0, 0, 0
DoEvents
keybd_event VK_SNAPSHOT, 1, 0, 0
DoEvents
keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0
DoEvents
HiddenPict.Picture = Clipboard.GetData(vbCFBitmap)
Printer.Orientation = vbPRORLandscape
If NormalOption.Value Then
wid = Printer.ScaleX(HiddenPict.ScaleWidth, ScaleMode, Printer.ScaleMode)
hgt = Printer.ScaleY(HiddenPict.ScaleHeight, ScaleMode, Printer.ScaleMode)
xmin = (Printer.ScaleWidth - wid) / 2
ymin = (Printer.ScaleHeight - hgt) / 2
Else
aspect = HiddenPict.ScaleHeight / _
HiddenPict.ScaleWidth
wid = Printer.ScaleWidth
hgt = Printer.ScaleHeight
If hgt / wid aspect Then
hgt = aspect * wid
xmin = Printer.ScaleLeft
ymin = (Printer.ScaleHeight - hgt) / 2
Else
wid = hgt / aspect
xmin = (Printer.ScaleWidth - wid) / 2
ymin = Printer.ScaleTop
End If
End If
Printer.PaintPicture HiddenPict.Picture, xmin, ymin, wid, hgt
Printer.EndDoc
MousePointer = vbDefault
End Sub
Private Sub Imprimir():
DoEvents
keybd_event VK_MENU, 0, 0, 0
DoEvents
keybd_event VK_SNAPSHOT, 1, 0, 0
DoEvents
keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0
DoEvents
HiddenPict.Picture = Clipboard.GetData(vbCFBitmap)
Printer.Orientation = vbPRORLandscape
If NormalOption.Value Then
wid = Printer.ScaleX(HiddenPict.ScaleWidth, ScaleMode, Printer.ScaleMode)
hgt = Printer.ScaleY(HiddenPict.ScaleHeight, ScaleMode, Printer.ScaleMode)
xmin = (Printer.ScaleWidth - wid) / 2
ymin = (Printer.ScaleHeight - hgt) / 2
Else
aspect = HiddenPict.ScaleHeight / _
HiddenPict.ScaleWidth
wid = Printer.ScaleWidth
hgt = Printer.ScaleHeight
If hgt / wid aspect Then
hgt = aspect * wid
xmin = Printer.ScaleLeft
ymin = (Printer.ScaleHeight - hgt) / 2
Else
wid = hgt / aspect
xmin = (Printer.ScaleWidth - wid) / 2
ymin = Printer.ScaleTop
End If
End If
Printer.PaintPicture HiddenPict.Picture, xmin, ymin, wid, hgt
Printer.EndDoc
MousePointer = vbDefault
End Sub
Obrigado Germanir, mas tá faltando qualquer coisa....pelo que me parece, tá usando APIs para tirar um snapshot do form, mas como as declaro??
Dá erro de variaveis não declaradas!!!
Dá erro de variaveis não declaradas!!!
Barros, eu actualmente uso o printform, mas acontece que dessa forma não é possivel centrar a imagem na folha.
Alguém pode ajudar?
Tópico encerrado , respostas não são mais permitidas