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 :

Impression d'un fichier PDF depuis Python


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Amateur
    Inscrit en
    Février 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Amateur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Février 2011
    Messages : 9
    Points : 10
    Points
    10
    Par défaut Impression d'un fichier PDF depuis Python
    Bonjour,

    Excusez-moi de vous demander pardon, mais je ne suis vraiment pas un pro en Python et je recherche une solution portable pour imprimer un fichier pdf existant.

    La seule solution que j'ai pu trouver consiste en l'utilisation du shell win32. WxPython propose également une solution, mais basée sur un contrôle ActiveX et nécessitant qu' Adobe Reader soit installé (je hais reader).

    Bref, pour la portabilité, tin tin ....

    Quelqu'un connait-il une bibliothèque magique ? (A vot' bon coeur ! )

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Points : 1 384
    Points
    1 384
    Par défaut
    Sous Linux, tu dois pouvoir utiliser subprocess.Popen (ou os.system) pour appeler la commande 'lpr'. Cela devrait marcher sous OS X aussi. Et tu sembles déjà avoir une solution pour Windows.
    Pour rendre cela portable il ne reste plus qu'à emballer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import sys
    if sys.platform == "win32":
        # windows code
    else:
        # 'lpr' code
    Il semblerait que sys.platform renvoie 'win32' même en Python 64 bits sous Windows.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Amateur
    Inscrit en
    Février 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Amateur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Février 2011
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Merci beaucoup pour cette réponse.

    Cela confirme que le processus d'impression est très différent entre Windows et les autres systèmes d'exploitation et qu'il est préférable de traiter chaque système au cas par cas (j'aime bien enfoncer les portes ouvertes ...)

    J'espérais pourvoir charger un pdf dans un DC de wxPython, mais cela semble impossible. De plus le DC semble être un concept spécifique à Windows , donc ça n'apporte pas de solution au problème.

    Merci encore.

  4. #4
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonsoir,

    Pour Windows j'aurais penser à win32print.

    @+

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Points : 1 384
    Points
    1 384
    Par défaut
    Pour Windows, voir ici: http://timgolden.me.uk/python/win32_how_do_i/print.html
    En particulier, le dernier exemple.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Amateur
    Inscrit en
    Février 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Amateur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Février 2011
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    J'ai bien essayé par win32print (très intéressant et plus puissant au final que wxPython pour les impressions) mais je me retrouve avec le même problème de chargement du PDF dans un DC.
    On doit pouvoir néanmoins le contourner en transformant le PDF en fichier Postcript, vu que le DC win32print a une méthode pour charger ces derniers. Je ne suis pas allé plus loin dans la manip (je crois qu'on peut faire ça avec GhostScript).

    Au final, j'utilise le shell win32, comme indiqué dans l'excellent exemple de dividee.

    Merci à vous deux pour ces réponses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment créer un fichier PDF depuis 4D.
    Par LUCIEN2 dans le forum 4D
    Réponses: 2
    Dernier message: 03/05/2007, 11h08
  2. Impression d'un fichier PDF
    Par Orionmel dans le forum VB.NET
    Réponses: 3
    Dernier message: 28/04/2007, 22h51
  3. impression d'un fichier PDF
    Par rogger dans le forum Access
    Réponses: 6
    Dernier message: 01/01/2006, 17h31
  4. Impression d'un fichier Word depuis un service NT
    Par Gilius dans le forum Windows
    Réponses: 1
    Dernier message: 23/12/2005, 13h41
  5. [Stratégie] Afficher des fichiers PDF depuis une base Oracle
    Par tetram51 dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 20/12/2005, 09h15

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