from PIL import Image, ImageDraw, ImageFont from colorama import Fore, Style from printer_info import * def gen_image(height, string1, string1_size, string1_pos, string2, string2_size, string2_pos, justification): font1 = ImageFont.truetype("ComicMono.ttf", size=string1_size) font2 = ImageFont.truetype("ComicMono.ttf", size=string2_size) text1_box = font1.getbbox(string1) text2_box = font2.getbbox(string2) text1_width = text1_box[2] text2_width = text2_box[2] # I am assuming the left corner of the bbox to always be 0, I have yet to # encounter a situation when this isn't the case if (text1_box[0] != 0 or text2_box[0] != 0): print(Fore.YELLOW + "Warning, found situation where left corner of bbox of text != 0,", "text1_box:", text1_box, "text2_box", text2_box) img = Image.new('1', (max(text1_width, text2_width), height), color=1) draw = ImageDraw.Draw(img) draw.text((0, string1_pos), string1, font=font1) draw.text((0, string2_pos), string2, font=font2) return img gen_image(label_width, "faf", 30, 10, "Hello world", 20, 40, justification="left").save('output.png')