Ajuda com matemática - impressão centralizada com g2d.drawString

Olá galera, estou imprimindo em uma bematech MP-4200 TH.
O meu problema é o seguinte:

ao imprimir g2d.drawString(“a”, 175, 15);
o texto sai no canto direito do papel, no limite que eu tenho disponível…

e obviamente ao imprimir g2d.drawString(“a”, 0, 15);
o texto sai no canto esquerdo, no começo do papel =)

se eu imprimir a em 88, 15 por exemplo, o texto “aparentemente” sai no meio do papel…

o meu problema é que, se eu imprimir um texto grande por exemplo, “PARALELEPIPEDO” ele vai do centro até quase o final do papel =/

o que eu precisava? alguma conta, um tamanho dinâmico pra por no lugar do X para que independente do tamanho do texto, ele saia sempre no meio do papel…
lembrando que: g2d.drawString(String, x, y);

já tentei várias formas, tentei pegar o tamanho do texto e somar, dividir, subtrair, mexi com o 87,5 (que é o centro) e nada até agora :’(

confesso que estou meio ruim de conta.,… parece que é tão simples, e tenho certeza que a resposta para isso vai ser um cálculo muito simples! rsrsrsrs

ps…: desculpem… acho que postei no lugar errado =/

Você tem que pegar a largura total, subtrair da largura do texto e depois dividir esse resultado por dois.

Exemplo (estou utilizando “traços” como “medida” pra ficar mais fácil de entender):

-------------------- (largura total = 20 “traços”)
– (largura do texto = 2 “traços”)

(20 - 2) / 2 = 9

--------------------
         --                          (aqui posicionado no traço 9, que é resultado da conta anterior)

se quiser centralizar a altura é a mesma conta, só que fazendo altura total menos altura do texto e dividir o resultado por 2

muito estranho, na teoria está totalmente correto sua conta…

mais na prática não está funcionando =/