Я печатаю текст на матричном принтере, используя универсальный драйвер только для текста, и мне удается выровнять данные в столбцах бумаги, используя один пробел для каждого пустого символа печати на бумаге шириной 135 символов. Это работает для 10CPI в том смысле, что данные находятся в столбцах, где они должны быть, но не в том случае, если пользователь выбирает другой размер символа, например, 17CPI. В последнем случае выравнивание сохраняется, но данные не попадают в ожидаемое место. Например, символ, который должен быть на месте 120 в строке (120-й символ), в то время как при 10CPI он действительно печатается там, ближе к концу строки, при 17CPI он печатается в середине бумаги.
Я понимаю, что это происходит потому, что фактические символы пробела, которые я использую между столбцами, меньше на 17CPI.
Итак, мои вопросы:
1) следует ли мне использовать более одного символа пробела, если шаг больше 10CPI? Я мог бы проверить это, но это не очень хорошая практика. Или мне попробовать использовать абсолютное горизонтальное положение с соответствующими командами esc? Тем не менее, согласно руководству escp2 это не рекомендуется.
2) следует ли мне отправлять \ r \ n внутри строки, которую я отправляю на принтер для каждой строки данных, или я должен отправлять только строку данных и в конце ее команду escp2 CR?
Заранее спасибо.