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;
}
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
O macete do Warsaw no Linux Mint e cia
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Olha que maravilha, Arch no C2D 7400, 2GB de RAM, vídeo onboard e no G... (1)
Mikrotik não abre o webmail-segur... da Locaweb (0)
Jogos baixados na Central de Aplicativos mas que não abrem (1)
debian com wayland, configuracao de teclado. Mudou Tudo! [RESOLVIDO] (1)