Macro Word

Macro pour convertir un document Microsoft© Word 97 au format SPIP 1.3

Nota SPIP-Contrib : une contribution déjà ancienne (une des première sur SPIP-Contrib en fait, mais qui semble encore d’actualité avec SPIP 1.9 ... n’hésitez pas à faire remonter via le forum toute éventuelle précision ou correction nécessaire

Pas à pas

L’installation

  • renommer « macro_word.dot » en « Document Spip.dot » (c’est plus joli !) ;
  • copier « Document Spip.dot » dans C :\Program Files\Microsoft Office\Modèles\Autres Documents [1] ;
  • Démarrer Word ;
  • choisir Fichier->Nouveau->Autres Documents->Document Spip.dot ;
  • Taper du texte en utilisant les styles proposés ;
  • Puis générer du texte au format SPIP dans un nouveau document en cliquant sur la petite baguette magique sous « Edition ».

Fonctionnement

Cette macro est composée de plusieurs sous-macros. « versSpip » étant la macro principale appelant les autres une à une, dans un ordre bien défini.

Ces macros sont indissociables des styles qui viennent avec le fichier « macro_word.dot ».
Elles utilsent plus particulièrement les styles :

  • wdStyleNormal (« Normal »)
  • wdStyleHeading1 (« Titre 1 »)
  • wdStyleHeading2 (« Titre 2 »)
  • wdStyleHeading3 (« Titre 3 »)
  • wdStyleList (« Liste »)
  • wdStyleHyperlink (« Lien Hypertexte »)
  • « Code »
  • « Lien en code SPIP »
  • « Html »

« versSpip » effectue les transformations suivantes :

  1. passe les paragraphes n’utilisant pas un des styles précédents au style « Normal » ;
  2. transforme les paragraphes de style « Titre 1 » en : {{{texte}}} ;
  3. transforme les paragraphes de style « Titre 2 » en : {{texte}}<br /> ;
  4. transforme les paragraphes de style « Titre 3 » en : {texte}<br /> ;
  5. transforme le texte italique+gras (même dans les tableaux) en : {{ {texte} }} ;
  6. transforme le texte italique (même dans les tableaux) en : {texte} ;
  7. transforme le texte gras (même dans les tableaux) en : {{texte}} ;
  8. transforme les tableaux Word en tableaux SPIP en ajoutant un saut de ligne avant et après si nécessaire ;
  9. transforme les sauts de ligne individuels entre deux paragraphes de style « Normal » en : <br /> ;
  10. transforme les paragraphes de style « Liste » en : - texte ;
  11. transforme les notes Word en note SPIP : [[une note]] ;
  12. transforme le texte gris (style « Code ») en : texte ;
  13. transforme le texte vert pas beau (style « Html ») en : <html>texte</html> ;
  14. transforme les liens Hypertexte de Word en : [lien->adresse du lien] (le style « Lien en code SPIP » ne fait que colorier du texte en bleu et permet d’écrire directement les liens avec la syntaxe de SPIP. Le texte ne sera pas modifié.) ;
  15. transforme les images (flottantes ou non) en : <IMGn|left> (n étant leur ordre d’apparition dans le document) ;
  16. créée un nouveau document avec le code SPIP généré et en effectue une copie dans le presse-papier.

Les bugs

-  Si le document source commence (ou fini) par un tableau la macro plante : la macro vérifie si une ligne a bien été sautée avant (et après) le tableau, sinon SPIP ne le reconnaîtra pas. Or s’il n’y a aucun caractère avant (après) le tableau, le test de VisualBasic ne marche pas ??? Donc, la solution est simple ... Ne commencez pas votre document par un tableau et, si votre document fini par un tableau, sautez une ligne juste après !

-  Si les lignes d’un même tableau n’ont pas toutes le même nombre de colonnes la macro plante : C’est normal ! SPIP ne gère que des tableaux simples.

-  Problème de "<br />" imbriqué dans des accolades dans le code généré : Si, par exemple, la fonction Find de Visual Basic recherche du texte en gras. Le texte trouvé est sélectionné, puis la macro reformate le tout pour SPIP... Malheureusement avec Word, si vous finissez une ligne par du texte en gras, le saut de ligne est aussi en gras. Bref, « texte_en_grasPtexteP » sera remplacé par "{{texte_en_gras<br />P}}texteP". Et ceci peut causer quelques problèmes dans des cas extrèmes. Je cherche une facon d’obtenir "{{texte_en_gras}}<br />PtexteP", mais je n’y arrive pas. Donc, avis aux pros du VB, si vous avez une solution, je suis preneur.

Notes

[1Nota SPIP-Contrib : chemin valable si vous travaillez sous Windows, à adapter pour les autres environnement

Note des admins : cette macro a été créée par Alexis. Denis a ajouté la gestion des liens internes.

Discussion

38 discussions

  • J’ai un problème avec les notes de bas de page : la macro Word (excellente, au demeurant) les convertit bien au format Spip, mais forcément en majuscules et sans prendre en compte les styles (italique, gras). Auriez-vous une solution pour remédier à ce petit problème ?

    Répondre à ce message

  • La macro fonctionne à merveille !Merci..
    Mais je me pose la question en ce qui concerne le retour chariot. Il doit sans doute être possible de rajouter dans le fichier Spip concerné pour la rédaction d’articles, une routine en javascript qui permettrait de reconnaitre la touche enter et generer un (br)...
    Je suis completement novice en la matière alors si je dis une grosse betise,ne m’en voulez pas ! Par contre si cela est faisable, ce serait bien de se pencher sur la question,non ?

    Répondre à ce message

  • PB PB PB !!


    ERREUR EXECUTION 5941 :
    Le membre de la collection requis n’existe pas.

    Comment résoudre ce pb ? IDEM sous office 97, office XP

    Merci d’avance

    Répondre à ce message

  • bjrs tout le monde,

    j’ai devellopé un site sous SPIP et biensur les utilisateurs sont plus habituillés d’utiliser WORD.

    Mon problème principale est que généralement les documents qu’ils veulent mettre en ligne comprennet des images.
    Pour le transfert WORD2SPIP, mon approche a été de transformer le doc Word dans HTML propre(HTML Tidy). et après faire des copier coller. Pourtant je n’ai pas trouvé de solutions pour modifier les lins vers les images. Normallement Word met les images dans le même repertoire que le fichier HTML, moi je voudrais le mettre aileurs dans un repertoire prevu à cet effet.
    Est-ce que qqn peut me donner une suggestion pour resoudre ce problème ?
    Merci par avance !

    Répondre à ce message

  • Excellent script pour dépanner mais possede aussi des faibllesses :

    Un tableau sur 2 pages = des bugs de tant en tant

    Un tableau sur 17 pages (je sais, je suis taré LOL) = réinitialisation complete du pc car fuite de mémoire !!!

    De plus pour les liens hypertexte, il faut impérativement ecrire « http://www.XXX.ZZZ » donc impossible de faire un lien du type « cliquez ici » et qui aille sur une url. il faut le faire manuelement.

    Si l’on a deja installé des tag html dans la page alors la ca donne une catastrophe.

    Donc utilisez ce script pour de la mise en page simple(titre/gras/italique et text)

    Répondre à ce message

  • 1

    bonjour, je veut installer ta contrib qui à l’air très utile. Mais je ne trouve pas le répertoire C :\Program Files\Microsoft Office\Modèles\Autres Documents ;
    je n’ai que C :\Program Files\Microsoft Office\Office ou Templates ;
    Comment faire ?

    • « Template » c’est de l’anglais qui en informatique veut dire « modèle » donc c’est là surement. Vérifie qu’il y a au moins .DOT déjà dedans.

    Répondre à ce message

  • 1

    Hello,
    très bonne idée cette macro. Bravo d’avance car sur les mac ya pas d’accolades sur le clavier, alors bonjour la galère le codade spip :-))
    Faut appuyer sur pomme shit control alt 3,1416 lol

    Problème :
    Votre zip se décompresse et il y a rien à l’intérieur, à part un alias (raccourci) qui pointe vers rien.
    J’ai stuffit deluxe dernière version qui gère tous les formats de compression possibles (y compris les plus weird) et j’ai jamais de problèmes avec les zip d’habitude.
    Pouvez vous vérifier si votre zip n’a pas une option trop alambiquée ?
    ou me poster la macro directement ?.
    Cordialement
    Thanx a lot
    Matthieu

    • essaie alt + (

      alt + )

      voici le résultat avec Mac OS

    Répondre à ce message

  • Wikipedia système cousin de Spip a adapté la macro Spip à son format... en retour une macro OpenOffice.org a été initiée pour wikipedia... libre aux spipeurs de l’adapter à spip.

    Répondre à ce message

  • Apres avoir recu un email piéce jointe document joint dans outlook express j’ai directement ouvort ce document dans ootlok et word 2000 s’est ouvert « je travaille sous windows 98 » et depuis losque je demande ouverture nouveau document je n’ai plus la barre de menu et seulement document 1 et lorsque j’ouvre un document enregistré WORD 2000 J’ai mon document mais exactement ouvert de la même facon que l’autre disparition de la barre de menu disparition de toute les barres d’ailleurs.
    car je ne suis pas un spécialiste WORD 2000.
    il ne s’agit pas d’un virus j’ai norton à jour et j’ai passé word à la moulinette Norton j’ai aussi dans le document fait toute les tentatives pour retrouver cette barre « Nada niente » Quelqu’un à une idée pour la retrouver ? mon émail a2mains@wanadoo.fr

    Répondre à ce message

  • Un a-priori a adapter cette macro pour wikipedia maintenant qu’une balise Spip permet d’accéder au contenu de wikipedia ?

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom