Я пытаюсь нажать клавишу клавиатуры, которая берет выделенный текст, копирует его и использует переменную для создания штрих-кода. У меня проблема в том, что буфер обмена работает медленно? и я получаю смешанные результаты. Копирование из блокнота кажется нормальным, но из более медленного источника (пример: Google Таблицы), похоже, не удается захватить текст вовремя до запуска остальной программы.
Я пробовал спать (что, кажется, решить смешанные результаты). Однако когда я это делаю, горячая клавиша подавления не работает, а затем записывает ее (`) поверх первоначально выбранного текста.
Мой код:
import keyboard
import clipboard
keyboard.add_hotkey('`', lambda: cpyPstScut() , suppress=True)
def cpyPstScut():
keyboard.press_and_release('ctrl+c')
print('Spot 1 = ' + clipboard.paste())
bcodeTxt = clipboard.paste()
createBCode(bcodeTxt)
def createBCode(bCodeText):
from PIL import Image, ImageDraw, ImageFont
background = Image.new("L",(1050,342),"white")
print('Spot 2 = ' + clipboard.paste())
font_type = ImageFont.truetype('arial.ttf',48)
draw = ImageDraw.Draw(background)
draw.text((40,40), text = bCodeText, fill ='black', font = font_type)
from datetime import date
lblNow = str(date.today())
draw.text((40,100), text = lblNow, fill = 'black', font = font_type)
print('Spot 3 = ' + clipboard.paste())
#create and add barcode
from barcode import Code128
from barcode.writer import ImageWriter
writeBcode = Code128(bCodeText, writer=ImageWriter())
writeBcode.save('bCodeImg')
print('Spot 4 = ' + clipboard.paste())
bcodeImg = Image.open('bCodeImg.png', 'r')
background.paste(bcodeImg,(20,170))
print('Spot 5 = ' + clipboard.paste())
background.save('bcodeLabel.png')
background.show()
print('Spot 6 = ' + clipboard.paste())