O que entra nisso de letras diferentes é que precisa calcular em "tamanho PDF" e não em colunas de texto.
Para a classe é só passar o nome do fonte e tamanho, mas sem o cálculo, não vai sair na coluna correta.
O método que escreve:
METHOD DrawText( nTop, nLeft, xValue, cPicture, nFontSize, cFontName, nAngle, anRGB )
só que precisaria alterar esta parte pra considerar o tamanho PDF e não tamanho do texto:
::nCol := nLeft + Len( cTexto )
De um modo geral, seria usar a mesma conversão usada em outras partes.
Colunas usadas = Tamanho utilizado em pixels / tamanho padrão de uma coluna em pixels
O que vai complicar vai ser a divisão de texto, contendo caracteres diferentes.
De repente a palavra atual cabe, mas a próxima não, e se for a última palavra da linha, lá se foi a formatação.
É pra pensar, porque pode eliminar uso extra de Word pra determinadas coisas...
Já pensando nas possibilidades... rs... por exemplo um array com as palavras e tamanhos, pra poder fazer o ajuste justificado.