Enviado em 23/11/2017 - 16:07h
Depois de muito procurar uma solução de como imprimir QrCode nas impressoras do padrão ESC/POS utilizando C no linux, não encontrei nada em C, então resolvir criar uma função e disponibiliza-la para a comunidade.
int Print_qrcode_EscPos (char* szText)
{
int iRet =0;
char szLine[2046];
char szBuffer[]= "\x1D\x28\x6B\x03\x00\x31\x43?"
"\x1D\x28\x6B\x03\x00\x31\x45\x33"
"\x1D\x28\x6B??\x31\x50\x30";
int iSize = strlen(szText) + 3;
int lsb, msb;
memset(szLine, 0, sizeof(szLine));
FILE *f = fopen("qr_print.prt", "w");
if (f == NULL) f = stderr;
lsb = (iSize % 256);
msb = (iSize / 256);
szBuffer[7] = (char) 3; //Tamanho do QrCode -> 2 ao 12.
szBuffer[19] = (char) lsb;
szBuffer[20] = (char) msb;
fwrite (szBuffer, sizeof(char), sizeof(szBuffer)-1, f);
fwrite (szText , sizeof(char), strlen(szText), f);
fwrite ("\x1D\x28\x6B\x03\x00\x31\x51\x30", sizeof(char), 8, f);
fclose(f);
f = fopen("qr_print.prt", "r");
{
fgets(szLine, sizeof(szLine), f);
fclose(f)
}
iRet = dwrite (glPrinterHandle, (unsigned char *) szLine, (sizeof(szBuffer)-1) + (strlen(szText)) + 8);
//glPrinterHandle -> Porta de impressão.
return iRet;
}
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Descritores de Arquivos e Swappiness
Fez porcaria no teu repositório Git? Aprenda a restaurar uma versão anterior do seu código!
Restaurando Fontes de Download do Hydra no Linux
Atualizando "na marra" o YT-DLP quando começa a dar erro de downloads
Como instalar o WPS com interface e corretor ortográfico em PT-BR no Arch Linux