[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [HS ?] Conversion des pièces jointes MS-W >ODF



Bonsoir

Je transforme assez souvent des documents calc vers excel ou pdf par le
script ci joint qui fait appel a des macros ci joint aussi.
Par contre, si tu trouve le moyen d'extraire les attachements puis les
convertir en ODF et ensuite les encapsuler à nouveau dans le message je
suis preneur.

Bonne chance

Guy

Le script :
=======
OOPATH=/usr/bin
OOCALC=oocalc
OO=$OOPATH/$OOCALC
sxcFile=$1

# Pour lancer ce script il faut lui donner le chemin complet du fichier
a traiter
# Exemple : ./ooosxc2xls.sh /home/guy/Gentab/test/gentab.sxc

$OO -invisible "macro:///GuyMacros.Conv.SxcToXls($sxcFile)"
$OO -invisible "macro:///GuyMacros.Conv.SxcToPdf($sxcFile)

les macros :
========
Sub Main()
   sxcFile = "/home/guy/Gentab/test/gentab.sxc"
   SxcToXls(sxcFile)
   SxcToPdf(sxcFile)
End Sub

Sub SxcToXls(srcFile as string)
    Dim oDoc as Object
    
    srcUrl = ConvertToUrl(srcFile)
    oDoc = StarDesktop.loadComponentFromURL(srcUrl, "_blank", 0,
array(MakePropertyValue("Hidden",true)))
    
    sz = Len(srcFile) - 4
    dstXls = Left(srcFile, sz) + ".xls"
    dstUrl = ConvertToURL(dstXls)
    oDoc.storeToURL(dstUrl, Array(MakePropertyValue("FilterName", "MS
Excel 97"))
    
    oDoc.close(True)
End Sub
 
Sub SxcToPdf(srcFile as string)
    Dim oDoc as Object
    
    srcUrl = ConvertToUrl(srcFile)
    oDoc = StarDesktop.loadComponentFromURL(srcUrl, "_blank", 0,
array(MakePropertyValue("Hidden",true)))
    
    sz = Len(srcFile) - 4
    dstPdf = Left(srcFile, sz) + ".pdf"
    dstUrl = ConvertToURL(dstPdf)
    oDoc.storeToURL(dstUrl, Array(MakePropertyValue("FilterName",
"calc_pdf_Export"))
    
    oDoc.close(True)
End Sub

Function MakePropertyValue( Optional cName As String, Optional uValue )
As com.sun.star.beans.PropertyValue
    oPropertyValue = createUnoStruct( "com.sun.star.beans.PropertyValue" )
    If Not IsMissing( cName ) Then
       oPropertyValue.Name = cName
    EndIf
    If Not IsMissing( uValue ) Then
       oPropertyValue.Value = uValue
    EndIf
    MakePropertyValue() = oPropertyValue
End Function


Benjamin Lannoy a écrit :
> Bonjour,
>
> J'ai monté un petit serveur courriel qui me sert essentiellement à
> héberger quelques listes de diffusion. Celui-ci fonctionne actuellement
> avec Exim4 et Mailman, mais je compte passer à Postfix dès que j'en
> aurais le temps.
>
> Bref... Il s'échange sur certaines de ces listes beaucoup d'articles
> qui ont été tapés sur traitement de texte... Articles qui se retrouvent
> donc tous ou presque au format Microsoft Word.
> J'ai bien tenté plusieurs fois de faire passer le message comme quoi
> les standards ouverts c'était bien mieux pour tout le monde, et que ça
> me forçait régulièrement à refaire de la mise en page (qui m'est
> régulièrement dévolue pour certains de ces articles, en plus)...
> Hélas, aucun effet ou presque. :/
>
> Je m'imaginais donc tenter d'imposer un format ouvert, autrement qu'en
> interdisant purement et simplement les pièces jointes en .doc.
> Technique que j'avais déjà expérimentée, et j'ai reçu des messages
> « Benjamin... Ton truc, ça marche pas. », alors même que j'avais envoyé
> un courriel d'avertissement.
>
> Bref, j'aurais voulu savoir s'il était possible de convertir
> automatiquement toutes les pièces jointes transitant par Mailman (ou
> Postfix, ou Exim4) en ODF (idéalement), en HTML, en PDF, ou simplement
> texte brut (ça leur apprendra !), et si oui : comment ?
> J'ai vu le paquet « wv » qui semble faire ça, sauf pour la conversion
> vers l'ODF qui me conviendrait le mieux. Il faut que je regarde de ce
> côté ? Il y en a d'autre plus performant ?
> Y aurait-il des tutoriaux qui traîneraient de-ci de-là ? Je n'en ai pas
> trouvé.
>
>
> Merci d'avance,
> Benjamin
>   



Reply to: