Использование RichTextBox также было бы моим подходом, но я выбрал бы только один символ в тексте и запросил соответствующие свойства (нижний индекс, верхний индекс, может быть также полужирный, курсив, подчеркивание и все остальное, что вам нужно).И когда любое из этих свойств изменится, нарисуйте собранный вами текст и продолжайте собирать символы для нового набора свойств до тех пор, пока не изменится любое соответствующее свойство.
Я бы, вероятно, использовал MigraDoc, чтобы мне не приходилось иметь дело сразрывы строк в моем коде, но это зависит от вас.Я бы не стал создавать растровые изображения для текста, поскольку это лишает преимущества формата PDF.