Bonsoir,

pour ceux que ça pourra intéresser, voici le script complet, testé sous WinXP avec des fichiers .odt (devrait fonctionner sous Win7 ; peux pas tester aujourd'hui).

Tests complémentaires à faire : divers types de fichiers bureautiques, dont MSOffice.

Le script est à recopier dans un fichier texte nommé xxxx.cmd (moi je l'ai appelé odf2pdf.cmd)

Principe :
-- sur le Bureau Windows, deux répertoires "a convertir" et "convertis"
(ces répertoires peuvent être placés ailleurs ou nommés différemment, il suffira de modifier les deux variables _ConvertDir et _TargetDir en conséquence). -- le convertisseur cherche les fichiers à convertir dans "a convertir" et dépose les fichiers convertis dans "convertis" (créé lorsqu'il n'existe pas) -- la version de LibO utilisé est à spécifier dans la variable _LibOVer. Mes tests se sont faits avec la v5 sous XP. J'ai mis 4 pour Win7 puisque c'est ce que j'utilise au taf...


ATTENTION !

1. Le convertisseur essaie de convertir *tous* les fichiers qu'il trouve... Attention aux surprises pour des formats non supportés. Pour limiter les risques, on pourrait recopier plusieurs fois la boucle FOR en spécifiant à chaque fois l'extension à traiter.
Ex : FOR %%G IN (*.odt) DO ( etc.
puis FOR %%G IN (*.ods) DO ( etc.
etc.

2. Si LibO s'exécute au moment de la conversion, il est refermé d'autorité ! Danger pour les fichiers en cours d'édition.



8< ----------------------------------------------------------------

@ECHO OFF
CLS
:: ---------------------------------
:: odf2pdf.cmd
:: conversion de fichiers ODF en PDF
:: version 1.0 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 la clause IN()
CD "%_ConvertDir%"

:: traitement de tous les fichiers dans le répertoire courant
FOR %%G IN (*.*) DO (
    ECHO    %%G
    %_LibOexe% -headless -convert-to pdf -outdir "%_TargetDir%" "%%G"
)

:: retour au répertoire de départ
CD "%_OldDir%"
ENDLOCAL

:: fin de fichier -------------------

---------------------------------------------------------------- >8

Bonne fin de journée,
--
Jean-Francois Nifenecker, Bordeaux

--
Envoyez un mail à [email protected] 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 à