0

我有一台 Intermec PX6i 打印机。

生成标签代码,保存为 .txt 文件并通过 TCP/IP 连接发送到打印机。

一切正常,但在执行时,它将当前文件保存到内存并打印前一个标签。

这意味着我必须执行两次打印才能获得我请求的标签。由于是前一个成功标签的副本,因此每个其他标签都将被丢弃。

即使是直接从打印机控制面板送入空的 FEED,也会送入空标签并将其存储起来。然后当我请求打印作业时,会打印另一个空标签,并且只保存请求。

谁能告诉我为什么会这样?

  • 我尝试在每次请求之前和之后清除缓冲区。缓冲区似乎已被清除,但打印历史记录仍然在某处有以前的标签,并且仍然重新打印它。

  • 我尝试在不打印的情况下发送文件并使用打印命令发送第二个文件,但在执行打印之前它不会替换之前的标签。

  • 我尝试使用不同的标题发送文件,但这并不能替换之前的图像。

  • 我在代码之前、代码之后甚至在单独的打印请求中都使用了CLLand命令。CLEAR

  • 我尝试过使用和不使用PRINTKEY命令。转动它ONOFF但仍然无法正常工作。

这是我的 CMD 代码:

PUT ftpData.txt PR1

这是标签代码:

CLIP ON
CLIP BARCODE ON
CLL
PP 0,95:AN 7
BARSET "QRCODE",1,1,4,2,2
PB "2762884799"
PP87,100:AN 7
FT "Swiss 721 BT"
FONTSIZE 7
PT "2762884799"
PP87,60:AN 7
FT "Swiss 721 BT"
FONTSIZE 7
PT "27JUL2019"
PP180,32:AN 7
FT "Swiss 721 BT"
FONTSIZE 7
PT "12"
PRINT KEY OFF
PF 
CLL
CLEAR
RUN

CMD 结果:

ftp> open xxx.xxx.xxx.xxx
Connected to xxx.xxx.xxx.xxx.
220 EasyCoder FTP Server v.2024 ready.
ftp> user username password
331 Password required for admin.
230 User logged in.
ftp> PUT ftpData.txt PR1
200 PORT command OK.
150 Opening ASCII mode data connection for 'pr1'
226 Transfer complete.
ftp: 799 bytes sent in 0.20Seconds 3.96Kbytes/sec.

然后打印机打印,但不打印当前标签。仅打印先前保存的标签并保存当前标签。

然后在下一个请求中,打印当前标签并且只保存下一个标签。

4

1 回答 1

0

事实证明,问题不在代码中,也不是缓冲区/内存问题的结果。

内部“打印引擎”设置需要调整。

过去,打印机在每次打印后都会提供额外的空白标签。此外,它会在打印前缩回一点。因此,为了解决这个问题并简化打印过程,我将其更改STARTADJ0和。这解决了提要问题,但无意中导致了这个新的“重印”问题。STOPADJ-120

打印机基本上会跟踪打印作业停止的位置,然后添加新请求。

对发生的事情的结论:

  • 通过设置STOPADJto -120,在每个打印命令之后,它基本上将打印作业的结束位置设置在最后一个标签开始之前。
  • 因此,下一个打印作业的起点在最后一个打印标签之前,因此最后一个历史标签将是第一个打印的。
  • PF然后它根据请求的命令和( PRINTFEED)执行一次打印。
  • 结果是先前的标签被打印并在新标签之前停止。
  • 这会导致一种始终落后一个标签的虚拟排队。

如果是多标签打印作业PF 2或更多,则第一个标签将是历史版本,然后它将生成正确的标签,但仍比请求的标签少一个,因为打印作业的结束位置将在最后一个标签之前执行。

于 2019-07-28T12:40:28.403 回答