Выравнивание по ширине букв с помощью sprintf

Я пытаюсь выровнять текстовый список элементов для электронной почты. В основном проблема заключается в том, что она работает только с шрифтами с фиксированной шириной (моноширинными) – мне нужен сценарий, который каким-то образом может выровнять его по ширине каждой буквы в стандартном шрифте Arialish.

function sprintf_nbsp() { $args = func_get_args(); return str_replace(' ', '&nbsp;', vsprintf(array_shift($args), array_values($args))); } $format = '%-6s%-\'.35.35s...%\'.10s<br>'; $str = sprintf_nbsp($format, '1', 'A list of items - this is the first', '$49.99'); $str .= sprintf_nbsp($format, '100', 'This is something else', '$4.99'); $str .= sprintf_nbsp($format, '5', 'A book', '$499.99'); $str .= sprintf_nbsp($format, '16', 'Testing the function', '$49.99'); echo '<div style="font-family:Courier">'.$str."</div>"; echo '<br><br>'.$str; 

(sprintf_nbsp () может не понадобиться, я просто нашел его на форумах php, я открыт для других решений)