[Python] Como imprimir emojis e caracteres especiais em uma impressora térmica usando python?

Discussão em 'Python' iniciado por Stack, Janeiro 31, 2025.

  1. Stack

    Stack Membro Participativo

    Olá! Estou tentando imprimir o seguinte texto ">>áçéóãõ<<" em uma impressora térmica utilizando python, porém está me retornando o seguinte >>AiA§A S A3ArApore,0<<.

    import win32print import win32ui import win32con

    def imprimir_texto_com_emoji(texto): # Abre a impressora padrão (caso não esteja definida, defina como padrão) impressora = win32print.GetDefaultPrinter() dispositivo = win32print.OpenPrinter(impressora) hdc = win32ui.CreateDC() hdc.CreatePrinterDC(impressora) # Define as configurações de impressão hdc.StartDoc("Impressão de Texto com Emojis") hdc.StartPage()

    # Configura a fonte
    fonte = win32ui.CreateFont({
    "name": "Segoe UI Emoji", # Fonte que suporta emojis
    "height": 5 * 10, # Multiplicador para tamanho correto
    "weight": win32con.FW_NORMAL,
    "charset": win32con.DEFAULT_CHARSET, # Suporte a caracteres especiais
    })
    hdc.SelectObject(fonte)

    # Define o retângulo de impressão em pontos (60mm x 40mm)
    margem_esq = 0
    margem_sup = 0
    largura = int(180 * 3.78) # 60mm -> pontos
    altura = int(90 * 3.78) # 40mm -> pontos


    #Converte o texto para Unicode se necessário
    if not isinstance(texto, str):
    texto = texto.encode("utf-8")
    texto = str(texto)

    # Imprime o texto justificado
    hdc.DrawText(texto,(margem_esq, margem_sup, largura, altura), win32con.DT_WORDBREAK | win32con.DT_LEFT)


    hdc.EndPage()
    hdc.EndDoc()
    hdc.DeleteDC()
    # Fecha a impressora
    win32print.ClosePrinter(dispositivo)


    texto_para_imprimir = (f">>áçéóãõ<<") imprimir_texto_com_emoji(texto_para_imprimir) print(texto_para_imprimir)

    Continue reading...

Compartilhe esta Página