Estoy utilizando una impresora laser de 600 dpi. ¿Cómo puedo imprimir una linea de texto centrada horizontalmente en la página? Algo así como el PADC() pero que funcione en pixels y que tenga en cuenta el tamaño del font que uso
DEFINE FONT oFont3 NAME "TIMES NEW ROMAN" OF oPr SIZE 0,-30
oPr:Say( 30, 0, "MI TEXTO EN LETRA GRANDE", oFont3, CLR_BLACK)
Gracias,
Rafael
Imprimir un texto centrado
- Rafael Clemente
- Posts: 365
- Joined: Sat Oct 08, 2005 7:59 pm
- Location: Barcelona, Spain
Re: Imprimir un texto centrado
Hola Rafael.
Hace tiempo yo hice la misma pregunta que amablemente me contesto Marcelo Via Giglio, en la que me explico que depende del ancho del quinto parametro <oPrn>:Say( <nRow>, <nCol>, <cText>, <oFont>, <nWidth>, <nClrText>, <nBkMode>, <nPad> ) , pero como muchas cosas, buscandole y haciendo pruebas di con esto con la fuente "Times New Roman" Size 0.0 ,-8 que es la que yo necesitaba, y el ancho que le di fue de 5000,no se si sean pixels o que, y en el ultimo parametro el de centrar, asi me quedo:
::oPrn:CmSay(9,0,"TEXTO A CENTRAR",::oFont10,5000,,,2 ) // 1
para otra fuente pues hay que buscarle con otro ancho, espero que te sirva de algo.
si alguien me puede ampliar mi poco entendiiento se lo agradecieria.
fco_ozuna@prodigy.net.mx
Hace tiempo yo hice la misma pregunta que amablemente me contesto Marcelo Via Giglio, en la que me explico que depende del ancho del quinto parametro <oPrn>:Say( <nRow>, <nCol>, <cText>, <oFont>, <nWidth>, <nClrText>, <nBkMode>, <nPad> ) , pero como muchas cosas, buscandole y haciendo pruebas di con esto con la fuente "Times New Roman" Size 0.0 ,-8 que es la que yo necesitaba, y el ancho que le di fue de 5000,no se si sean pixels o que, y en el ultimo parametro el de centrar, asi me quedo:
::oPrn:CmSay(9,0,"TEXTO A CENTRAR",::oFont10,5000,,,2 ) // 1
para otra fuente pues hay que buscarle con otro ancho, espero que te sirva de algo.
si alguien me puede ampliar mi poco entendiiento se lo agradecieria.
fco_ozuna@prodigy.net.mx
- Rafael Clemente
- Posts: 365
- Joined: Sat Oct 08, 2005 7:59 pm
- Location: Barcelona, Spain
Gracias, Francisco.
Yo no sabía que Say() admitía un octavo parámetro. Con tu información me ha funcionado perfectamente.
Por si te sirve, yo uso Say(), no cmSay. Say() funciona en pixeles. El quinto parámetro indica la anchura del rectángulo en cuyo interior se centra el texto. En mi caso, uso 4800 (8 pulgadas x 600 dpi = 4800)
No sé si tu 5000 es excesivo. Si cmSay() funciona en cmts, estás centrando tu texto en un rectángulo de 5 metros!!! Pero no estoy seguro; no lo he probado.
Gracias por tu ayuda,
Rafael
Yo no sabía que Say() admitía un octavo parámetro. Con tu información me ha funcionado perfectamente.
Por si te sirve, yo uso Say(), no cmSay. Say() funciona en pixeles. El quinto parámetro indica la anchura del rectángulo en cuyo interior se centra el texto. En mi caso, uso 4800 (8 pulgadas x 600 dpi = 4800)
No sé si tu 5000 es excesivo. Si cmSay() funciona en cmts, estás centrando tu texto en un rectángulo de 5 metros!!! Pero no estoy seguro; no lo he probado.
Gracias por tu ayuda,
Rafael
Re: Imprimir un texto centrado
Gracias Rafael y Rene, que bonito trabajar así, como se aprenden cosas nuevas.
Y si yo tampoco entiendo porque el CmSay en el quinto parámetro no toma en cuenta la conversión a Cm, pero así funciona, yo lo deje en 5000 porque estuve probando +- 500 y con esta información de 600 dpi x 8 pulgadas que da 4800, pues queda mejor centrada, y para no fallarle con el tipo de resolución de la impresora vi este método: <oPrn>:nHorzRes, que nos regresa la resolución horizontal expresada en pixels, que es lo que se necesita: con una resolución de 300 dpi nos da 2400, con 600 dpi nos da 4800, con 1200 dpi nos da 9600, etc.. Todo esto con 8 pulgadas de ancho, y para no tener sorpresas a la hora de la hora, así lo puse y funciona perfectamente.
::oPrn:CmSay(9,0,"TEXTO A CENTRAR",::oFont10,::oPrn:nHorzRes,,,2 )
Gracias por su informacion.
Francisco
Y si yo tampoco entiendo porque el CmSay en el quinto parámetro no toma en cuenta la conversión a Cm, pero así funciona, yo lo deje en 5000 porque estuve probando +- 500 y con esta información de 600 dpi x 8 pulgadas que da 4800, pues queda mejor centrada, y para no fallarle con el tipo de resolución de la impresora vi este método: <oPrn>:nHorzRes, que nos regresa la resolución horizontal expresada en pixels, que es lo que se necesita: con una resolución de 300 dpi nos da 2400, con 600 dpi nos da 4800, con 1200 dpi nos da 9600, etc.. Todo esto con 8 pulgadas de ancho, y para no tener sorpresas a la hora de la hora, así lo puse y funciona perfectamente.
::oPrn:CmSay(9,0,"TEXTO A CENTRAR",::oFont10,::oPrn:nHorzRes,,,2 )
Gracias por su informacion.
Francisco
Gracias Rafael y Rene, que bonito trabajar así, como se aprenden cosas nuevas.
Y si yo tampoco entiendo porque el CmSay en el quinto parámetro no toma en cuenta la conversión a Cm, pero así funciona, yo lo había dejado así en 5000 porque estuve probando +- 500, y con esta información de 600 dpi x 8 pulgadas que da 4800, pues queda mejor centrada, y para no fallarle con el tipo de resolución de la impresora vi este método: <oPrn>: nHorzRes que nos regresa la resolución horizontal expresada en pixels, que es lo que se necesita.
Con una resolución de 300 dpi nos da 2400
600 dpi nos da 4800
1200 dpi nos da 9600, etc..
Todo esto con 8 pulgadas de ancho, y para no tener sorpresas a la hora de la hora, así lo puse y funciona perfectamente para cualquier resolución de la impresora.
::oPrn:CmSay(5,0,"TEXTO EN CUALQUIER TAMAÑO",::oFont10,::oPrn:nHorzRes,,,2 )
Gracias por la información.
Francisco
Y si yo tampoco entiendo porque el CmSay en el quinto parámetro no toma en cuenta la conversión a Cm, pero así funciona, yo lo había dejado así en 5000 porque estuve probando +- 500, y con esta información de 600 dpi x 8 pulgadas que da 4800, pues queda mejor centrada, y para no fallarle con el tipo de resolución de la impresora vi este método: <oPrn>: nHorzRes que nos regresa la resolución horizontal expresada en pixels, que es lo que se necesita.
Con una resolución de 300 dpi nos da 2400
600 dpi nos da 4800
1200 dpi nos da 9600, etc..
Todo esto con 8 pulgadas de ancho, y para no tener sorpresas a la hora de la hora, así lo puse y funciona perfectamente para cualquier resolución de la impresora.
::oPrn:CmSay(5,0,"TEXTO EN CUALQUIER TAMAÑO",::oFont10,::oPrn:nHorzRes,,,2 )
Gracias por la información.
Francisco