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

Bibliothèques tierces Python Discussion :

Ghostscript, PDF vers Jpeg - erreur fatal


Sujet :

Bibliothèques tierces 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, PDF vers Jpeg - erreur fatal
    Bonjour,

    Après avoir mise en place la conversion de fichier de PDF en Jpeg, sous Python 2.7, nous avons souhaiter profiter d'une migration de nos serveurs pour 'enfin' passer à python3. Les premiers résultats sont très concluants, notamment sur la vitesse d’exécution.

    Mais je bug sur Ghostscript. Installation via Anaconda3.
    1. Installation de Ghosscript 9.53.3; https://www.ghostscript.com/download/gsdnld.html
    2. Installation du module:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <base> conda install ghostscript
    A ce stade, le module reste introuvable lors de son import "import ghostscript", malgré qu'il soit bien affiché comme 'installé' dans l'interface graphique d'Anaconda. Je l'ai réinstallé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pip install ghostscript
    là "import ghostscript" fonctionne.

    3.Je reprend mon code python2, je corrige la syntaxe en python3, je test. Là, j'ai une 'erreur fatale' que je ne comprend pas et dont toutes les pistes trouvées sur le net ne m'aide malheureusement pas.

    Mon code:
    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
    import ghostscript,locale
     
    #------definition fonction----
    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]
        print (args)
        GS = ghostscript.Ghostscript(*args)
        GS.exit()
     
        # ghostscript.Ghostscript(*args)1 # solution 2 => erreur fatale aussi
     
        # with ghostscript.Ghostscript(*args) as g:
        #         ghostscript.cleanup()                   # solution 3 => erreur fatale aussi
     
     
    #---test---
    pdf_input_path =r"L:\...\ouverturePDF.pdf"
    jpeg_output_path =r"L:\...\test IMAGE.jpg"
     
    pdf2jpeg(pdf_input_path, jpeg_output_path)
    le message d'erreur:
    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
    Traceback (most recent call last):
     
      File "\\srv_fichiers\.....\Module_py3\Mon_ghostscript_temp.py", line 64, in <module>
        pdf2jpeg(pdf_input_path, jpeg_output_path)
     
      File "\\srv_fichiers\.....\Module_py3\Mon_ghostscript_temp.py", line 48, in pdf2jpeg
        GS = ghostscript.Ghostscript(*args)
     
      File "C:\ProgramData\Anaconda3\lib\site-packages\ghostscript\__init__.py", line 171, in Ghostscript
        return __Ghostscript(__instance__, args,
     
      File "C:\ProgramData\Anaconda3\lib\site-packages\ghostscript\__init__.py", line 74, in __init__
        rc = gs.init_with_args(instance, args)
     
      File "C:\ProgramData\Anaconda3\lib\site-packages\ghostscript\_gsprint.py", line 273, in init_with_args
        raise GhostscriptError(rc)
     
    GhostscriptError: Fatal
    quelqu'un as-t-il déjà rencontré cette erreur (en python 3), svp?
    Merci de votre aide.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    args = ["pef2jpeg",
    Ce ne serait pas plutôt "pdf2jpeg" ?

  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
    Merci.

    Dans ma version en Python 2 cela ne pose aucun souci... Le commentaire que je trouve sur pas de forum # actual value doesn't matter indique que cet argument est normalement sans importance. Mais visiblement il est important

    Sous python 3, ce premier argument doit être le même nom que la définition, visiblement, non? Du moins je le comprend comme cela.

    Sinon, ce matin je viens de voir que certain mettent le nom du fichier en 1er argument, ça passe aussi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    def pdf2jpeg(pdf_input_path, jpeg_output_path):
        fichier=os.path.basename(pdf_input_path)
        args = [fichier,
                "-dNOPAUSE",
                "-sDEVICE=jpeg",
                "-r300", #dpi
                "-sOutputFile=" + jpeg_output_path,
                pdf_input_path]
     
        encoding=locale.getpreferredencoding()
        args=[a.encode(encoding) for a in args]
        print (args)
        GS = ghostscript.Ghostscript(*args)
        GS.exit()
    Merci VinsS pour ce regard extérieur.

  4. #4
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Par curiosité je viens d'essayer. J'avais déjà ghostscript et j'ai installé l'interface Python avec pip (Python 3.7). J'ai modifié seulement les adresses disque et... ça marche! J'aurais au moins appris quelque chose...
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

Discussions similaires

  1. [Python 2.X] ghostscript, conversion PDF vers Jpg, libérer le 1er fichier image et faire le suivant
    Par little_kevin dans le forum Général Python
    Réponses: 2
    Dernier message: 07/07/2020, 10h46
  2. Réponses: 3
    Dernier message: 21/11/2014, 07h46
  3. DLL conversion pdf vers image (Jpeg ou png)
    Par mickmix69 dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 03/12/2012, 13h08
  4. erreurs fatal error C1010 dans visual c++ 6.0
    Par screeminelle dans le forum MFC
    Réponses: 2
    Dernier message: 12/10/2005, 13h30
  5. Réponses: 6
    Dernier message: 15/01/2005, 23h34

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