Página 1 de 1

Imprimir imagen

Publicado: Sab Oct 10, 2009 11:58 am
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.

Imprimir imagen

Publicado: Sab Oct 10, 2009 12:45 pm
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.
>

Imprimir imagen

Publicado: Sab Oct 10, 2009 4:50 pm
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

Imprimir imagen

Publicado: Sab Oct 10, 2009 8:44 pm
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

Imprimir imagen

Publicado: Mié Oct 14, 2009 7:45 pm
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
>

Imprimir imagen

Publicado: Vie Oct 16, 2009 9:37 am
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.
>
>

Imprimir imagen

Publicado: Lun Oct 19, 2009 8:46 pm
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

Imprimir imagen

Publicado: Lun Oct 19, 2009 8:50 pm
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