init
commit
fd0d14c909
|
@ -0,0 +1,96 @@
|
|||
from pathlib import Path
|
||||
import os
|
||||
import time
|
||||
import logging
|
||||
from watchdog.observers import Observer
|
||||
from watchdog.events import LoggingEventHandler
|
||||
|
||||
from pdf2image import convert_from_path
|
||||
|
||||
labelPathDir = "/home/jan/Downloads/"
|
||||
|
||||
labelPath = labelPathDir + "label.pdf"
|
||||
labelPathRot90 = labelPathDir + "label_rot90.pdf"
|
||||
|
||||
|
||||
printer_identifier = "tcp://192.168.1.70"
|
||||
dpi = 300
|
||||
|
||||
imageHeight29mm = 343
|
||||
imageHeight62mm = 745
|
||||
imageHeightVersand102 = 3505
|
||||
|
||||
|
||||
def checkTolerance(isNum, shouldNum):
|
||||
tol = 10
|
||||
maxNum = shouldNum + tol
|
||||
minNum = shouldNum - tol
|
||||
return (isNum < maxNum and isNum > minNum)
|
||||
|
||||
|
||||
def printPDF(path):
|
||||
if (os.path.isfile(path)):
|
||||
print("label detected", path)
|
||||
pages = convert_from_path(path, dpi)
|
||||
for page in pages:
|
||||
|
||||
try:
|
||||
page.save('label.png', 'PNG')
|
||||
|
||||
pngHeight = page.height
|
||||
if (path == labelPathRot90):
|
||||
pngHeight = page.width
|
||||
print("height: ", pngHeight)
|
||||
|
||||
labelHeight = 0
|
||||
|
||||
if (checkTolerance(pngHeight, imageHeight29mm)):
|
||||
labelHeight = 29
|
||||
if (checkTolerance(pngHeight, imageHeight62mm)):
|
||||
labelHeight = 62
|
||||
|
||||
if (checkTolerance(pngHeight, imageHeightVersand102)):
|
||||
labelHeight = 102
|
||||
h = page.height/2
|
||||
spacing = 100
|
||||
|
||||
# box=(left, upper, right, lower)
|
||||
page.crop((0, spacing, page.width, h-spacing)
|
||||
).save('label.png', 'PNG')
|
||||
|
||||
if (labelHeight != 0):
|
||||
os.system('brother_ql -m QL-1060N -p ' +
|
||||
printer_identifier + ' print -d -l ' + str(labelHeight) + ' label.png -r 90')
|
||||
else:
|
||||
print("UNKNOWN LABEL PICTURE HEIGHT!")
|
||||
except:
|
||||
print("An exception occurred")
|
||||
os.remove(path)
|
||||
|
||||
|
||||
printPDF(labelPath)
|
||||
printPDF(labelPathRot90)
|
||||
|
||||
|
||||
class Event(LoggingEventHandler):
|
||||
def on_modified(self, event):
|
||||
path = event.src_path
|
||||
if (path == labelPath or path == labelPathRot90):
|
||||
printPDF(path)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
logging.basicConfig(level=logging.INFO,
|
||||
format='%(asctime)s - %(message)s',
|
||||
datefmt='%Y-%m-%d %H:%M:%S')
|
||||
path = labelPathDir # sys.argv[1] if len(sys.argv) > 1 else '.'
|
||||
event_handler = Event()
|
||||
observer = Observer()
|
||||
observer.schedule(event_handler, path, recursive=True)
|
||||
observer.start()
|
||||
try:
|
||||
while True:
|
||||
time.sleep(1)
|
||||
except KeyboardInterrupt:
|
||||
observer.stop()
|
||||
observer.join()
|
|
@ -0,0 +1,3 @@
|
|||
brother_ql
|
||||
watchdog
|
||||
pdf2image
|
Loading…
Reference in New Issue