我希望能够让我的打印机(USB上的HP DeskJet 1280)打印出我到目前为止发送给它的所有光栅数据,而不会弹出页面。我只发送普通的光栅图形和光标定位命令 - 没有矢量图形,没有文字。
更准确地说,我有两个问题:
1)将一些光栅数据发送到打印机后(使用传输光栅数据(“\ 033 * b%dW”)),如何在不弹出页面的情况下立即将其打印出来并停止?
2)发送带有正参数的垂直光标定位命令(例如,垂直光标定位(Decipoints)(“\ 033& a%+ dV”))后,如何使打印机将纸张前进到新位置马上到那儿停下来?
(请注意,即使仅解决(1)也几乎就足够了,因为可以通过发送适当高度的空白栅格间接完成推进光标。)
由于PCL是一种页面描述语言,实际上不可能在如此低的水平上做事。但经过对PCL文档和互联网的广泛搜索后,我还没有找到明确的否定答案。
打印机似乎有某种内部缓冲区来存储其数据,并且当它变得足够大时,它会刷新(即打印出)缓冲区。如果有一个命令告诉打印机立即刷新缓冲区而不做任何其他事情,一切都会好的。但我还没有找到这样的命令。即使是“\ 033 * rC”(结束光栅图形)也没有立即生效。
我正在使用CUPS的USB后端与打印机通信,并且已经验证(使用usbmon)后端实际上在看到它们后立即将所有命令发送到打印机,因此它不能成为数据获取的问题陷入了司机。
打印部分页面的命令包括,例如,“\ 033E”(打印机重置),“\ 033 %% - 12345X”(通用退出语言),“\ 033& r1F”(刷新所有页面(包括部分页面)页)) - 但所有这些也弹出部分页面。
有人可以建议一种聪明的方式来做我想做的事情,或者确认我的印象是绝对不可能的吗?