Parce que «Ça peut toujours servir»™ et que de toutes façons il y en a déjà des bouts qui sont dans le dépôt et que c'est chiant de git add -f.
Et puis bon, ça fait que 3Mo
This commit is contained in:
parent
29f50c2ed9
commit
3bde363deb
299 changed files with 17466 additions and 0 deletions
117
archive/pjl_comm.py
Executable file
117
archive/pjl_comm.py
Executable file
|
@ -0,0 +1,117 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: iso-8859-15 -*-
|
||||
|
||||
"""Classe de communication avec l'imprimante
|
||||
HP9500"""
|
||||
|
||||
import socket
|
||||
|
||||
class hp9500:
|
||||
"Classe de communication avec la HP9500"
|
||||
#\x1B est le caractere d'échappement échap.
|
||||
UEL="\x1b%-12345X"
|
||||
__douille=None
|
||||
def __init__(self,hostname="laserjet.adm.crans.org",port=9100):
|
||||
"""Appelle à l'initalisation
|
||||
hostname : nom d'hôte de l'imprimante
|
||||
port : le port de communication avec l'imprimante
|
||||
"""
|
||||
self.hostname=hostname
|
||||
self.port=port
|
||||
|
||||
def cx_open(self):
|
||||
"""Ouvre la connexion vers l'imprimante"""
|
||||
|
||||
if not self.__douille:
|
||||
self.__douille = socket.socket(socket.AF_INET, socket.SOCK_STREAM,socket.IPPROTO_TCP)
|
||||
self.__douille.connect((self.hostname, self.port))
|
||||
#delai d'attente pour la réception des données
|
||||
self.__douille.settimeout(10)
|
||||
self.__douille.sendall(self.UEL+"@PJL\n")
|
||||
|
||||
def cx_close(self):
|
||||
"""Ferme la connexion vers l'imprimante"""
|
||||
|
||||
if self.__douille:
|
||||
self.__douille.sendall(self.UEL+"\n")
|
||||
self.__douille.close()
|
||||
self.__douille=None
|
||||
|
||||
def pjl_command(self,command):
|
||||
"""Cette fonction envoie la commande command à l'imprimante
|
||||
Elle doit être une commande pjl sans @PJL devant
|
||||
|
||||
Paramètres :
|
||||
command : la commande à envoyer à l'imprimante
|
||||
|
||||
"""
|
||||
|
||||
if not self.__douille:
|
||||
self.cx_open()
|
||||
|
||||
command=str(command)
|
||||
command="@PJL " + command + "\n"
|
||||
self.__douille.sendall(command)
|
||||
|
||||
#debug
|
||||
print command
|
||||
|
||||
def pjl_read(self, display=0):
|
||||
"""Cette fonction lit le retour donné par l'imprimante
|
||||
Elle retourne un message commençant par \"ERREUR :\" en
|
||||
cas d'échec
|
||||
Elle affiche le message si la variable display est vraie
|
||||
"""
|
||||
|
||||
if not self.__douille:
|
||||
return "ERREUR : la connexion vers l'imprimante n'est pas ouverte"
|
||||
message=""
|
||||
caract=' '
|
||||
while caract:
|
||||
try:
|
||||
caract=self.__douille.recv(1)
|
||||
message+=caract
|
||||
except:
|
||||
caract=''
|
||||
message+='\n'
|
||||
if display:
|
||||
print message
|
||||
return message
|
||||
|
||||
def write_file(self,filename):
|
||||
"""Cette fonction envoie un fichier à l'imprimante.
|
||||
Elle est utile pour envoyer une série de commande ou un fichier
|
||||
postscript.
|
||||
|
||||
Arguments :
|
||||
filename : nom du fichier à envoyer
|
||||
"""
|
||||
|
||||
if not self.__douille:
|
||||
return "ERREUR : la connexion vers l'imprimante n'est pas ouverte"
|
||||
|
||||
fichier=open(filename)
|
||||
self.__douille.sendall(fichier.read())
|
||||
fichier.close()
|
||||
|
||||
def write_postscript(self,filename, name, display):
|
||||
"""Cette fonction envoie un fichier postscript à l'imprimante.
|
||||
Elle envoie avant le ENTER LANGUAGE et le EOJ a la fin.
|
||||
|
||||
Arguments :
|
||||
filename : nom du fichier à envoyer
|
||||
name : le nom du job
|
||||
display : ce qu'on met sur l'afficheur
|
||||
"""
|
||||
if not self.__douille:
|
||||
return "ERREUR : la connexion vers l'imprimante n'est pas ouverte"
|
||||
self.pjl_command('JOB DISPLAY=\"%s\" NAME=\"%s\"' % (display,name))
|
||||
self.pjl_command('ENTER LANGUAGE = POSTSCRIPT ')
|
||||
self.write_file(filename)
|
||||
self.__douille.sendall(self.UEL+"@PJL EOJ NAME=\"%s\"\n" % (name))
|
||||
|
||||
|
||||
def __del__(self):
|
||||
"""Destructeur : ferme la connexion"""
|
||||
self.cx_close()
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue