Conversion de PDF via PDFCreator

Ainselia Messages postés 17 Statut Membre -  
barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai fais un script Batch qui me permet bien de convertir des fichiers .docx en pdf, mais lors de le génération du fichier, la fenêtre du pdf s'ouvre, or je souhaiterai qu'il ne se passe rien pour que la conversion se passe en arrière-plan.
J'ai pourtant mis un /NoStart

J'ai aussi une deuxième question, est-il possible de convertir plusieurs types de fichiers? J'ai mis un \*.docx mais y'a-t'il un moyen de faire quelque chose qui marcherait aussi pour tous les Excels, PowerPoint, ect... ?

Je met mon code ici :

pushd "C:\Program Files\PDFCreator\"
FOR %%i in (C:\Users\cth-admin\Documents\*.docx) do PDFCreator.exe /NoStart /PrintFile="%%i"
popd

1 réponse

  1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
     
    Bonjour,

    Installe la version 3 de PDF Creator.

    Le commutateur /NoStart est ancien, il ne fonctionne plus avec les versions récentes.

    Essaie comme ça :

    set PATH=%PATH%;"C:\Program Files\PDFCreator"
    cd /d "%USERPROFILE%\Documents"

    FOR %%i in (*.doc *.docx *.xls *.xlsx *.pptx *.xlsm *.docm *.ppt) do (PDFCreator.exe /PrintFile="%%~i")

    Il faut au préalable configurer ton profil en automatique au lieu d'interactif.


    “L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”
    0
    1. Ainselia Messages postés 17 Statut Membre
       
      C'est bon problème résolu, c'était un paramétrage dans PDFCreator a décocher ("Afficher l'image") tout simplement, merci beaucoup pour la réponse :)

      Après je me retrouve encore avec un autre soucis, j'arrive à convertir plusieurs fichiers de plusieurs types en pdf, j'arrive même à le faire sur des fichiers présents dans de sous-dossiers, par contre mon problème est que ceux-ci se mettent dans un même dossier d'arrivée au lieu de refaire l'arborescence du dossier de départ.

      Exemple :

      pathTestDepart (mon dossier de départ)
      Dossier1 (2 fichiers .doc)
      Dossier2 (2 fichiers .xls)

      pathTestArrivée (mon dossier d'arrivée)
      fichier1.doc
      fichier2.doc
      fichier1.xls
      fichier2.xls

      Alors que je voudrais que cela refasse l'arborescence de base comme ceci :

      pathTestarrivée
      Dossier1 (2 fichiers .doc)
      Dossier2 (2 fichiers .xls)

      Voici mon code :

      pushd "C:\Program Files\PDFCreator"
      FOR /r %pathTestDepart% %%i in (*.doc *xls *txt) do PDFCreator.exe /NoStart /PrintFile="%%i"
      popd

      (Désolée je commence tout juste le Batch donc je ne connais pas grand chose encore, et j'ai du mal a trouver ce que je cherche via des recherches internet...)
      0
      1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930 > Ainselia Messages postés 17 Statut Membre
         
        Ca commence à se compliquer.

        Voilà un exemple :

        @echo off
        Setlocal EnableExtensions EnableDelayedExpansion

        set pathTestDepart=%USERPROFILE%\Documents
        set pathTemporaire=%TEMP%

        set PATH=%PATH%;"C:\Program Files\PDFCreator"
        cd /d %pathTestDepart%

        set destination=%USERPROFILE%\Desktop\PDF

        FOR /F "tokens=*" %%A in ('dir /b /s /a-d "*.odt"') do (

        set file=%%~dpA

        echo. & echo Traitement du fichier : %%~nxA

        set newFilePath=!file:%pathTestDepart%=%destination%!

        call :traitement "%pathTemporaire%" "%%~nA.pdf" "!newFilePath!" "%%~A"

        )

        echo. & pause

        exit /B



        :traitement

        if not exist "%~3" (mkdir "%~3")

        PDFCreator.exe /PrintFile="%~4"

        :check

        if not exist "%~1\%~2" (goto :check)

        ping -n 1 localhost >nul

        move /Y "%~1\%~2" "%~3%~2" || goto :check

        goto :eof

        rem

        Cet exemple fonctionne avec un seul type de fichiers, je te laisse chercher un peu avant de te donner la solution finale.
        0