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