In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Imprimir imagen

Foro público de Xailer en español
Responder
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Imprimir imagen

Mensaje por Xevi »

En algunos equipos me ocurre que al previsualizar una impresión de una
imagen, me muestra la página en blanco
METHOD Button1Click( oSender ) CLASS TForm1
Printer:lPreview := .T.
Printer:nPreviewShowMode := smMAXIMIZE
Printer:nPrintQuality := DMRES_HIGH
Printer:cJobTitle := "FOTO"
Printer:StartDoc()
Printer:oCanvas:nMapMode := mmPIXELS
MSGINFO( FILE( "C:FOTO1.BMP" ) ) //.t. el archivo existe
Printer:StartPage()
Printer:oCanvas:DrawPicture( { 1000, 250, ::nWidth*4+1000,
::nHeight*4+250 }, TPicture():Load( "C:FOTO1.BMP" ) )
Printer:EndPage()
Printer:EndDoc()
Printer:Preview()
RETURN Nil
¿Algo hago mal???
Gracias.
Un Saludo,
Xevi.
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Imprimir imagen

Mensaje por Xevi »

El problema está en que estoy utilizando TCaptureBitmap para crear la
imagen...
WITH OBJECT TCaptureBitmap():New()
:cFilename := "C:foto.bmp"
:Capture( Self )
:Save()
:Destroy()
END
Por lo visto, en algunos equipos, el archivo no debe ser "compatible".
Asimismo, si abro un archivo creado con TCaptureBitmap en un equipo desde el
explorador de windows, por defecto lo intenta abrir con...
"Visor de imágenes y fax de Windows"... no lo visualiza y me informa "error
en el Dibujo"
si lo intento abrir con...
"Microsoft Picture Manager"... no lo visualiza...
si lo abro con el Paint lo abre correctamente.
Esto puede suceder en algun u otro equipo... por lo que no se que puede
suceder.
Un Saludo,
Xevi.
"Xevi" <xevicomas@gmail.com> escribió en el mensaje
news:4ad05aaf$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> En algunos equipos me ocurre que al previsualizar una impresión de una
> imagen, me muestra la página en blanco
>
> METHOD Button1Click( oSender ) CLASS TForm1
> Printer:lPreview := .T.
> Printer:nPreviewShowMode := smMAXIMIZE
> Printer:nPrintQuality := DMRES_HIGH
> Printer:cJobTitle := "FOTO"
> Printer:StartDoc()
> Printer:oCanvas:nMapMode := mmPIXELS
> MSGINFO( FILE( "C:FOTO1.BMP" ) ) //.t. el archivo existe
> Printer:StartPage()
> Printer:oCanvas:DrawPicture( { 1000, 250, ::nWidth*4+1000,
> ::nHeight*4+250 }, TPicture():Load( "C:FOTO1.BMP" ) )
> Printer:EndPage()
> Printer:EndDoc()
> Printer:Preview()
> RETURN Nil
>
> ¿Algo hago mal???
>
> Gracias.
>
>
> Un Saludo,
> Xevi.
>
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

Imprimir imagen

Mensaje por jlalin »

Xevi,
haz una prueba con el método HardCopy para ver si también falla:
WITH OBJECT TCaptureBitmap():New()
:cFilename := "C:foto.bmp"
:Capture( Self )
:HardCopy( .T )
:Save()
:Destroy()
END
Saludos,
José Lalí­n
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Imprimir imagen

Mensaje por Xevi »

José,
He sacado :Save() porque después de mostrar el preview lanza un GPF, y se ha
quedado así...
WITH OBJECT TCaptureBitmap():New()
:cFilename := "C:foto.bmp"
:Capture( Self )
:HardCopy( .T. )
* :Save()
:Destroy()
END
1.- El fichero "C:foto.bmp" no lo crea.
2.- Muestra un preview con un cuadrado pequeñiiiiiiiiiismo en el borde
superior izquierdo.
3.- El resultado final es el mismo en todos los equipos que he probado, no
como utilizando :Save() que grabava el fichero y en unos equipos se
visualizaba correctamente y en otros no.
Gracias.
Un Saludo,
Xevi.
"José Lalín" <dezac_quitaesto_@corevia.com> escribió en el mensaje
news:[email=4ad09fef@svctag-j7w3v3j....]4ad09fef@svctag-j7w3v3j....[/email]
Xevi,
haz una prueba con el método HardCopy para ver si también falla:
WITH OBJECT TCaptureBitmap():New()
:cFilename := "C:foto.bmp"
:Capture( Self )
:HardCopy( .T )
:Save()
:Destroy()
END
Saludos,
José Lalín
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Imprimir imagen

Mensaje por Xevi »

José,
¿Has podido mirarte algo más???
Un Saludo,
Xevi.
"Xevi" <xevicomas@gmail.com> escribió en el mensaje
news:[email=4ad0d60e@svctag-j7w3v3j....]4ad0d60e@svctag-j7w3v3j....[/email]
> José,
>
> He sacado :Save() porque después de mostrar el preview lanza un GPF, y se
> ha quedado así...
>
> WITH OBJECT TCaptureBitmap():New()
> :cFilename := "C:foto.bmp"
> :Capture( Self )
> :HardCopy( .T. )
> * :Save()
> :Destroy()
> END
>
> 1.- El fichero "C:foto.bmp" no lo crea.
> 2.- Muestra un preview con un cuadrado pequeñiiiiiiiiiismo en el borde
> superior izquierdo.
> 3.- El resultado final es el mismo en todos los equipos que he probado, no
> como utilizando :Save() que grabava el fichero y en unos equipos se
> visualizaba correctamente y en otros no.
>
> Gracias.
>
> Un Saludo,
> Xevi.
>
>
> "José Lalín" <dezac_quitaesto_@corevia.com> escribió en el mensaje
> news:[email=4ad09fef@svctag-j7w3v3j....]4ad09fef@svctag-j7w3v3j....[/email]
>
> Xevi,
>
> haz una prueba con el método HardCopy para ver si también falla:
>
> WITH OBJECT TCaptureBitmap():New()
> :cFilename := "C:foto.bmp"
> :Capture( Self )
> :HardCopy( .T )
> :Save()
> :Destroy()
> END
>
> Saludos,
> José Lalín
>
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Imprimir imagen

Mensaje por Xevi »

Bien, siguiendo con el tema de imprimir imágenes...
El error está en el guardado del fichero a imprimir.
hBitmap := XA_CaptureBitmap( ::Handle, 0, 0, ::nHeight , ::nWidth )
oBitmap := TBitmap():CreateFromHandle( hBitmap )
oBitmap:Save( "C:FOTO.BMP" )
Bien, pues si abro el fichero "C:FOTO.BMP" con el aplicativo "Paint", lo
abre correctamente, PERO...
si lo intento abrir con "Visor de imágenes y fax de Windows", no lo muestra
y nos informa de "error en el dibujo"
si lo intento abrir con "Microsoft Picture Manager", no lo visualiza
correctamente, muestra el área, pero no su contenido.
Esto, como he dicho en ateriores mensajes, ocurre con algunos equipos, que
no se porqué le da por guardarse el bitmap de esta manera.
Adjunto link para el BMP para que veais como se ha "guardado" en uno de
estos equipos
y para que quien pueda averiguar porque se guarda en ese formato erróneo. Lo
podeis intentar abrir con cualquier otro equipo y vereis el resultado al
abrir con las distintas aplicaciones comentadas.
ftp://UserXailerFTP@xevicomas.dyndns.or ... r/FOTO.zip
José Lalín,
la lib BitmapCapture tiene el mismo problema, como te he comentado en
mensajes anteriores, por lo que creo que el error debe ser el mismo, si
estás utilizando internamente la función XA_CaptureBitmap.
Gracias por vuestro tiempo.
Un Saludo,
Xevi.
"Xevi" <xevicomas@gmail.com> escribió en el mensaje
news:4ad05aaf$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> En algunos equipos me ocurre que al previsualizar una impresión de una
> imagen, me muestra la página en blanco
>
> METHOD Button1Click( oSender ) CLASS TForm1
> Printer:lPreview := .T.
> Printer:nPreviewShowMode := smMAXIMIZE
> Printer:nPrintQuality := DMRES_HIGH
> Printer:cJobTitle := "FOTO"
> Printer:StartDoc()
> Printer:oCanvas:nMapMode := mmPIXELS
> MSGINFO( FILE( "C:FOTO1.BMP" ) ) //.t. el archivo existe
> Printer:StartPage()
> Printer:oCanvas:DrawPicture( { 1000, 250, ::nWidth*4+1000,
> ::nHeight*4+250 }, TPicture():Load( "C:FOTO1.BMP" ) )
> Printer:EndPage()
> Printer:EndDoc()
> Printer:Preview()
> RETURN Nil
>
> ¿Algo hago mal???
>
> Gracias.
>
>
> Un Saludo,
> Xevi.
>
>
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

Imprimir imagen

Mensaje por jlalin »

Xevi,
disculpa que haya tardado tanto en responder.
> 3.- El resultado final es el mismo en todos los equipos que he probado,no
> como utilizando :Save() que grabava el fichero y en unos equipos se
> visualizaba correctamente y en otros no.
Con saber que funciona me vale. Te paso el código de HardCopy (es de
Bingen) para que modifiques lo que quieras.
CLASS TCaptureBMP FROM TCaptureBitmap
PUBLIC:
METHOD HardCopy()
ENDCLAS
METHOD Hardcopy( lPreview, cTitle ) CLASS TCaptureBmp
LOCAL lOk := .F.
LOCAL oBitMap
IF ! Empty( ::Handle )
oBitmap := TBitmap():CreateFromHandle( ::Handle )
DEFAULT lPreview TO .T., ;
cTitle TO "Impresión de pantalla"
Application:lBusy := .T.
Printer:lPreview := lPreview
Printer:nPreviewShowMode := smMAXIMIZE
Printer:nPrintQuality := DMRES_HIGH
Printer:cJobTitle := cTitle
Printer:nOrientation := DMORIENT_LANDSCAPE
Printer:StartDoc()
Printer:oCanvas:nMapMode := mmPIXELS
Printer:StartPage()
Printer:oCanvas:DrawPicture( { 100, 100, Printer:PaperRes()[1],
Printer:PaperRes()[2] }, oBitmap )
Printer:EndPage()
Printer:EndDoc()
Application:lBusy := .F.
IF lPreview
Printer:Preview()
ENDIF
oBitmap:Destroy()
lOk := .T.
ENDIF
RETURN lOk
En tu aplicación, cambia TCaptureBitmap por TCaptureBMP y ya lo tienes andando.
Saludos,
José Lalí­n
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

Imprimir imagen

Mensaje por jlalin »

Xevi,
> la lib BitmapCapture tiene el mismo problema, como te he comentado en
> mensajes anteriores, por lo que creo que el error debe ser el mismo, si
> estás utilizando internamente la función XA_CaptureBitmap.
Saludos,
José Lalí­n
Responder