Recently I had to deal with the famous problem of non-uniform text scaling (the issue is that doubling the height does not mean necessarily a double width). Of course this is only for TrueType fonts.
A way of solving it is to draw char-by-char and occasionally skip pixels so that the final width of the text rendered equals the initially computed (zoom 1.0 width multiplied by zoom) correct width. Still it may look weird in some cases (the i’s may stick together in some fonts) – so there’s still some research to be done for a correct way to do it (like MS Word).