Приветствие,
Ваша программа великолепна и работает нормально.
Проблема в том, что кодировка символов передается на принтер.Где-то в сети от вашей программы до принтера кодировка UTF-8 (java по умолчанию) преобразуется в другую кодировку.
Проверьте кодировку принтера по умолчанию, возможно, ее можно изменить.Если не удается изменить кодировку принтера по умолчанию, измените кодировку Java соответствующим образом.
Также, если у вас есть прокси / фильтр / брандмауэр в сети, это также может изменить кодировку.
Обновление
Изменить кодировку принтера по умолчанию с настройками принтера по умолчанию операционной системы.
Изменить кодировку Java, ответили здесь .