ajout de la doc pydoc
darcs-hash:20061123200724-f46e9-fdd14a07b448b323145a69bae0d9c66a3eb54f71.gz
This commit is contained in:
parent
e8132317e8
commit
d37a454b53
5 changed files with 165 additions and 32 deletions
80
lib/impression/__init__.py
Normal file → Executable file
80
lib/impression/__init__.py
Normal file → Executable file
|
@ -1,4 +1,5 @@
|
|||
"""
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: iso-8859-15 -*-
|
||||
# #############################################################
|
||||
# ..
|
||||
# .... ............ ........
|
||||
|
@ -24,6 +25,9 @@
|
|||
# Copyright (c) 2006 by www.crans.org
|
||||
# #############################################################
|
||||
"""
|
||||
Classe pour gérer l'envoie de pdf à l'imprimante.
|
||||
Calcule le coût des options d'impression.
|
||||
"""
|
||||
__version__ = '1'
|
||||
|
||||
import sys, syslog, os.path
|
||||
|
@ -119,21 +123,40 @@ LPR_OPTIONS = {
|
|||
# ERREURS #
|
||||
# ######################################################## #
|
||||
#
|
||||
#
|
||||
|
||||
class FichierInvalide(Exception):
|
||||
"""
|
||||
Exception renvoyée lorsqu'un fichier ne passe pas.
|
||||
utilisée avec deux arguments : une chaîne décrivant l'erreur et une chaine avec le nom du fichier
|
||||
"""
|
||||
def __str__(self):
|
||||
"""
|
||||
Description de l'erreur.
|
||||
"""
|
||||
return self.args[0]
|
||||
def file(self):
|
||||
"""
|
||||
Nom du fichier qui pose problème
|
||||
"""
|
||||
try:
|
||||
return self.args[1]
|
||||
except:
|
||||
return "n/a"
|
||||
|
||||
class SoldeInsuffisant(Exception):
|
||||
"""
|
||||
Solde insuffisant pour l'impression demandée
|
||||
"""
|
||||
pass
|
||||
class PrintError(Exception):
|
||||
"""
|
||||
Erreur lors de l'impression
|
||||
"""
|
||||
pass
|
||||
class SettingsError(Exception):
|
||||
"""
|
||||
Erreur de paramètres.
|
||||
"""
|
||||
pass
|
||||
# ######################################################## #
|
||||
# CLASSE IMPRESSION #
|
||||
|
@ -141,6 +164,10 @@ class SettingsError(Exception):
|
|||
#
|
||||
#
|
||||
class impression:
|
||||
"""impression
|
||||
|
||||
Un objet impression correspond à un fichier pdf et un adhérent.
|
||||
"""
|
||||
# fichier (chemin)
|
||||
_fichier = ""
|
||||
# adherent (instance)
|
||||
|
@ -164,6 +191,12 @@ class impression:
|
|||
|
||||
|
||||
def __init__(self, path_to_pdf, adh = None):
|
||||
"""impression(path_to_pdf [, adh])
|
||||
|
||||
Crée un nouvel objet impression à partir du fichier pdf pointé par path_to_pdf.
|
||||
Si adh ext donné, il peut être soit une instance d'un objet adhérent de crans_ldap soit le login de l'adhérent.
|
||||
Lève l'exception FichierInvalide si le fichier n'existe pas ou si ce n'est pas un pdf.
|
||||
"""
|
||||
self._fichier = path_to_pdf
|
||||
# on verifie que le fichier existe
|
||||
if not os.path.isfile(path_to_pdf):
|
||||
|
@ -171,8 +204,6 @@ class impression:
|
|||
if not open(path_to_pdf).read().startswith("%PDF"):
|
||||
raise FichierInvalide, ("Le fichier ne semble pas etre un PDF", path_to_pdf)
|
||||
os.system("/usr/scripts/impression/compatibilise %s" % escapeForShell( path_to_pdf ) )
|
||||
|
||||
|
||||
self._adh = adh
|
||||
# calcule le prix de l'encre tout de suite
|
||||
try:
|
||||
|
@ -184,7 +215,12 @@ class impression:
|
|||
|
||||
|
||||
def changeSettings(self, agraphes = None, papier = None, couleurs = None, recto_verso=None, copies=None):
|
||||
# recalcule et renvoie le prix
|
||||
"""changeSettings([keyword=value])
|
||||
|
||||
Change les parametres de l'impression, recalcule et renvoie le nouveau prix.
|
||||
Lève une exceotion SettingError si les paramètres son invalides.
|
||||
"""
|
||||
#recalcule et renvoie le prix
|
||||
if (couleurs):
|
||||
if couleurs not in COULEURS_VALEURS_POSSIBLES:
|
||||
raise SettingsError, "Valeur de couleurs inconnue : %s" % str(couleurs)
|
||||
|
@ -222,6 +258,10 @@ class impression:
|
|||
return self._calcule_prix()
|
||||
|
||||
def printSettings(self):
|
||||
"""printSettings()
|
||||
|
||||
Affiche les maramètres courrants sur la sortie standard
|
||||
"""
|
||||
print "Type impression: " + LABELS[self._settings['couleurs']]
|
||||
print "Agraphes: " + LABELS[self._settings['agraphes']]
|
||||
print "Papier: " + LABELS[self._settings['papier']]
|
||||
|
@ -230,23 +270,49 @@ class impression:
|
|||
|
||||
|
||||
def prix(self):
|
||||
"""prix()
|
||||
|
||||
Renvoie le prix courrant de l'impression
|
||||
"""
|
||||
return self._prix
|
||||
|
||||
def fileName(self):
|
||||
"""fileName()
|
||||
|
||||
renvoie le nom du fichier pdf (exemple : monPdf.pdf)
|
||||
"""
|
||||
return os.path.basename(self._fichier)
|
||||
|
||||
def filePath(self):
|
||||
"""filePath()
|
||||
|
||||
renvoie le chemin d'accès au fichier pdf.
|
||||
"""
|
||||
return self._fichier
|
||||
|
||||
|
||||
def devisDetaille(self):
|
||||
"""devisDetaille()
|
||||
|
||||
renvoie un disctionnaire contenant le devis (intitulé, PU., quantité) pour tous les éléments de l'impression
|
||||
(papier, encre, agrafes...)
|
||||
"""
|
||||
return self._details_devis
|
||||
|
||||
def pages(self):
|
||||
"""pages()
|
||||
|
||||
renvoie le nombre de pages du document (page au sens nombre de faces à imprimer et non le nombre de feuilles)
|
||||
"""
|
||||
return self._nb_pages
|
||||
|
||||
|
||||
def imprime(self):
|
||||
"""imprime()
|
||||
|
||||
imprime le document pdf. débite l'adhérent si adhérent il y a.
|
||||
(si il a été indiqué à l'initialisation de l'objet)
|
||||
"""
|
||||
# debite l'adherent si adherent il y a
|
||||
if (self._adh != None):
|
||||
adh = self._get_adh(self._adh)
|
||||
|
@ -259,6 +325,10 @@ class impression:
|
|||
self._exec_imprime()
|
||||
|
||||
def printDevis(self):
|
||||
"""printDevis()
|
||||
|
||||
Affiche le devis sur la sortie standard.
|
||||
"""
|
||||
print "titre \t\t | p.u. \t quandtite \t total"
|
||||
for anItem in self._details_devis:
|
||||
print anItem[0][:5] + "\t\t | " + str(anItem[1]) + "\t\t | " + str(anItem[2]) + "\t\t | " + str(anItem[1]*anItem[2])
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue