Как установить логотип на внутреннем принтере verifyone vx520

Я хочу установить логотип на печатной бумаге в розыгрыше Verone VX520. Должен ли я изменить значение <* PTRLGO>? и как я могу изменить <* PTRLGO>? и как я могу загрузить этот логотип на принтер? как мне назвать логотип на программе? Я написал свою программу с помощью c. вот мой код, но это неправильно. Я использовал команду GP для печати логотипа.

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <svc.h>

char myLOGO[]="testlogo.bmp";
char buf[200]="";
void main ()
{
    int i,t;
    char logo[]="*PTRLGO";
    char buf[500] = "";
    int prt_handle,prt_com;
    prt_handle = open(DEV_CONSOLE, 0);
    prt_com = open(DEV_COM4, 0);
    put_env(logo,myLOGO,1);    
    sprintf(buf, "%cGP1;",27);
    write(prt_com, buf, strlen(buf));
    SVC_WAIT (100);

    close(prt_com);    
}

1 ответ

Решение

Вам не нужно возиться с *PTRLGO, Вместо этого используйте "Font Tool" для создания файла логотипа из растрового изображения. Вот как:

  1. Откройте инструмент и перейдите в Файл -> Импорт.
  2. Перейдите к своему растровому изображению MONOCHROME (520 имеет только монохромный экран, поэтому это ограничение не должно вызывать беспокойства).
  3. Выберите "Сохранить как" и измените тип на "Файлы логотипа ITP (*.lgo)".
  4. Для "Выберите принтер" выберите Verix 37xx и нажмите "ОК".
  5. Не забудьте загрузить новый файл логотипа в терминал.

ПРИМЕЧАНИЕ на #4: Насколько мне известно, 3740, 3750, 3730/510, 570 и 520 используют пакет печати 37xx.

Теперь у вас есть файл логотипа, загруженный в память ТЕРМИНАЛА, но у ПРИНТЕРА терминала есть своя собственная память, и вам нужно загрузить его туда, прежде чем вы сможете указать принтеру, чтобы он действительно печатался. Вот код, который должен работать:

void PrintLogoToPaper()
{
    //open a printer handle and a file handle
    //Assume we have already acquired the printer from DevMan if you are using VMAC
    int hPrinter = hPrinter = open(DEV_COM4,0);
    int h_font_file = open("logo.lgo", O_RDONLY);

    //send the logo to the printer's memory
    p3700_dnld_graphic_file (hPrinter, h_font_file);


    //Now that we have loaded the printer logo to the printer's memory, 
    // we can tell the printer to actually print it out
    p3700_print_graphic(hPrinter, 0, 50);

    //remember to close your file and handles
    close(h_font_file);
    close(hPrinter);

    //Not sure why, but if you take this print message out, then the logo 
    //doesn't always print. Please update if you know a better solution.!
    clrscr();
    printf("Printing");
}

Если вы все сделали правильно, вы сможете распечатать логотип:

Логотип Stackru, напечатанный на Vx520

Другие вопросы по тегам