IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Python / Imprimante


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de panda31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2003
    Messages : 670
    Par défaut Python / Imprimante
    Bonjour,

    J'essaie de faire imprimer un fichier PDF de mon disque dur sur une imprimante choisie dans un formulaire graphique que j'ai codé.

    Et c'est là que ça se corse.
    J'ai donc mon chemin vers mon fichier PDF.
    L'utilisateur a choisi s'il voulait que le fichier s'imprimer en couleurs ou non.

    A noter, l'imprimante peut être sur le réseau ou en connexion directe.

    Et maintenant ?
    J'ai commencé à me pencher sur win32print.

    Mais l'aide est vraiment succincte.

    Mes questions :
    - Démarche ? D'abord OpenPrinter puis GetPrinter ?
    - Options ? Comment régler le mode couleur ou le format des pages en sortie ?


    Si vous avez des conseils, je vous serai reconnaissant au point de crier Wohoo tout seul derrière mon bureau !
    Michaël Mary
    Consultant PLM dans une société de conseil toulousaine
    Auditeur CNAM-IPST depuis septembre 2008
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    John F. Woods
    mon cv et mon domaine et mon blog
    Aucune question technique par MP, svp

  2. #2
    Membre émérite
    Avatar de panda31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2003
    Messages : 670
    Par défaut
    Je rajoute le code que j'ai tenté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
     
    from win32print import *
     
    class DriverPrinter():
        '''
        Manage print
        '''
     
     
        def __init__(self, printer, color_option):
            '''
            Constructor
            '''
            # Printer as a string
            self.printer = printer
     
            # Color Options
            self.color_option = color_option
     
            # Queue as private variable / FIFO
            self.__queue = []
     
        def enqueueFile(self, file):
            '''
            Add one file to queue
            @param file: a new file
            '''
            self.__queue.append(file)
     
        def cancelNextFile(self):
            '''
            Pops 1st file
            '''
            if len(self.__queue) > 0:
                self.__queue.pop()
     
        def getQueue(self):
            '''
            Returns the queue
            @return: the queue of files to print
            '''
            return self.__queue
     
        def runPrint(self):
            '''
            Run the printer for all the files enqueued
            '''
            #print(GetDefaultPrinter())
            #print "Imprimante sélectionnée : " + self.printer
     
            for ep in EnumPrinters(4):
     
                if ( self.printer == ep[2] ):
                    handlerP = OpenPrinter(ep[2])
                    break
            print (GetDefaultPrinter())
            printerSettings = GetPrinter(handlerP, 2)
            print(printerSettings)
            printerSettings["pPrinterName"] = self.printer 
     
            SetPrinter(handlerP, 2, printerSettings, 0)
     
     
     
            for f in self.getQueue():
                StartDocPrinter(f)
     
    if __name__ == "__main__":
        dp = DriverPrinter(printer=r"\\tomate\Copieur Toulouse", color_option="yes")
        dp.enqueueFile(r"C:/exemple.pdf")
        dp.runPrint()
    Au lancement de l'exécution, j'obtiens une erreur :
    Traceback (most recent call last):
    File "D:\Projets\Dev\src\com\company\entities\DriverPrinter.py", line 77, in <module>
    dp.runPrint()
    File "D:\Projets\Dev\src\com\company\entities\DriverPrinter.py", line 67, in runPrint
    SetPrinter(handlerP, 2, printerSettings, 0)
    pywintypes.error: (5, 'SetPrinter', 'Acc\xe8s refus\xe9.')
    Michaël Mary
    Consultant PLM dans une société de conseil toulousaine
    Auditeur CNAM-IPST depuis septembre 2008
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    John F. Woods
    mon cv et mon domaine et mon blog
    Aucune question technique par MP, svp

Discussions similaires

  1. python code imprimante
    Par jojo971 dans le forum Général Python
    Réponses: 3
    Dernier message: 11/01/2011, 21h30
  2. [VB6] [Impression] Savoir si une imprimante est installée
    Par Norm59ttp dans le forum Installation, Déploiement et Sécurité
    Réponses: 2
    Dernier message: 19/12/2002, 09h29
  3. Noms des imprimantes installées
    Par bebeours dans le forum C++Builder
    Réponses: 3
    Dernier message: 06/11/2002, 15h57
  4. [CR8][Delphi6] erreur imprimante non supportée
    Par Sebastien L. dans le forum SDK
    Réponses: 3
    Dernier message: 12/09/2002, 15h42
  5. Connaitre le nom des imprimantes
    Par bastien dans le forum C++Builder
    Réponses: 3
    Dernier message: 10/06/2002, 16h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo