2010-11-17 37 views
1

J'ai installé python-ghostscript sous Linux. Je peux lancer des gs à partir de la ligne de commande et cela va créer un fichier jpg à partir d'un pdf. Voici le code qui fonctionne:Syntaxe pour ghostscript en python

~$ gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg -sOutputFile=/home/user/output.jpg /home/user/downloads/test.pdf 

Je suis en train de lancer ce processus en Python, mais je ne peux pas obtenir la syntaxe. Je n'ai pas d'erreurs, mais rien ne se passe. J'ai essayé de lire sur Popen/subprocess, mais je ne comprends pas pourquoi le processus gs que j'appelle ne fonctionne pas et crée le fichier.

output = Popen(['gs','-dSAFER','-dNOPAUSE','-dBATCH','-sDEVICE=jpeg','-sOutputFile=/home/user/output2.jpg /home/user/downloads/test.pdf']) 

Répondre

1

Pour tester ce qui se passe mal, vous pourriez redirigez la sortie standard comme ceci:

import sys, subprocess 

args = ['gs','-dSAFER','-dNOPAUSE','-dBATCH','-sDEVICE=jpeg','-sOutputFile=/home/user/output2.jpg /home/user/downloads/test.pdf'] 
output = Popen(args, stdout = sys.stdout, stderr = sys.stderr) 
+0

merci, j'ai essayé et il rédigea >> GPL Ghostscript 8.71 ... plus quelques informations de copyright. La touche Entrée me ramène à l'invite Python. Aucun fichier créé. – Robin

+0

@Robin: voir ma réponse; Essayez de l'exécuter sans le nom de fichier et c'est ce que vous obtiendrez. –

1

cela a fonctionné (python):

os.system('gs -dSAFER -dNOPAUSE -dQUIET -dBATCH -sDEVICE=jpeg -sOUTPUTFILE=/home/user/output2.jpg /home/user/Downloads/test.pdf') 
2

Vos deux derniers paramètres sont réunis, donc ne peut pas travailler; c'est en fait la même chose que de courir dans votre terminal gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg '-sOutputFile=/home/user/output.jpg /home/user/downloads/test.pdf', ce qui ne vous semble pas fonctionner.

séparé ces deux derniers et il devrait fonctionner:

output = Popen(['gs', '-dSAFER', '-dNOPAUSE', '-dBATCH', '-sDEVICE=jpeg', '-sOutputFile=/home/user/output2.jpg', '/home/user/downloads/test.pdf'])