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 :

ghostscript, conversion PDF vers Jpg, libérer le 1er fichier image et faire le suivant


Sujet :

Python

  1. #1
    En attente de confirmation mail
    Homme Profil pro
    Géomaticien (plutôt sur Arcgis...)
    Inscrit en
    Juillet 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Géomaticien (plutôt sur Arcgis...)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2013
    Messages : 49
    Points : 29
    Points
    29
    Par défaut ghostscript, conversion PDF vers Jpg, libérer le 1er fichier image et faire le suivant
    Bonjour,

    Je suis sous python 2.7, car cela m'est imposé par l'éditeur de mon logiciel principal.
    Puis ghostscript 9.52.

    Je prévois d'utiliser ghostscript, pour convertir des PDF en Jpg.
    j'utilise le code suivant qui fonctionne bien;
    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
    def pdf2jpeg(pdf_input_path, jpeg_output_path):
        args = ["pef2jpeg", # actual value doesn't matter
                "-dNOPAUSE",
                "-sDEVICE=jpeg",
                "-r300", #dpi
                "-sOutputFile=" + jpeg_output_path,
                pdf_input_path]
     
        encoding = locale.getpreferredencoding()
        args = [a.encode(encoding) for a in args]
     
        ghostscript.Ghostscript(*args)
     
    pdf2jpeg( r"C:\temp\MonFichier.pdf",
        r"C:\temp\MonFichier.jpg")
    Mais ce que je m'aperçois, c'est que tant que la fenêtre python n'est pas fermée, le jpg en sortie n'est pas libéré (l'explorateur windows affiche 0ko).
    Hors, je souhaite parcourir des répertoire, pour exporter les jpg à la chaine. Du coup si je lance deux fois ma def à la suite sur 2 pdf différents, ça plante...
    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    def pdf2jpeg ():
    [...]
     
    #lecture de mon répertoire => liste de fichiers
    for fichier in liste_fichier:
     #determine l'extension
    [...]
        if extension == "pdf":
        pdf2jpeg( r"Fichier.pdf",
        r"Fichier.jpg")
        del fichier
    cela passe, pour mon premier fichier. Mais arrivé sur le second, j'ai une erreur fatal de Ghostscript, car il n'a toujours pas fermé le 1er jpg exporté...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      File "C:\Python27\ArcGIS10.7\lib\site-packages\ghostscript\__init__.py", line 174, in Ghostscript
        stderr=kw.get('stderr', None))
      File "C:\Python27\ArcGIS10.7\lib\site-packages\ghostscript\__init__.py", line 74, in __init__
        rc = gs.init_with_args(instance, args)
      File "C:\Python27\ArcGIS10.7\lib\site-packages\ghostscript\_gsprint.py", line 273, in init_with_args
        raise GhostscriptError(rc)
    GhostscriptError: Fatal
    Comment puis-je lui faire libérer le premier fichier image, pour pouvoir traiter le second PDF, svp?

  2. #2
    En attente de confirmation mail
    Homme Profil pro
    Géomaticien (plutôt sur Arcgis...)
    Inscrit en
    Juillet 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Géomaticien (plutôt sur Arcgis...)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2013
    Messages : 49
    Points : 29
    Points
    29
    Par défaut
    Finalement j'ai trouvé ici ; https://stackoverflow.com/questions/...multiple-files

    soit la ligne 12;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ghostscript.Ghostscript(*args)
    remplacée par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    with ghostscript.Ghostscript(*args) as g:
                ghostscript.cleanup()
    voilà si cela peut aider...

  3. #3
    En attente de confirmation mail
    Homme Profil pro
    Géomaticien (plutôt sur Arcgis...)
    Inscrit en
    Juillet 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Géomaticien (plutôt sur Arcgis...)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2013
    Messages : 49
    Points : 29
    Points
    29
    Par défaut
    Bonjour,

    ma solution n'est finalement pas tout à fait la bonne...
    A priori "ghostscript.cleanup()" libére le fichier jpeg créé en mémoire, ce qui permet de créer les jpeg suivants, mais tous les jpeg finaux restent bloqués dans le système de fichier. Windows affiche toujours 0ko en taille de fichier et aucune manip n'est possible dessus (lecture, déplacement...etc).


    une commande os.exit(), à la fin du code ne suffit pas. Par contre un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    from os import system
    system('taskkill /F /IM "python.exe" ')
    ferme bien le processus sous windows et libère les jpeg. Mais je ne trouve vraiment pas cela propre. Surtout si d’autres processus python sont en cours, ils seront tués également

    Quelqu'un as-t'il une piste svp? Merci

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/11/2008, 14h12
  2. Conversion PDF to JPG
    Par SkAnker dans le forum Documents
    Réponses: 6
    Dernier message: 16/07/2007, 11h45
  3. [PDFLib] Conversion PDF vers HTML
    Par soccersoft dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 14/07/2007, 13h05
  4. Pb de conversion emf vers jpg de grandes images
    Par B-Technix dans le forum Delphi
    Réponses: 9
    Dernier message: 18/06/2007, 23h07
  5. conversion pdf en (jpg, png, etc)
    Par djibril dans le forum Modules
    Réponses: 1
    Dernier message: 11/07/2006, 18h31

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