Page 1 of 1

Que relacion hay entre una oFont de pantalla vs ofont impre

Posted: Thu Oct 05, 2006 4:06 pm
by Vladimir Zorrilla
Hola,

Sabeis q relacion existe entre el tamaño de una oFont en la pantalla y
la impresora ?. Si yo creo p.e.:

DEFINE FONT oFont NAME 'Andale Mono' SIZE 0,12
y
DEFINE FONT oFont NAME 'Andale Mono' SIZE 0,12 OF oPrinter

En el primer caso oFont:nHeight = 12 y en el segudo oFont:nHeight=50.

Supongo q debe ser en relacion a la cantidad de pixeles, pero.... ya
no se donde buscar.

Mi gran problema es como crear una font igual en impresora q en pantalla.


Salutacions.
C.

Parece ser q en el metodo oFont:New() hay :

if oDevice != nil
::nInpHeight = ( oDevice:nLogPixelY() / 72 ) * ::nInpHeight
endif

Con lo q deduzco q en funcion de la resolucion de pantalla corrige el
tamaño, para q siempre sea el mismo independiente de la impresora, pero:

Por q 72 ?

Saludos.
C.

Posted: Thu Oct 05, 2006 7:27 pm
by R.F.
_ no te dicen nada, porque no puedes crear fonts universales para pantalla y para impresora.

La razon es muy simple: la resolucion de la impresora, no todas las impresoras tienen la misma resolucion, por eso los fonts hay que crearlos al momento de acuerdo a la impresora.

El Objeto printer es altamente dependiente del driver de impresora que estes utilizando, cuando tu defines un objeto printer, este va y busca dentro de los datos proporcionados por el driver de la impresora que se le ha asignado al objeto, los factores de conversion que debera aplicar a fuentes, brushes, lineas y todos los elementos graficos, para poder desplegar en los tamaños adecuados, pero esto no lo puedes saber hasta que la impresora ha sido asignada a un objeto printer.

Posted: Sat Oct 07, 2006 12:49 am
by Vladimir Zorrilla
tengo ya la impresora sido asignada a un objeto printer.

mando a impirmir con el font de la pantalla y me sale una letra
gigantesca

entre cuanto lo divido para que me salga una letra proporcional


gracias por la ayuda