Можеш попробывать так:
выводиш сначала текст в tmpBd с размером в Х раз большым нужного, потом этот tmpBd перерисовываеш на новом finalBd только в Х раз меньшым размером со сглаживанием, потом tmpBd.dispose() и т.д.
Х - подбирай: 2, 3, 4...
Надеюсь идея понятна, можеш поексперементировать...