La Web del Programador: Comunidad de Programadores
 
    Pregunta:  65929 - IMPRIMIR PANTALLA
Autor:  daniel sica
Estimados, necesito si me pueden dar una mano para resolver el siguiente tema:

Tengo un formulario que se rellena en pantalla con datos desde varias tablas y necesito imprimir lo que veo en la pantalla.
Hay alguna aplicacion que me imprima la pantalla tal cual la veo , o no tengo mas remedio que generar un reporte con los datos a imprimir.

  Respuesta:  Mario Rodriguez
** encontre un codigo no me acuerdo en donde pero lo he utilizado
el codigo no es mio lo encontre en algun foro hace tiempo

en el form creo un metodo que se llame print_pant con el siguiente codigo
*************************** ********
Lparameters tnHWnd, tcJobName
*
Local lcJobName && Nombre de la tarea de impresion
Local lnRetVal && Valor de retorno de las funciones del API

Declare Integer PrintWindow In DibApi32 ;
INTEGER HWnd, ;
INTEGER fPrintArea, ;
INTEGER fPrintOpt, ;
INTEGER wxScale, ;
INTEGER wyScale, ;
STRING @ szJobName

*!* PW_WINDOW para imprimir la ventana entera
*!* PW_CLIENT para imprimir el area cliente
*!* Como ajustar la imagen
*!* PW_BESTFIT se ajusta al papel pero se mantienen las proporciones
*!* PW_STRETCHTOPAGE se ajusta para cubrir totalmente el papel pero distorsiona las proporciones
*!* PR_SCALE escala el tamaño de impresion

#Define PW_WINDOW 1
#Define PW_CLIENT 2 &&2
#Define PW_BESTFIT 1
#Define PW_STRETCHTOPAGE 2
#Define PW_SCALE 3&&3

lcJobName = tcJobName + Chr(0)
*lnRetVal = PrintWindow( tnHWnd, PW_CLIENT, PW_BESTFIT, 0, 0, @lcJobName)
lnRetVal = PrintWindow( tnHWnd, PW_window, PW_BESTFIT, 0, 0, @lcJobName)
If lnRetVal != 0
If lnRetVal != 6 && 6 = El usuario cancelo la impresión
= Messagebox("Imposible Imprimir la ventana" + CRLF + ;
"PrintWindow API retorno " + Str(lnRetVal), ;
MB_ICONEXCLAMATION + MB_OK, ;
"ERROR")
Endif
Endif

***** para esto hay que poner unos dll en el system32

dibapi32.dll
difxapi.dll

***luego cree un boton con la siguiente instruccion en el click :

Thisform.print_pant(GetFocus(), "Imprimiendo ...")

**** la palabra imprimiendo es el nombre con el que sale mi archivo

**** de hecho yo le pido lo mande a un pdf para tener la pantalla

***** no se si falte algo si te falta algo me avisas y te mando mi form.

saludos
:-)