Позвольте мне сначала описать картинку ниже:
- Есть две печатные работы.Единственная разница между ними состоит в том, что несколько пробелов "" символы из бумаги слева заменяются точкой "."символ в документе справа.
- Красная линия представляет левую границу, с которой должен быть выровнен текст
- Зеленая кривая представляет мое намерение выровнять все соединенные символы в один столбец.На самом деле зеленая кривая должна быть вертикальной линией.

Я хочу, чтобы все символы, выделенные зеленой линией, печатались в одном столбце.
Шрифт строки моноширинный Courier New.Однако, похоже, что пробельные символы не печатаются как моноширинные (см. «Пунктирные» строки против строк с пробелами в начале).
Для печати строки я использую стандартный Java Print Service API через компонент JTextPane:
PrinterJob pj = PrinterJob.getPrinterJob();
pj.setPrintable(myTextPane);
pj.print();
Насколько мне известно, API службы печати Java фактически вызывает методы paint () myTextPane.Поэтому предварительный просмотр должен выглядеть точно так же, как печатная версия String.
Однако это не так.Предварительный просмотр, по-видимому, не интерпретирует моноширинные космические символы (см. Последнюю картинку).Предварительный просмотр выглядит точно так, как я хочу, чтобы текст печатался.

Есть ли какие-либо предложения, как заставить JavaPrintServiceAPI правильно печатать символы пробела?