PCL: распечатка частичной страницы без извлечения
Я хочу, чтобы мой принтер (HP DeskJet 1280 по USB) мог распечатывать все растровые данные, которые я отправил ему до сих пор, без извлечения страницы. Я посылаю только обычную растровую графику и команды позиционирования курсора - без векторной графики, без текста.
Точнее, у меня есть два вопроса:
1) После отправки некоторых растровых данных на принтер (с помощью Transfer Raster Data ("\033*b%dW")), как заставить его распечатать его сразу и остановить без извлечения страницы?
2) После отправки команды позиционирования вертикального курсора с положительным аргументом (например, позиционирование вертикального курсора (десятичные точки) ("\033&a%+dV")), как заставить принтер перемещать бумагу в новую позицию сразу и останавливаться там?
(Обратите внимание, что даже решения только (1) было бы почти достаточно, поскольку продвижение курсора можно сделать косвенным путем, отправив пустой растр соответствующей высоты.)
Так как PCL является языком описания страниц, на самом деле невозможно сделать что-либо на таком низком уровне. Но после тщательного поиска в документации по PCL и в Интернете я еще не нашел однозначного отрицательного ответа.
Кажется, что принтер имеет какой-то внутренний буфер для хранения своих данных и что он очищает (т.е. распечатывает) этот буфер, когда он становится достаточно большим. Если бы была команда, указывающая принтеру немедленно очистить этот буфер, ничего не делая, все было бы в порядке. Но я не нашел такой команды. Даже "\033*rC" (End Raster Graphics) не имеет немедленного эффекта.
Я использую USB-бэкэнд CUPS для связи с принтером и проверил (используя usbmon), что бэкэнд фактически отправляет все мои команды на принтер, как только он их видит, поэтому не может быть проблема застревания данных в Водитель.
Команды, которые печатают неполные страницы, включают, например, "\033E" (сброс принтера), "\033%%-12345X" (универсальный язык выхода), "\033&r1F" (сброс всех страниц (включая неполные страницы)) - но все они также извлекают частичную страницу.
Может кто-нибудь предложить умный способ сделать то, что я хочу, или подтвердить мое впечатление, что это абсолютно невозможно?