2010-02-09 6 views
3

utilise ghostscript pour créer un fichier pdf à partir du fichier postscript. Mon fichier PS, n'a pas d'instructions d'orientation, donc quand je veux créer un fichier PDF paysage, j'utilise ghostscript pour faire pivoter la page. Le problème est que ghostscript ne fait tourner que la première page, et quand mon fichier pdf est plus d'une page, les autres ne tournent pas correctement. Voici la commande que j'utilise:Problème étrange, avec des fichiers ghostscript et pdf

cat $psinput | gs -sPAPERSIZE=a4 -sDEVICE=pdfwrite -sOuputFile="/tmp/pdf" \ 
     -dAutoRotatePages="/None" -c "<< /Orientation 3 >> setpagedevice" \ 
     90 rotate 0 -595 translate -dNOPAUSE -dEPSCrop -f - -c -quit 

Quelqu'un a-t-il une idée pour corriger la situation?

+1

@kofucii: '-dAutoRotatePages ="/None "' peut être sans guillemets: '-dAutoRotatePages =/None'. Idem pour '-sOutputFile =/tmp/pdf'. Je ne sais pas si cela peut vous causer du chagrin ou est inoffensif, cependant. - ** Cependant, la construction '-c'-est définitivement mal placée et mal citée! ** Elle devrait être à la toute fin, juste avant l'instruction de données d'entrée' -f -', comme ceci: '.. -dNOPAUSE -dEPSCrop -c "<> setpagedevice 90 rotate 0 -595 translate" -f - -c quit' –

Répondre

3

Sans voir votre réel $psinput il est difficile de donner des conseils précis. Votre psinput de $, à venir via stdin à Ghostscript, pourrait contenir plusieurs fichiers PS ... Avez-vous essayé de jouer avec une de ces options

  • -dOrient1=true
  • -dOrient1=false

dans votre commandline? , Il semble à moi aussi comme vous devriez mettre votre 90 0 -595 rotate traduire commande dans les citations qui vont avec -c, puis placez l'entrée (-f -) jusqu'à la fin du traitement comme ceci:

  • -c "<</Orientation 3>> setpagedevice 90 rotate 0 -595 translate" -f - -c quit

ont également vous essayé d'utiliser

  • -c ".setpdfwrite <<//AutoRotatePages /PageByPage>> setdistillerparams" ou
  • -c ".setpdfwrite <<//AutoRotatePages /All>> setdistillerparams" ou
  • -c ".setpdfwrite <<//AutoRotatePages /None>> setdistillerparams"

sur votre ligne de commande (avec ou sans votre code de rotation d'origine)?

0

Si vous ne devez pas utiliser ghostscript pour effectuer la rotation, vous pouvez probablement utiliser pdftk ou impose à la place.

Questions connexes