Bonjour,
Je me retrouve face à un problème. Je ne suis pas un grand expert de python mais je dois avouer être perdu.
J'ai fait un petit programme avec PyQt pour compresser des fichier PDF via GhostScript.exe (qui fonctionne normalement en ligne de commande).
Mon programme permet donc d'ouvrir des fichiers PDF dans un QlistWidget puis en fonction des paramètres choisis (compression) de les compresser grâce à GhostScript.
Cependant, pour pouvoir diffuser mon programme à mes collègues je souhaitais rajouter un bouton pour récupérer le chemin du GhostScript.exe. (ce qui fonctionne)
Le problème c'est qu'avec le chemin récupérer je n'arrive pas à faire fonctionner mon script :
Dans ce cas de figure la fonction ne se lance pas.
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 def lanceCompression(self): if self.label_2.text() == "GhostScript chargé !": optionCompression = self.comboBox.currentText() if optionCompression == "Compression maximale": valeurCompression = "screen" elif optionCompression == "Compression médium": valeurCompression = "ebook" else : valeurCompression = "printer" items = [] for index in xrange(self.listWidget.count()): items.append(self.listWidget.item(index)) for element in items: print(element.text()) new_name = element.text() new_name = new_name.replace(".pdf", " [COMPRESSE].pdf") myGhostScript = self.label_3.text() test = ''+myGhostScript + ' -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dPDFSETTINGS=/'+valeurCompression+' -sOUTPUTFILE="'+ new_name +'" -f "'+ element.text()+'"' p = subprocess.Popen(r'start cmd /c ' + test, shell=True) p.wait()
Par contre mon programme de départ avec un chemin de GhostScript préféfini fonctionne :
Est ce que quelqu'un aurait une idée ou une piste pour faire fonctionner mon script ?
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 def lanceCompression(self): optionCompression = self.comboBox.currentText() if optionCompression == "Compression maximale": valeurCompression = "screen" elif optionCompression == "Compression médium": valeurCompression = "ebook" else : valeurCompression = "printer" items = [] for index in xrange(self.listWidget.count()): items.append(self.listWidget.item(index)) for element in items: print(element.text()) new_name = element.text() new_name = new_name.replace(".pdf", " [COMPRESSE].pdf") test = 'C:/Users/nomUtilisateur/Documents/Gratuiciels/Ghostscript/bin/gswin64c.exe -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dPDFSETTINGS=/'+valeurCompression+' -sOUTPUTFILE="'+ new_name +'" -f "'+ element.text()+'"' p = subprocess.Popen(r'start cmd /c ' + test, shell=True) p.wait()
Merci par avance
Partager