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?