*Disclosure: I wrote the relevant docx4j code *
Есть две части.
Первый - Flying Saucer/XHTML Renderer.
Второй - это код в docx4j, который преобразует то, что он получает от Flying Saucer, к WordML.
Как вы обнаружили, есть некоторые вещи, которые docx4j еще не конвертирует (одним из них является шрифт). Не потому, что они особенно тяжелы, а только потому, что наши приоритеты были в другом месте. Вы можете добавлять все, что вам нужно, и вносить исправления.
Для простых вещей, как вы упомянули, отправной точкой является метод addRunProperties в строке 1327 XHTMLImporter. Там вы можете увидеть объекты CSSValue, предоставленные Flying Saucer. Я предполагаю, что вы нашли исходный код docx4j на GitHub.