Как отправить изображение (или извлечь из памяти принтера) через необработанный IPL? - PullRequest
0 голосов
/ 03 августа 2020

Я печатаю этикетки на принтере Interme c через IP, и меня попросили добавить на этикетку номер нашей компании lo go. В других приложениях я могу разбить растровое изображение и отправить необработанный 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()

1 Ответ

0 голосов
/ 04 августа 2020

Хорошо, я смог сделать это, сохранив изображение на принтере.

Первым шагом было сделать монохромное chrome растровое изображение правильного размера и масштаба. Затем вам нужно переименовать его в UDCn.LO GO - где n = номер, на который вы позже будете ссылаться. Сохраните его в принтере.

Затем вызовите в коде

<STX>U1;o200,400;f1;c1;w1;h1;<ETX>
  • примечание c1 вызывает UDC1.LO GO

Другое дело Следует учитывать, что вы не можете уменьшить масштаб изображения. w1; h1 - это фактический размер (в пикселях), поэтому получение изображения правильного размера выполняется за пределами кода IPL, если вы не хотите его увеличить.

...