Ghostscript: “erreur Irrécupérable: undefinedfilename dans setpagedevice”
Je suis en train de compresser des fichiers pdf en utilisant ghostscript comme ceci:
gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH -sOutputfile=output.pdf input.pdf
Je l'ai fait avec succès dans le passé, mais pour une raison que maintenant elle ne fonctionne pas. J'obtiens l'erreur suivante:
GPL Ghostscript 9.15 (2014-09-22)
Copyright (C) 2014 Artifex Software, Inc. All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
**** Unable to open the initial device, quitting.
Unrecoverable error: undefinedfilename in setpagedevice
Operand stack:
true --nostringval-- --nostringval-- --nostringval-- --nostringval-- --nostringval-- --nostringval-- --nostringval-- --nostringval--
[Edit: j'ai corrigé la faute de frappe de -SOutputFile à -sOutputFile pour éviter ce hareng rouge. (Mais qu'est-ce que certains des commentaires/réponses faites allusion.)]
-SOutputFile est incorrecte, il doit être -sOutputFile. Parce que vous n'avez pas spécifié un fichier de sortie, vous obtenez une undefinedfilename. Pas trop surprenant 🙂 je vous recommande fortement de ne pas utiliser-dPDFSETTINGS mais au lieu réglez les commutateurs que vous voulez, individuellement.
Désolé pour la faute de frappe. Malheureusement, même avec la syntaxe correcte (-sOutputFile) j'ai toujours exactement le même message d'erreur.
Désolé pour la faute de frappe. Malheureusement, même avec la syntaxe correcte (-sOutputFile) j'ai toujours exactement le même message d'erreur.
OriginalL'auteur emacsomancer | 2014-12-13
Vous devez vous connecter pour publier un commentaire.
Cela a fonctionné pour moi...
Édité par -kp-
De l'énoncer explicitement (et de ré-itérer ce KenS a écrit dans son commentaire):
-SOutputFile=...
ne fonctionne PAS-sOutputFile=...
est la syntaxe correcte. (Ghostscript paramètres de ligne de commande sont sensibles à la casse!)Aussi, avec les récentes versions de Ghostscript, vous pouvez maintenant utiliser
-o output.pdf
au lieu de la version longue.-o ...
également automatiquement et implicitement définit la-dBATCH -dNOPAUSE
paramètres. Donc le chemin le plus court à écrire cette commande est:Bien que lorsque j'utilise l'exemple à la fin de votre post (avec les noms de fichier, bien sûr), il fonctionne. Peut-être dans les dernières versions de
gs
-sOutputFile
ne fonctionne plus?Non, OutputFile continue à fonctionner parfaitement bien. Essayez de supprimer le PDFSETTINGS et CompatibilityLevel. En bref, essayer de réduire la portée du problème jusqu'à ce que vous découvrir ce qui provoque l'erreur. Il semble que vous êtes l'obtention de l'erreur due à l'utilisation de ebook. Si oui, alors au lieu de définir la configuration la même que les paramètres prédéfinis, puis de les supprimer un par un jusqu'à ce que vous voyez le problème.
J'ai essayé de supprimer divers autres morceaux, mais rien ne fonctionne aussi longtemps que j'ai
-sOutputFile=output.pdf
. Dès que j'ai passer-o output.pdf
, il fonctionne.Eh bien, je qui fonctionne, je l'utilise ici tout le temps. Je vois que vous êtes sur Linux, avez-vous récupéré les fichiers binaires à partir d'une distribution, ou construire vous-même ?
OriginalL'auteur Spock
Il pourrait être que vous avez simplement mélangé de votre entrée et de sortie des noms de fichiers. Je l'ai fait avant et j'ai obtenu le même message. Il est facile à faire, puisque le fichier de sortie de commande arrive avant que le fichier d'entrée.
OriginalL'auteur Delyle