From 138b75009f48bb2b5e9368071a444eb79668caa8 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 6 Jun 2019 01:28:04 +0200 Subject: [PATCH] added pagecount --- __pycache__/imageprinter.cpython-37.pyc | Bin 2539 -> 2571 bytes imageprinter.py | 29 +++-- print.py | 159 ++++++++++++++++++++---- 3 files changed, 151 insertions(+), 37 deletions(-) diff --git a/__pycache__/imageprinter.cpython-37.pyc b/__pycache__/imageprinter.cpython-37.pyc index e976153ffc25008a102e3d298333f697d0fba0aa..daedf268290060effb69881174bab0b1e07a5914 100644 GIT binary patch delta 579 zcmY*W&ubGw6rMM;o1NM0Ce4pF4fd*SddjIDt*y;T6pWyRdJtz@(x!!O2in6M0Jtv=O!W&Id*1l_Rq9R6qGYD~|*{H%wQ$dbW2UN$cx-}%E-%S-&M$b2( zrB>OPf4;CGhQ)%Z>99qw1vbyhEvBP8Ox$9ot}FYH!7aYwYR63-?acGE;11PSu~f$g8* z=Hef5b#QQXb1~aiFq_$#`OR-Wc5e$G`LV?)3V=j^d~WTh0p3jTBaEC9>DkTW*kzRE zy;o4}=U9P>+|%=@)7Zr>GbHPiE*bI>p#n5YXrV%mib>Q=K;3F}tZi_Kb!UqyOWD$v z?9h&5$wbPaoDD(~hd?>P?IM;z$ak7pAWsobd$Pe~YR@$GTkKy$leB~@ZEhQSn-g?6 zI^>QSFVZ@a*ja?IRC`rRxgsM`y4x?7NH0X_hG7wS z`X3S%LGyL2Dyyuself.CHARWIDTH): + self.checkpagebreak(printer) + self.printedheight+=(44/216) printer.write(self.LINE_FEED) self.strokes = 0 def printstring(self,string, formating="p"): - + strokesinline = 0 with open(self.target, 'wb') as printer: if self.debug: if formating == "u": @@ -52,10 +76,49 @@ class Printer(): printer.write(b"\x1B"+b"\x5B"+b"\x30"+b"\x6D") else: - printer.write(bytes(str(string), 'utf-8')) + for word in re.split(r'(\s+)', string): + strokesinline += len(word) + if "\n" in word: + strokesinline = 0 + if strokesinline > self.CHARWIDTH: + printer.write(self.LINE_FEED) + strokesinline = len(word) + if not (strokesinline == 1 and word == " "): + printer.write(bytes(str(word), 'utf-8')) else: printer.write(self.ESC+b"\x7B"+b"\x41") - printer.write(bytes(str(string), 'utf-8')) + printer.write(self.ESC + b"\x33" + bytes([44])); + if formating == "u": + printer.write(self.BOLDON) + if formating == "i": + printer.write(self.ITALICON) + if formating == "dh": + printer.write(self.DHON) + if formating == "compr": + printer.write(self.COMPRON) + if self.printedheight > 11.69: + printer.write(bytes(str("NEW PAGE YESY"), 'utf-8')); + self.printedheight=0 + for word in re.split(r'(\s+)', string): + strokesinline += len(word) + if "\n" in word: + strokesinline = 0 + self.printedheight+=(44/216) + if strokesinline > self.CHARWIDTH: + self.checkpagebreak(printer) + self.printedheight+=(44/216) + printer.write(self.LINE_FEED) + strokesinline = len(word) + if not (strokesinline == 1 and word == " "): + printer.write(bytes(str(word), 'utf-8')) + if formating == "u": + printer.write(self.BOLDOFF) + if formating == "i": + printer.write(self.ITALICOFF) + if formating == "dh": + printer.write(self.DHOFF) + if formating == "compr": + printer.write(self.COMPROFF) printer.write(self.ESC+b"\x25"+b"\x46"+b"\x0F"+b"\x00"+b"\x04"+b"\x08"+b"\x00") try: self.newline() @@ -66,9 +129,31 @@ class Printer(): def newline(self): global strokes with open(self.target, 'wb') as printer: - printer.write(self.LINE_FEED) - self.strokes = 0 - + if not self.debug: + self.checkpagebreak(printer) + printer.write(self.ESC + b"\x33" + bytes([44])); + self.printedheight+=(44/216) + printer.write(self.LINE_FEED) + self.strokes = 0 + + def checkpagebreak(self, printer): + if self.printedheight+(44/216)*4 > 11.69: + printer.write(self.LINE_FEED) + printer.write(self.LINE_FEED) + printer.write(bytes(str("PAGE "+str(self.pages)), 'utf-8')); + printer.write(self.ESC + b"\x33" + bytes([44])); + printer.write(self.LINE_FEED) + printer.write(self.LINE_FEED) + printer.write(self.LINE_FEED) + printer.write(self.COMPRON) + printer.write(bytes(str("------------------------------------------------------ POETIC SOFTWARE PUBLICATION -----------------------------------------------------"), 'utf-8')); + printer.write(self.COMPROFF) + printer.write(self.LINE_FEED) + self.printedheight=(44/216) + self.pages+=1 + return True + else: + return False def printimagefromurl(self, url): page = requests.get(url) @@ -77,11 +162,26 @@ class Printer(): with open(f_name, 'wb') as f: f.write(page.content) - if printer.debug: + if self.debug: rows, columns = os.popen('stty size', 'r').read().split() - subprocess.call(["catimg","-w",columns,f_name]) + #subprocess.call(["catimg","-w",columns,f_name]) + subprocess.call(["feh",f_name]) else: + imagelines = imageprinter.print(f_name,True) + isodd = False + if imagelines % 2 == 1: + isodd = True + imagelines+=1 + if self.printedheight + (22/216)*imagelines +(44/216)*4 > 11.69: + self.formfeed() + self.printedheight += (22/216)*imagelines imageprinter.print(f_name) + if isodd: + with open('/dev/usb/lp0', 'wb') as printer: + printer.write(ESC + b"\x33" + bytes([22])); + printer.write(self.LINE_FEED) + printer.write(ESC + b"\x33" + bytes([44])); + @@ -96,6 +196,7 @@ class Terminal(): "list":"list theses and exercises", "exercise ":"see the exercise with the specified", "thesis ":"see the thesis with the specified", + "whois ":"get biography of person given", "exit":"finish the publication", } @@ -176,6 +277,9 @@ class Terminal(): elif "start" == str(command) or "restart" == str(command): main() + elif "ff" == str(command): + printer.formfeed() + elif str(command).split(" ")[0] == "exercise" or str(command).split(" ")[0] == "thesis": part = str(command).split(" ")[0] arguments = str(command.strip()).split(" ") @@ -233,7 +337,8 @@ class Terminal(): persons = { "Kittler":"Friedrich A. Kittler (June 12, 1943 – October 18, 2011) was a literary scholar and a media theorist. His works relate to media, technology, and the military. ", -"Alex":"Alexander Roidl created Poetic Software as part of his Master's thesis" +"Alex":"Alexander Roidl created Poetic Software as part of his Master's thesis.", +"Jule":"Jule Ulrych is an evironmental activist and passionate vegan food lover living in Den Haag." } printer = Printer() term = Terminal(printer, persons) @@ -241,24 +346,26 @@ now = datetime.datetime.now() def main(): term.waittostart() - printer.printstring("W E L C O M E !") - printer.newline() - #printimagefromurl('https://apod.nasa.gov/apod/image/1701/potw1636aN159_HST_2048.jpg') - printer.printstring(now.strftime("%Y-%m-%d %H:%M")) + printer.printstring("W E L C O M E !", "dh") printer.newline() - printer.printstring("---------------") - printer.printstring("POETIC SOFTWARE") - printer.printstring("---------------") - printer.printstring("type help for help") + printer.printstring(now.strftime("%Y-%m-%d %H:%M"), "compr") printer.newline() - result = apirequest.gettitle("introduction", 1) - for line in result: - printer.printstring(line, "u") - result = apirequest.getcontent("introduction", 1) - for line in result: - printer.printstring(line) +# printer.formfeed() + printer.printimagefromurl("https://www.sanfranciscobaycoffee.com/wp-content/uploads/2017/03/52279468.jpg") + +# printer.printstring("---------------") +# printer.printstring("POETIC SOFTWARE") +# printer.printstring("---------------") +# printer.printstring("type help for help") +# printer.newline() +# result = apirequest.gettitle("introduction", 1) +# for line in result: +# printer.printstring(line, "u") +# result = apirequest.getcontent("introduction", 1) +# for line in result: +# printer.printstring(line) printer.newline() - term.list() +# term.list() printer.printstring("SELECT which one to see, for exercise type: exercise and for thesis type: thesis ") printer.newline() term.waitforinput()