imported>Meap K Meap verschob die Seite Benutzer:Jürgen/Firma/probi2ps nach Benutzer:Juergen/Firma/probi2ps: Seite während der Benutzerkontoumbenennung von „Jürgen“ in „Juergen“ automatisch verschoben |
imported>Meap K Meap verschob die Seite Benutzer:Juergen/Firma/probi2ps nach Benutzer:Jürgen/Firma/probi2ps und überschrieb dabei eine Weiterleitung: Seite während der Benutzerkontoumbenennung von „Juergen“ in „[[User:Jürgen|Jürgen]… |
||
(kein Unterschied)
| |||
Aktuelle Version vom 10. April 2017, 13:34 Uhr
#!/usr/bin/python
import sys, os, tempfile, re
backfiledir = "/home/daten/vorlagen/drucker/"
klein = "Courier@8"
gross = "Courier@10"
fett = "Courier-Bold@10"
page = "\x00font{%s}\n\n\n\n\n\n\n" % gross
delspace = 2
############################################################################################
# Definitionen Druckertreiber
#
argc = len(sys.argv)
if argc == 1:
print "ERROR: probi2ps job-id user title copies options [file]"
sys.exit(0)
sys.stderr.write("INFO: probi2ps %s \n" % sys.argv)
if argc < 6 or argc > 7:
sys.stderr.write("ERROR: %s job-id user title copies options [file]\n" % sys.argv[0])
sys.exit(1)
for opt in sys.argv[5].split(" "):
if (opt.split("=")[0] == "back") :
page = "\x00epsf[nc]{" + backfiledir + opt.split("=")[1] + "}" + page
sys.stderr.write("INFO: backgroud file is %s%s\n" % (backfiledir,opt.split("=")[1]))
if argc == 7:
sys.stderr.write("INFO: file is %s \n" % sys.argv[6])
infile = open(sys.argv[6],"r")
else:
sys.stderr.write("INFO: file is stdin\n")
infile = sys.stdin
###########################################################################################
# Erzeuge Temp-datei
#
filename = tempfile.mktemp(".probi2ps")
try:
tmpfile = open(filename, "w")
except:
sys.stderr.write("ERROR: unable to create tmpfile %s\n" % filename)
sys.exit(1)
sys.stderr.write("INFO: tmpfile is %s\n" % filename)
#############################################################################################
# Konvertiere Epson-Format in Enscript-Format
# und schreibe in Temp-Datei
#
data = infile.read()
data = re.sub( "\n(\033.\033.)\ {%i}" % delspace ,"\n\\1", data ) # spaces mit sonderzeichen weg
data = re.sub( "\n\ {%i}" % delspace ,r"\n", data ) # spaces am anfang jeder zeile weg
data = re.sub( "\x1bx0",page, data) # Intro
data = re.sub( "\r\n" ,"\n", data) # Zeilenvorschub
data = re.sub( "\x1b\x0f" ,"", data) # Zeilenvorschub ?
data = re.sub( "\x1bP" ,"\x00font{%s}" % klein , data) # Schrift 10
data = re.sub( "\x1bM" ,"\x00font{%s}" % gross , data) # Schrift 12
data = re.sub( "\x1b4","", data) # Kursiv an
data = re.sub( "\x1b5","", data) # Kursiv aus
data = re.sub( "\x1bE","\x00font{%s}" % fett , data) # Fett an
data = re.sub( "\x1bF","\x00font{%s}" % gross, data) # Fett aus
data = re.sub( "^ ","", data) # Leerzeichen weg
tmpfile.write(data)
tmpfile.close()
#############################################################################################
# Ausgabe
#
(sin,sout,serr) = os.popen3("/usr/bin/enscript -e -X ibmpc -B -p - --margins=0:0:0:0 %s" % filename)
sin.close()
sys.stdout.write(sout.read())
for line in serr.readlines():
sys.stderr.write("ERROR: Enscript stderr : %s" % line)
sout.close()
serr.close()
#############################################################################################
os.unlink(filename)
sys.stderr.write("INFO: Ready to print ...\n")
sys.exit(0)