Обратный перевод строки или другое решение для непрерывной подачи из синхронизации (матрица) - PullRequest
1 голос
/ 18 февраля 2010

Я использую непрерывную 5-дюймовую форму (предварительно напечатанную) с моим приложением счета, и кажется, что многие матричные принтеры не поддерживают эту 5-дюймовую длину формы. Теперь ключевая проблема заключается в том, что при печати только одной формы необходимо выбросить и две другие формы с разрывом перевода строки, поскольку код FF приводит к несинхронизации непрерывной формы. Мне нужно синхронизировать форму, чтобы в следующий раз программное обеспечение печатало на правильные позиции.

Интересно, решит ли эту проблему обратный перевод строки, например, если бы мое программное обеспечение оставило бы бумагу достаточно низкой, чтобы ее можно было вырвать, показать диалоговое окно и затем перевести перевод строки.

У меня вопрос, как отменить перевод строки на принтеры panasonic и epson, или есть какое-либо другое рекомендуемое решение?

Обратите внимание, что я использую печать в формате Raw (text out).

Ответы [ 2 ]

2 голосов
/ 18 февраля 2010

Если приложение является приложением Windows (доступ к принтеру из драйвера принтера Windows), свойства вашего принтера должны позволять вам определять формат бумаги, включая «определяемые пользователем» (см. Документацию Epson lx300 + ). , например. Это может изменить эффект подачи формы.

Если ваше приложение запускает принтер в текстовом режиме и использует последовательности символьных режимов ESC / P, то вы можете определить длину формы (в строках), используя escape-последовательности. Анализ использования ESC / P должен помочь вам отправить правильную последовательность на принтер. Информацию ESC / P можно найти здесь .

В частности, вам могут понадобиться следующие последовательности:

27 67 n     ESC C n     Select page length in lines (n=1..127)
27 67 48 n  ESC C 0 n   Select page length in inches (n=1..22)

(но возможностей гораздо больше)

0 голосов
/ 18 февраля 2010

Работая с некоторыми очень старыми воспоминаниями эпохи DOS / Foxpro, вы можете просто отслеживать количество напечатанных строк, а затем использовать правильное количество LF для перехода на следующую страницу.

Вы также можете установить длину формы, используя ESC C n, где n - количество строк. См. Коды управления принтером Epson здесь Поскольку количество строк на дюйм по умолчанию равно 6, вы хотите отправить 6 * 5, то есть 30

Что-то вроде

write(prt, $27'C', $30);

Должен сделать трюк

Основные коды управления Panasonic аналогичны кодам Epson. Я также помню некоторые принтеры Panasonic, которые могли автоматически извлекать бумагу, чтобы оторвать ее, а затем перемотать назад после начала следующего задания на печать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...