Bonsoir,

ci-dessous, version "améliorée" qui permet de gérer les types de fichiers spécifiquement par le biais d'un appel de sous-programme. Recopiez et modifiez les lignes CALL :convert en fonction de l'extension à gérer.

J'ai également modifié les instructions CD en CD /D afin de prendre en compte les cas où le répertoire source n'est pas sur le même disque que le répertoire courant.

Les autres remarques du message précédent restent d'actualité.

8< ----------------------------------------------------------------
@ECHO OFF
CLS
:: ---------------------------------
:: odf2pdf.cmd
:: conversion de fichiers ODF en PDF
:: version 1.10 du 11/11/2015 - JFN
:: ---------------------------------
:: utilise LibreOffice
:: sous windows XP ou Win7
:: ---------------------------------

SETLOCAL

:: quelle version de windows ? 5.1 = win xp, sinon Win7
:: => ERRORLEVEL = 0 -> WinXP sinon -> Win7
:: Dans cet exemple on utilise LibO v5 sous WinXP
:: et LibO v4 sous Win7 -> modifiez selon le contexte !
VER | FIND "5.1" > NUL
IF %ERRORLEVEL%==0 (
  SET _Bureau=Bureau
  SET _LibOVer=5
  SET _Prog=%PROGRAMFILES%
) ELSE (
  SET _Bureau=Desktop
  SET _LibOVer=4
  SET _Prog=%PROGRAMFILES(X86)%
)

:: on reconstitue les chemins à partir des bribes obtenues ci-dessus
:: à modifier si besoin
SET _ConvertDir=%HOMEDRIVE%%HOMEPATH%\%_Bureau%\a convertir
SET _TargetDir=%HOMEDRIVE%%HOMEPATH%\%_Bureau%\convertis
SET _LibOexe="%_Prog%\LibreOffice %_LibOVer%\program\soffice.exe"

:: mémorisation du répertoire courant
SET _OldDir=%CD%

ECHO.
ECHO 1. Forcement de la fermeture de LibreOffice

taskkill /F /IM soffice.bin > NUL 2>&1

ECHO.
ECHO 2. Creation de %_TargetDir%

MKDIR "%_TargetDir%" > NUL 2>&1

ECHO.
ECHO 3. Conversion des fichiers
ECHO    vers %_TargetDir%

:: on change pour le répertoire source à cause de pbs
:: de gestion des guillemets dans IN()
CD /D "%_ConvertDir%"

:: traitement des fichiers dans le répertoire courant
:: à modifier pour tenir compte des types de fichiers à traiter
CALL :convert *.odt
CALL :convert *.ods
CALL :convert *.odg
CALL :convert *.odp
CALL :convert *.doc
CALL :convert *.xls

:: retour au répertoire de départ
CD /D "%_OldDir%"
ENDLOCAL
GOTO :EOF

:: -----------------------------------------------------
:: sous-programme de conversion
:convert
ECHO    %1
FOR %%G IN (%1) DO (
    ECHO    %%G
    %_LibOexe% -headless -convert-to pdf -outdir "%_TargetDir%" "%%G"
)

GOTO :EOF

:: fin de fichier -------------------
---------------------------------------------------------------- >8

Bonne fin de week-end ;)
--
Jean-Francois Nifenecker, Bordeaux

--
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés

Répondre à