IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Ghostscript Conversion PS 2 PDF


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2022
    Messages : 5
    Par défaut Ghostscript Conversion PS 2 PDF
    Bonjour à tous,

    Je suis sur un projet en python 2.7. (je ne peux pas passer en 3 pour le moment).
    J'essaye de transformer un fichier .PS en .PDF avec le module intégrer GhostScript v 0.6.

    J'ai bien la conversion, mais mes fichiers sont illisibles avec acrobat.
    Y a t'il une astuce pour changer ça svp ?

    Voilà mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def ps2pdf(Dir_input_path, Fil_input_path):	
    	args = ["ps2pdf", # actual value doesn't matter
                "-sDEVICE=pdfwrite",	#Type de conversion ici en txt
    			"-sOutputFile=" + Dir_input_path + Fil_input_path + ".pdf",
                Dir_input_path + Fil_input_path]
    J'ai une question subsidiaire sur une transformation d'un .ps en .txt.
    J'essaye de faire tourner les pages. J'ai essayé d'intégrer la balise suivante, -c "<</Orientation 3>> mais il refuse systématiquement de l'executer.

    Voilà mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    def ps2txt(Dir_input_path, Fil_input_path):	
    	args = ["ps2txt", # actual value doesn't matter
                "-dBATCH",				#
    			"-dNOPAUSE",			#
    			"-dNOPROMPT",			#
    			"-dSAFER",				#
    			"-dFIXEDMEDIA"			#
    			"-dFirstPage=3",        #Démarrage de la conversion à la page 3
                "-sDEVICE=txtwrite",	#Type de conversion ici en txt
    			"-sOutputFile=" + Dir_input_path + Fil_input_path + ".txt",
                Dir_input_path + Fil_input_path]
     
    	with ghostscript.Ghostscript(*args) as g:
    		ghostscript.cleanup()
    Avez vous une idée de comment faire svp ?

    Merci d'avance,
    C'est assez urgent et je m'arrache les cheveux pour finir dans les temps.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Votre code se réduit à lancer la conversion d'un postscript à un PDF via le programme externe ps2pdf.
    Les paramètres à passer à ce programme pour obtenir ce que vous voulez sont à rechercher dans la documentation de ce programme là et n'a rien à voir avec la programmation Python (et à mettre au point en lançant le programme depuis un terminal - sans python).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2022
    Messages : 5
    Par défaut
    Bonjour,

    Merci de cette réponse.

    Je code sur python, mais j'ai pas mal de choses à apprendre.
    J'ai installé via Pip le module Ghostscript suivant :

    https://pypi.org/project/ghostscript/0.6/

    Et je fais un import ghostscript en début de programme.

    En transférant les variables de ghostscript dans une variable python (arg) techniquement, je lance un exécutable hors python depuis python.
    Du coup, quelle est l'utilité du ghostscript 0.6 ?

    Mais du coup, je comprends encore moins pourquoi, lorsque je lance la ligne de commande dans une fenêtre DOS ça fonctionne,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Progra~1\gs\gs9.55.0\bin\gswin64c.exe -dPDFA -dbase -dBATCH -dNOPAUSE -dNoSafer -dQUIET -sDEVICE=pdfwrite -dFirstPage=3  -sOutputFile="c:\ProdGil\Out\LOALE21ZZ.ICDFQ400.V00.pdf" -dEPSCrop -c "<</Orientation 3>> setpagedevice" -f "c:\ProdGil\LOALE21ZZ.ICDFQ400.V00" -c quit

    et pourquoi pas directement dans le script. J'ai testé de mettre les " entre ', comme ça '"', et directement des ' autour de -c "<</Orientation 3>> setpagedevice".

    Idem, pourquoi mon fichier PDF est corrompu ?

    Sinon, quelles autres solutions de type Python pur, pour faire ce genre d'opération svp ?

    Merci d'avance.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par MBARON76 Voir le message
    Du coup, quelle est l'utilité du ghostscript 0.6 ?
    Vous avez récupéré cette bibliothèque... Ce qui suppose que vous avez pris le temps de l'évaluer par rapport à d'autres possibilités.

    Citation Envoyé par MBARON76 Voir le message
    Mais du coup, je comprends encore moins pourquoi, lorsque je lance la ligne de commande dans une fenêtre DOS ça fonctionne
    Lancer cette commande là via subprocess est une interface basique qui permet de l'utiliser depuis un programme Python.... Et elle fonctionne pour nombre de programmes externes.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2022
    Messages : 5
    Par défaut
    L'idée c'était surtout d'intégrer le code directement en lui passant les variables des différents fichiers à transformer dans le script plutôt que de recréer un .cmd et de définir des variables d'environnement.

    J'ai testé aussi avec un subprocess qui permet de lancer des commandes de manière asynchrone.
    Cela ne fonctionne pas beaucoup mieux.

    Tout cela semble assez évident pour vous, mais du haut de ma petite expérience, ça l'est beaucoup moins.

    Merci d'avoir pris du temps pour me répondre.

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par MBARON76 Voir le message
    J'ai testé aussi avec un subprocess qui permet de lancer des commandes de manière asynchrone.
    La commande passée au terminal est une chaîne de caractères qu'on doit pouvoir passer à subprocess.call et avoir le même résultat.

    Après si on veut avoir quelques paramètres dynamiques comme le nom du fichier d'entrée ou de sortie, c'est juste une chaînes de caractère à construire à partir/avec des variables.

    Citation Envoyé par MBARON76 Voir le message
    Tout cela semble assez évident pour vous, mais du haut de ma petite expérience, ça l'est beaucoup moins.
    fabriquer des chaînes de caractères avec des bouts issus de variables est assez basique. Si vous ne maîtrisez pas, je comprends que ça paraisse "compliqué" mais vous ne pouvez pas partir à programmer (faire autre chose que des exercices proposés dans un tuto) sans maîtriser cela (et les facéties concernant les chemins d'accès aux fichiers).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [Python 2.X] ghostscript, conversion PDF vers Jpg, libérer le 1er fichier image et faire le suivant
    Par little_kevin dans le forum Général Python
    Réponses: 2
    Dernier message: 07/07/2020, 10h46
  2. Réponses: 1
    Dernier message: 15/01/2017, 09h24
  3. Problème conversion .rep en .pdf
    Par ruru9 dans le forum Deski
    Réponses: 9
    Dernier message: 07/12/2006, 16h48
  4. [FOP] conversion XML en PDF sous JBuilder10
    Par belassel_z dans le forum APIs
    Réponses: 1
    Dernier message: 09/06/2006, 13h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo