Página 1 de 1

Imprimir sin Preview

Publicado: Mié Sep 21, 2005 5:30 pm
por Xevi
¿Cómo hago para imprimir sin visualizar el Preview???
Printer:nOrientation := DMORIENT_PORTRAIT
Printer:StartDoc()
Printer:oCanvas:nMapMode := mmHIMETRICS
Printer:StartPage()
Printer:oCanvas:TextRect( { 100, 100, 500, 150 }, "Texto de Prueba" )
Printer:EndPage()
Printer:EndDoc()
Printer:Run()
Esto lanza el diálogo de Windows imprimir, pero le damos a Aceptar y no imprime.
Sin embargo, si utilizamos el Preview, se visualiza perfectamente el texto a imprimir.
Pulsamos en el botón imprimir del Preview, y SI se imprime el documento.
Printer:lPreviewModal := .T.
Printer:nPreviewShowMode := smMAXIMIZE
Printer:nOrientation := DMORIENT_PORTRAIT
Printer:StartDoc()
Printer:oCanvas:nMapMode := mmHIMETRICS
Printer:StartPage()
Printer:oCanvas:TextRect( { 100, 100, 500, 150 }, "Texto de Prueba" )
Printer:EndPage()
Printer:EndDoc()
Printer:Preview()
¿Que me falta???
¿Que hago mal???
¿Es un error de TPrinter???
Gracias.
Un Saludo,
Xevi.
--

Imprimir sin Preview

Publicado: Mié Sep 21, 2005 7:15 pm
por ignacio
Xevi,
Es posible que tengas Printer:lPreview a verdadero, entonces no se imprime nada, ya que espera a que se llame a Printer:Preview(). Te recomiendo que siempre hagas por si acaso:
Printer:lPreview := .f.
El printer:run() no tiene ningún sentido ahí­. Este método es equivalente a un Printer:StarDoc() configurado por el usuario:
if Printer:Run()
Printer:nOrientation := DMORIENT_PORTRAIT
Printer:oCanvas:nMapMode := mmHIMETRICS
Printer:StartPage()
Printer:oCanvas:TextRect( { 100, 100, 500, 150 }, "Texto de Prueba" )
Printer:EndPage()
Printer:EndDoc()
Endif
Saludos
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:43317c6d$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
¿Cómo hago para imprimir sin visualizar el Preview???
Printer:nOrientation := DMORIENT_PORTRAIT
Printer:StartDoc()
Printer:oCanvas:nMapMode := mmHIMETRICS
Printer:StartPage()
Printer:oCanvas:TextRect( { 100, 100, 500, 150 }, "Texto de Prueba" )
Printer:EndPage()
Printer:EndDoc()
Printer:Run()
Esto lanza el diálogo de Windows imprimir, pero le damos a Aceptar y no imprime.
Sin embargo, si utilizamos el Preview, se visualiza perfectamente el texto a imprimir.
Pulsamos en el botón imprimir del Preview, y SI se imprime el documento.
Printer:lPreviewModal := .T.
Printer:nPreviewShowMode := smMAXIMIZE
Printer:nOrientation := DMORIENT_PORTRAIT
Printer:StartDoc()
Printer:oCanvas:nMapMode := mmHIMETRICS
Printer:StartPage()
Printer:oCanvas:TextRect( { 100, 100, 500, 150 }, "Texto de Prueba" )
Printer:EndPage()
Printer:EndDoc()
Printer:Preview()
¿Que me falta???
¿Que hago mal???
¿Es un error de TPrinter???
Gracias.
Un Saludo,
Xevi.
--

Imprimir sin Preview

Publicado: Mié Sep 21, 2005 8:20 pm
por Xevi
Ignacio
El Printer:Run() lo he puesto porque creí­a que era el evento que "lanzaba" el documento a la impresora.
Hecho en falta Printer:Print(), pues no encuentro como "abortar la impresión, cuando tengo un documento confeccionado.
Por lo que puedo entender, Printer:EndDoc() es el encargado de "lanzarlo" a la impresora seleccionada con Printer:Run().
Claro, primero seleccionamos la impresora, luego contruimos el documento, y se visualiza/imprime.
¿Puedo eliminar este documento antes de imprimirlo??? ¿algun Printer:DelDoc()???
Si no termino el documento con EndDoc(), ¿Queda en cola de Printer y cuando haga StartDoc() saldrá impreso???
Gracias.
Un Saludo,
Xevi.
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje news:43319545$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
Es posible que tengas Printer:lPreview a verdadero, entonces no se imprime nada, ya que espera a que se llame a Printer:Preview(). Te recomiendo que siempre hagas por si acaso:
Printer:lPreview := .f.
El printer:run() no tiene ningún sentido ahí­. Este método es equivalente a un Printer:StarDoc() configurado por el usuario:
if Printer:Run()
Printer:nOrientation := DMORIENT_PORTRAIT
Printer:oCanvas:nMapMode := mmHIMETRICS
Printer:StartPage()
Printer:oCanvas:TextRect( { 100, 100, 500, 150 }, "Texto de Prueba" )
Printer:EndPage()
Printer:EndDoc()
Endif
Saludos
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:43317c6d$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
¿Cómo hago para imprimir sin visualizar el Preview???
Printer:nOrientation := DMORIENT_PORTRAIT
Printer:StartDoc()
Printer:oCanvas:nMapMode := mmHIMETRICS
Printer:StartPage()
Printer:oCanvas:TextRect( { 100, 100, 500, 150 }, "Texto de Prueba" )
Printer:EndPage()
Printer:EndDoc()
Printer:Run()
Esto lanza el diálogo de Windows imprimir, pero le damos a Aceptar y no imprime.
Sin embargo, si utilizamos el Preview, se visualiza perfectamente el texto a imprimir.
Pulsamos en el botón imprimir del Preview, y SI se imprime el documento.
Printer:lPreviewModal := .T.
Printer:nPreviewShowMode := smMAXIMIZE
Printer:nOrientation := DMORIENT_PORTRAIT
Printer:StartDoc()
Printer:oCanvas:nMapMode := mmHIMETRICS
Printer:StartPage()
Printer:oCanvas:TextRect( { 100, 100, 500, 150 }, "Texto de Prueba" )
Printer:EndPage()
Printer:EndDoc()
Printer:Preview()
¿Que me falta???
¿Que hago mal???
¿Es un error de TPrinter???
Gracias.
Un Saludo,
Xevi.
--

Imprimir sin Preview

Publicado: Mié Sep 21, 2005 8:43 pm
por Guest
Xevi,
Compruebo que efectivamente está fatalmente documentado el metodo Run(). Este método permite establecer un comienzo de documento con la impresora y estado que eliga el usuario. Devuelve verdadero si el usuario salió con el botón de Aceptar.
Para abortar un docmento tienes el método AbortDoc().
Si no se llama a EndDoc() el documento saldrá impreso cuando se cree un nuevo documento, o se termine la aplicación.
Un saludo,
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=4331a473@ozsrvnegro.ozlan.local...]4331a473@ozsrvnegro.ozlan.local...[/email]
Ignacio
El Printer:Run() lo he puesto porque creí­a que era el evento que "lanzaba" el documento a la impresora.
Hecho en falta Printer:Print(), pues no encuentro como "abortar la impresión, cuando tengo un documento confeccionado.
Por lo que puedo entender, Printer:EndDoc() es el encargado de "lanzarlo" a la impresora seleccionada con Printer:Run().
Claro, primero seleccionamos la impresora, luego contruimos el documento, y se visualiza/imprime.
¿Puedo eliminar este documento antes de imprimirlo??? ¿algun Printer:DelDoc()???
Si no termino el documento con EndDoc(), ¿Queda en cola de Printer y cuando haga StartDoc() saldrá impreso???
Gracias.
Un Saludo,
Xevi.
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje news:43319545$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
Es posible que tengas Printer:lPreview a verdadero, entonces no se imprime nada, ya que espera a que se llame a Printer:Preview(). Te recomiendo que siempre hagas por si acaso:
Printer:lPreview := .f.
El printer:run() no tiene ningún sentido ahí­. Este método es equivalente a un Printer:StarDoc() configurado por el usuario:
if Printer:Run()
Printer:nOrientation := DMORIENT_PORTRAIT
Printer:oCanvas:nMapMode := mmHIMETRICS
Printer:StartPage()
Printer:oCanvas:TextRect( { 100, 100, 500, 150 }, "Texto de Prueba" )
Printer:EndPage()
Printer:EndDoc()
Endif
Saludos
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:43317c6d$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
¿Cómo hago para imprimir sin visualizar el Preview???
Printer:nOrientation := DMORIENT_PORTRAIT
Printer:StartDoc()
Printer:oCanvas:nMapMode := mmHIMETRICS
Printer:StartPage()
Printer:oCanvas:TextRect( { 100, 100, 500, 150 }, "Texto de Prueba" )
Printer:EndPage()
Printer:EndDoc()
Printer:Run()
Esto lanza el diálogo de Windows imprimir, pero le damos a Aceptar y no imprime.
Sin embargo, si utilizamos el Preview, se visualiza perfectamente el texto a imprimir.
Pulsamos en el botón imprimir del Preview, y SI se imprime el documento.
Printer:lPreviewModal := .T.
Printer:nPreviewShowMode := smMAXIMIZE
Printer:nOrientation := DMORIENT_PORTRAIT
Printer:StartDoc()
Printer:oCanvas:nMapMode := mmHIMETRICS
Printer:StartPage()
Printer:oCanvas:TextRect( { 100, 100, 500, 150 }, "Texto de Prueba" )
Printer:EndPage()
Printer:EndDoc()
Printer:Preview()
¿Que me falta???
¿Que hago mal???
¿Es un error de TPrinter???
Gracias.
Un Saludo,
Xevi.
--