getScreenResolution volta um número (normalmente 96) que é o número de pixels por polegada. Como uma polegada é 2,54 cm você pode fazer as contas, não?
[quote=thingol]Você sabe o número de pixels (que é dado por getHeight ou getWidth), o número de pixels por polegada, e o número de centímetros por polegada.
Faça as contas de divisão e/ou multiplicação, por favor. [/quote]
Vou ensinar uma coisa que se chama “análise dimensional”. Como eu já disse, você tem:
a) O número de pixels (digamos que seja 192);
b) O número de pixels por polegada (96) - ou seja, o número de polegadas por pixel é 1.0/96.0
c) O número de centímetros por polegada (2,54)
Você tem o número de pixels, e precisa saber o número de centímetros.
Primeiro você converte o número de pixels para polegadas:
pixels x (polegadas / pixel) == polegadas
Aí você converte o número de polegadas para centímetros:
polegadas x (centimetros / polegada) == centímetros
No seu caso, vai dar 192 * 1.0 / 96.0 * 2.54 == 5.08 cm.
Não é para bater, já que você pediu a resolução da tela (96dpi), não a do documento impresso (que é normalmente 300 ou 600dpi). Você não pode usar getScreenSize mas alguma outra propriedade da IMPRESSORA, não da TELA.
muito obrigado pelas orientações!! Com elas consegui resolver o problema! Já obtive do cliente a resolução dpi utilizada por ele na impressão dos arquivos que serão mensurados e deixarei este campo como item configurável para que ele possa ajustar de acordo com a variação de dpis utilizada nas impressões.
Muito obrigado pelas orientações!
Um grande abraço!