0

我正在通过 IP 在 Intermec 打印机上打印标签,并被要求在标签上添加我们公司的徽标。在其他应用程序中,我能够分解位图并发送原始 ZPL,但在 IPL 中我无法弄清楚。我也愿意将图像保存在打印机上,但我不知道如何检索它进行打印。这是我的简单程序,任何帮助都会很棒!

Dim clientSocket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
        clientSocket.Connect(New IPEndPoint(IPAddress.Parse(IP), 9100))
        Dim Format As String = "<STX><ESC>C<ETX> Select Advanced mode" &
                               "<STX><ESC>P<ETX> Enter Program mode" &
                               "<STX>E22;F22;<ETX> Erase format 22, create format 22" &
                               "<STX>H0;o520,50;f0;c26;h12;w12;d0,50;<ETX> Edit/create human-readable field 0" &
                               "<STX>H1;o520,90;f0;c26;h12;w12;d0,50;<ETX> Edit/create human-readable field 1" &
                               "<STX>H2;o520,130;f0;c26;h12;w12;d0,50;<ETX> Edit/create human-readable field 2" &
                               "<STX>H3;o50,340;f0;c26;h12;w12;d0,50;<ETX> Edit/create human-readable field 3" &
                               "<STX>H4;o50,380;f0;c26;h12;w12;d0,50;<ETX> Edit/create human-readable field 4" &
                               "<STX>H5;o50,420;f0;c26;h12;w12;d0,50;<ETX> Edit/create human-readable field 5" &
                               "<STX>H6;o50,535;f0;c26;h12;w12;d0,50;<ETX> Edit/create human-readable field 6" &
                               "<STX>L8;o30,30;f0;l760;w3;<ETX> Edit/create line field 8" &
                               "<STX>L9;o30,580;f0;l760;w3;<ETX> Edit/create line field 9" &
                               "<STX>L10;o790,31;f3;l550;w3;<ETX> Edit/create line field 10" &
                               "<STX>L11;o29,580;f1;l550;w3;<ETX> Edit/create line field 11" &
                               "<STX>R;<ETX> Save format and exit to Print mode"

        Dim PrintData As String = "<STX><ESC>E22<ETX> Access format 22" &
                                  "<STX><CAN><ETX> Erase all data" &
                                  "<STX>DATE: 7/17/2020<CR><ETX> Data for human-readable field 0" &
                                  "<STX>LWO # 118826<CR><ETX> Data for human-readable field 1" &
                                  "<STX>QUANTITY: 5<CR><ETX> Data for human-readable field 2" &
                                  "<STX>LEE P/N & REV: PCHX0024024S A<CR><ETX> Data for human-readable field 3" &
                                  "<STX>DESCRIPTION:<CR><ETX> Data for human-readable field 4" &
                                  "<STX>LEE RELIEF VALVE, 8mm, INSERT, REVERSE, 241 BAR<CR><ETX> Data for human-readable field 5" &
                                  "<STX>CUSTOMER: Parker Hannifin<CR><ETX> Data for human-readable field 6" &
                                  "<STX><RS><ETB><ETX> Print "
        Dim Label As String = Format & PrintData

        clientSocket.Send(Encoding.UTF8.GetBytes(Label))
        clientSocket.Close()
4

1 回答 1

0

好的,我可以通过将图片保存到打印机来做到这一点。

第一步是使单色位图具有正确的大小和比例。接下来,您必须将其重命名为 UDCn.LOGO - 其中 n=您稍后将引用的数字。将其保存到打印机。

然后在代码中调用

<STX>U1;o200,400;f1;c1;w1;h1;<ETX>
  • 注意 c1 调用 UDC1.LOGO

另一件要考虑的事情是你不能按比例缩小图片。w1;h1 是实际大小(以像素为单位),因此除非您想让它更大,否则在 IPL 代码之外完成正确大小的图像。

于 2020-08-04T18:46:32.490 回答