Я пытаюсь использовать виртуальный принтер в Java, используя LPD protocol, но он может работать с английским языком без проблем, но арабский выводится в виде точек исходный код можно найти здесь
LPD protocol