SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano

274 Plugins, 192 contribs sur SPIP-Zone, 109 visiteurs en ce moment

Accueil > Rédaction > Assistants de rédaction > création d’articles à partir de fichiers OpenOffice > odt2spip : création d’articles à partir de fichiers OpenOffice (...)

odt2spip : création d’articles à partir de fichiers OpenOffice Writer

6 mars 2009 – par cy_altern – 123 commentaires

Toutes les versions de cet article : [français] [italiano]

35 votes

Ce plugin permet de générer un article SPIP à partir du téléchargement d’un fichier OpenOffice Writer (format .ODT). Il gère la majorité des raccourcis typographiques, détecte les différents niveaux de titre et fait l’intégration des images automatiquement.

Important :
Ce plugin nécessite que le plugin snippets soit installé et activé. Son zip est disponible sur l’espace de téléchargement de la Zone : http://files.spip.org/spip-zone/sni....
La transformation des fichiers ODT impose que l’extension XSL de PHP soit active sur le serveur web

Installation

Utilisation

Rien que de très simple : une fois le plugin activé, dans la page de gestion d’une rubrique vous trouverez un lien supplémentaire sous la boite des raccourcis : « Créer un article à partir d’un fichier OOo Writer ».

Ce lien ouvre la boite de dialogue qui permet de choisir le fichier à télécharger depuis votre ordinateur.

Une fois validé l’article est automatiquement créé avec le statut « proposé à la publication », si nécessaire le fichier ODT original est attaché comme document à l’article et le plugin vous bascule sur la page de cet article.

La transformation opérée par le plugin

Ce plugin ne fait qu’une transformation du contenu du fichier en code SPIP : il n’assure aucun miracle si votre fichier initial est construit de façon non-conforme aux règles de l’utilisation d’un traitement de texte et ne fera rien que vous ne puissiez reproduire avec les raccourcis typographiques de SPIP...

Un exemple de page générée à partir d’un fichier « type » : http://tice.aix-mrs.iufm.fr/demo/sp...

Plus de précisions :

  • il est nécessaire d’avoir utilisé les styles pour définir les titres dans le fichier OpenOffice si vous voulez que le plugin les détecte. La conversion se fait selon les règles suivante (que les puristes passent leur chemin, il n’y a ici aucun respect des aspects sémantiques habituellement liés à l’utilisation des raccourcis typographiques !) :
    • si il existe au moins un paragraphe avec le style Titre, son contenu est utilisé pour générer le titre de l’article. Sinon c’est le Titre de niveau le plus important qui est utilisé : Titre 1 > Titre 2 > Titre 3... .
    • Le premier niveau de Titres est transformé en intertitres SPIP {{{Titre niveau 1 intertitre}}}(si Titre 1 n’existe pas, Titre 2 est utilisé à sa place, Titre 3 à la place de Titre 2, et ainsi de suite)
    • le deuxième niveau est mis en gras et séparé du restant par des sauts de lignes {{Titre niveau 2 en gras}}
    • tous les autres niveaux de titre sont passés en italique et séparés par des sauts de ligne {Titres de niveau 3, 4, 5... en italique}
  • si d’aventure vous aviez décidé d’utiliser le plugin Enluminure typographique ou le plugin Intertitres hiérarchisés qui définissent et utilisent des niveaux de titres supplémentaires (vade retro satanas !), odt2spip détecte leur présence et, automatiquement, utilise les raccourcis « enrichis » tels que {2{titre niveau deux}2} ou {4{titre niveau quatre}4} (ces raccourcis sont interprétés par ces 2 plugins).
  • Le plugin récupère les images intégrées dans le fichier d’origine à condition qu’elles soient au format jpg ou png ou gif (n’espérez rien si vous avez des fichier BMP ou TIFF intégrés !), les retaille pour approximer du mieux possible la taille qu’elles avaient dans le texte, les intègre comme documents SPIP et les place avec un raccourci de la forme <imgXXX|left> ou <imgXXX|right> ou <imgXXX|center> en fonction de la position à laquelle se trouvait l’image dans le texte d’origine.
  • Les formules mathématiques (rédigées à l’aide de l’éditeur d’équation natif d’OOo Writer ou des outils complémentaires tels l’excellent Cmath) sont en principe complètement gérées : le plugin génère le code LateX et le place dans une balise math : <math>$\frac{\sqrt{2x+9}}{4y-6}=\frac{\alpha 3}{\beta 2}$</math>
  • Les notes de bas de page sont gérées sans problèmes ni restrictions.
  • Pour les tableaux, pas de problème tant que vous n’essayez pas de faire des tableaux imbriqués (c’est à dire un tableau dans une cellule de tableau) : les fusions de cellules horizontales et verticales sont gérées en principe correctement.
  • Les listes à puce et numérotées, imbriquées ou non, sont en principe correctement gérées tant qu’elles ne sont pas interrompues par d’autres éléments (donc pas de reprise de numérotation d’une liste à la suivante).

Eléments non-gérés ou supprimés

  • Pour les tableaux et les listes le plugin ne gère pas les contenus ayant un style de Titre.
  • Les fioritures de style de texte sont limitées à celles autorisées par les raccourcis typographiques : gras et italique donc pas de texte de couleur ni avec des fonds colorés (beurk !), pas de variations de police ni de taille de texte (ce qui évitera que les rédacteurs pourrissent la charte graphique du site !)
  • Les en-têtes, pieds de page, index ou table des matières sont purement et simplement supprimés.
  • Les dessins (flêches, bulles et autres formes crées avec l’outil de dessin d’OOo Writer) ne sont pas (encore ?) supportés.

TO DO

  • Comme d’habitude, piètre graphiste que je suis, si quelqu’un avait le courage de faire un logo moins crasseux, il est le bienvenu ! Merci popojcb !
  • Ajouter la gestion des dessins SVG intégrés dans le fichier texte (avec une version jpg obtenue par conversion automatique pour les navigateurs qui supportent pas svg..)
  • Ajouter la gestion des équations mathématiques qui sont en MathML dans le fichier texte (si vous connaissez un convertisseur MathML -> LaTeX écrit en PHP et open-source, merci de me prévenir !) Merci Amaury Adon pour m’avoir trouvé la référence de la librairie XSLT « MathML 2.0 to LaTeX »
  • Ajouter une interface de configuration CFG pour rendre paramétrable les conversion « imposées » pour les niveaux de titre...

Notes techniques

Le moteur de transformation du fichier odt est basé sur une feuille de style XSLT (/odt2spip/inc/odt2spip.xsl) qui opère sur le fichier content.xml extrait du fichier odt envoyé. Cette transformation permet de produire un fichier xml au format requis par le plugin snippets. Ce fichier est stocké temporairement dans le répertoire /tmp/odt2spip/XXX/snippet_odt2spip.xml ou XXX représente l’id_auteur en cours. La création de l’article proprement dite à partir de ce fichier est assurée par le plugin snippets. Le répertoire temporaire de l’auteur (/tmp/odt2_spip/XXX) est effacé à la fin de l’opération.

Si vous souhaitez participer au développement de ce plugin ou faire des modifications du convertisseur XSLT, le répertoire /tests de ce plugin comprend un fichier ODT type ainsi que le fichier xml correspondant pour réaliser vos tests.

Si vous êtes sur un SPIP mutualisé, il se peut que vous ayez des problèmes de chemins vers les fichiers lors de la transformation xslt : voir ce fil de discussion pour une éventuelle solution (pour PHP 5) problème réglé avec la version [0.14].

Versions

[version 0.11] support des formules mathématiques

[version 0.12] choix du mode d’intégration des images (img / doc)

[version 0.13] choix de la langue de publication de l’article généré

[version 0.14] compatibilité avec la mutualisation du noyau SPIP 2.0

[version 0.15] compatibilité avec la barre typo V3 (cf #forum435614) et correction de l’incompatibilité des fonctions de révision du plugin snippets avec la version 2.1 de SPIP (cf #forum434725)

Ce plugin existe désormais en 2 version :

  • La version stable (0.15 actuellement) assure un maximum de compatibilité PHP / SPIP : php5 + spip 2.* , php5 + spip 1.9.2*, php4 + spip 2.*, php4 + spip 1.9.2*.
    C’est celle que vous trouverez dans le zip proposé au téléchargement.
  • la version de développement : étant donné le temps passé à gérer les problèmes liés à l’utilisation de ces différentes versions, les évolutions futures seront exclusivement PHP 5 + SPIP 2 !
    Cette version n’est disponible que via SVN (svn://zone.spip.org/spip-zone/_plug...)

P.-S.

Mille mercis à popojcb pour le logo, à mmmxvvv et D. Bard pour les fichiers de langue.

Librairie XSLT utilisée pour la conversion des formules MathML d’OOo vers LateX : MathML 2.0 to LaTeX de Vasil Yaroshevich http://www.raleigh.ru/MathML/mmltex...

Pour ce qui est du traitement des sauts de lignes/sauts de paragraphes, merci de lire http://www.spip-contrib.net/odt2spi... avant de poster une réclamation ! : merci à dreline pour avoir réglé ce problème !

Retour en haut de la page

Vos commentaires

  • Le 30 mars à 02:37, par benolaos En réponse à : odt2spip : création d’articles à partir de fichiers OpenOffice Writer

    Bonjour,
    J’ai l’impression qu’il y a un problème d’affichage des tableaux avec Openoffice 3 Writer.
    J’ai simplement fait un tableau 3x3, et voilà le résultat qui s’affiche sur le site public :
     !1 !2 !3 ! !4 !5 !6 ! !7 !8 !9 !
    (j’ai remplacé le symbole | par ! pour l’affichage sur ce site...)

    Sinon tout fonctionne parfaitement, chapeau.

    Répondre à ce message

  • Le 26 février à 09:57, par Fennec72 En réponse à : odt2spip : création d’articles à partir de fichiers OpenOffice Writer

    Reproduction du commentaire que j’ai laissé sous l’article Snippets et concernant odt2spip :
    est-ce qu’une mise à jour pour spip 3 est prévue ?

    le plugin odt2spip (en version SVN il est vrai) , une fois ajouté au répertoire plugin de spip 3 beta 2 est indiqué comme compatible (du moins, il n’est pas indiqué comme incompatible).

    mais quand on veux l’activer, spip affiche le message suivant « Le plugin odt2spip dépend de SNIPPETS [0.1 ;] »

    Or Snippets 0.2, même en version SVN est indiqué comme incompatible avec spip 3.

    merci d’avance.

    Répondre à ce message

  • Le 5 octobre 2011 à 17:30, par mary En réponse à : odt2spip : création d’articles à partir de fichiers OpenOffice Writer

    Bonjour,
    Je m’aperçois que losque je créé un article à partir d’un fichier Open office avec le plugin odt2spip, même si dans la configuration du site j’ai déactivé les forums sur tous les articles, l’article créé se voit muni d’un forum modéré à postériori. (spip 2.1.10 et dernière version du plugin)
    Je crains que les enseignants ne fassent pas gaffe et oublient de modifier ce comportement.
    Est-ce un bug ? comment y remédier

    Merci d’avance

    Répondre à ce message

  • Le 23 mai 2011 à 14:58, par Stéphane Deschamps En réponse à : odt2spip : création d’articles à partir de fichiers OpenOffice Writer

    Bonjour,

    Je viens de le tester avec un document complet (des gras, des italiques, des titres, des listes à puces), c’est super et ça marche bien :)

    Juste un truc à ajouter dans la doc peut-être : n’insérez pas de lignes vides, elles seront restituées comme des paragraphes vides comportant juste un signe > dans le nouvel article créé.

    Merci en tout cas, c’est chouette.

    Répondre à ce message

  • Le 23 octobre 2011 à 17:02, par patrick En réponse à : odt2spip : création d’articles à partir de fichiers OpenOffice Writer

    Salut,
    J’ai installé la version 2.1.11 de SPIP, et rajouté le plugin odt2spip
    0.15.1 - stable & Snippets
    0.2.0 .

    Après l’installation pas d’éreur, mais , bien que j’ai le plugins Crayons
    1.13.1 - stable
    je n’ai pas l’option activé dans éditions, comment pouvoir l’activé, merci de votre aide.

    Répondre à ce message

  • Le 27 août 2011 à 19:08, par bobca En réponse à : odt2spip : création d’articles à partir de fichiers OpenOffice Writer

    Bonjour, j’ai installé odt2spip (version standard) sur mon spip (2.0) et ça marche super.
    Quelques petits détails qui pourraient justifier un correctif :

    -  les caractères en exposant/indice ne sont pas correctement rendus. Il faut inclure des balises HTML <sup> </sup> ou <sub> </sub>

    -  les accolades et crochets sont rendus « tels quels » ce qui ne plait pas du tout à SPIP qui croit trouver des liens ou des raccourcis typographiques. Il faut transformer les accolades et crochets en « entités HTML » : voir &lbrace ; qui va donner { et &lbrack ; qui va donner [ etc.

    En tous cas, un grand merci.

    Répondre à ce message

  • Le 14 août 2011 à 09:42, par jmfre En réponse à : odt2spip : création d’articles à partir de fichiers OpenOffice Writer

    Bonjour

    Merci pour votre excellent plugin qui me fait gagner beaucoup de temps.

    J’apprends maintenant le php, je poursuivrai avec le langage de Spip, et je me fais de fiches de synthèse contenant du code.

    Lorsque j’importe dans Spip ces fiches de synthèse, le code disparaît.

    Pouvez vous m’indiquer une astuce qui me permette de conserver ce code lors de l’import dans Spip grâce à votre plugin ?

    Cordialement
    Jean-Michel

    Répondre à ce message

  • Le 5 novembre 2010 à 11:26, par martingranger En réponse à : odt2spip : création d’articles à partir de fichiers OpenOffice Writer

    Rebonjour,
    avec la version stable et un spip 2.1.2, je remarque que systématiquement, le titre de l’article qui est formaté avec n’est pas pris en compte. odt2spip choisit le premier <titre1> pour en faire le titre de l’article. Il faut le transformer en <titre1> (et du coup changer tous les intertitres en <titre2>).

    • Le 5 novembre 2010 à 16:15, par martingranger En réponse à : odt2spip : création d’articles à partir de fichiers OpenOffice Writer

      Bon apparemment le forum n’aime pas les signes « plus petit que » et "plus grand que"…

      Donc en fait, odt2spip ne prend pas en compte le titre formaté avec « titre », mais transforme le premier titre formaté avec « titre1 » en titre de l’article.

      Il y a aussi pas mal d’erreurs qui sont certainement dues à OpenOffice (plein de trucs du genre :

      {{}}

      Savez-vous s’il existe un « nettoyeur de code » pour OpenOffice ?

      Bon, ce sont des petits détails, ce plugin m’est fort utile. Mais disons que ça nécessite un quart d’heure de boulot après importation, pour un article long.

    • Le 5 novembre 2010 à 18:51, par cy_altern En réponse à : odt2spip : création d’articles à partir de fichiers OpenOffice Writer

      Donc en fait, odt2spip ne prend pas en compte le titre formaté avec « titre », mais transforme le premier titre formaté avec « titre1 » en titre de l’article.


      je ne reproduit pas ce problème : en utilisant le style « Titre » d’Open Office (version 3.2.1) sur un paragraphe, c’est son contenu qui est utilisé pour générer le titre de l’article SPIP.
      Peut être peux tu m’envoyer le fichier odt qui te donne ce comportement bizarre ? (cy.altern chez gmail)

      Il y a aussi pas mal d’erreurs qui sont certainement dues à OpenOffice (plein de trucs du genre :
      {{}}


      ça, c’est un saut de paragraphes qui est placé à la suite d’un titre dans le fichier original : forcément il est pris en compte comme un titre vide !

      Bon, ce sont des petits détails, ce plugin m’est fort utile. Mais disons que ça nécessite un quart d’heure de boulot après importation, pour un article long.

      la majorité des utilisateurs qui ont des problèmes de formatage sont ceux qui utilisent des fichiers odt convertis à partir de fichiers Word...

    • Le 5 novembre 2010 à 21:00, par martingranger En réponse à : odt2spip : création d’articles à partir de fichiers OpenOffice Writer

      la majorité des utilisateurs qui ont des problèmes de formatage sont ceux qui utilisent des fichiers odt convertis à partir de fichiers Word...

      Bête que je suis, je n’y avais pas pensé !!! C’est effectivement le cas. Faut que je fasse du lobbying pour que les utilisateurs travaillent directement avec OOo…

      PS : je t’envoie quand même le fichier, à tout hasard, pour cette histoire de style « titre » non pris en compte.

    • Le 6 novembre 2010 à 22:36, par cy_altern En réponse à : odt2spip : création d’articles à partir de fichiers OpenOffice Writer

      Extrait du mail auquel était attaché le fichier en question :

      [...] Ce fichier m’est parvenu en format .doc, que je l’ai
      ouvert dans OOo, que j’ai appliqué les styles, puis que je l’ai enregistré en
      odt avant de l’importer dans mon site.
      Mais lors de l’importation, odt2spip considère que c’est le premier intertitre
      (avec le style titre1) qui doit devenir le titre de l’article


      Après avoir essayé plein de reformatages, pas moyen d’arriver à ce que le style d’OpenOffice « reprenne la main » sur celui généré au départ par Word :-(
      Résultat dans le xml extrait par odt2spip et traité pour générer le code SPIP, le style « titre » n’est pas reconnu donc c’est le premier « titre 1 » qui est utilisé comme titre de l’article.
      La seule méthode qui permet de contourner est la suivante : passer le titre de la page en style "titre 1" et utiliser "titre 2" pour les titres de premier niveau dans le texte (bref, redescendre d’un niveau tous les titres)
      Si quelqu’un connait une soluce pour « forcer » le changement de format à partir des fichiers Word, qu’il se manifeste, les utilisateurs de ce plugin travaillant sous MSOffice lui seront reconnaissant...

    • Le 7 mai 2011 à 15:00, par josephtux En réponse à : odt2spip : création d’articles à partir de fichiers OpenOffice Writer

      Bonjour,

      j’ignore à peu près tout de ces problèmes de « traitement de texte », mais je vois qu’il existe sous Linux un outil ( docvert ) qui transpose des doc en xml ou html , et une variante ( docvert-openoffice.org ) qui propose à peu près le même chose en utilisant openoffice

      Descriptions des paquets Debian :
      1 docvert
      Description : converts word processor files to HTML
      Docvert is a web application which takes word processor files
      (typically .doc) and converts them to OpenDocument and clean HTML.
      .
      The resulting OpenDocument is then optionally converted to HTML or
      any XML. This is done with XML Pipelines, an approach that supports
      XSLT, breaking up content over headings or sections, and saving those
      results to multiple files (e.g., chapter1.html, chapter2.html, etc.).
      The result is returned in a .zip file.
      .
      A command-line program which uses the web application is also included.
      .
      This package only supports OpenDocument. To convert other formats,
      install docvert-openoffice.org.
      Homepage : http://www.docvert.org

      2 docvert-openoffice.org
      Description : converts word processor files to HTML using OpenOffice.org
      Docvert is a web application which takes word processor files
      (typically .doc) and converts them to OpenDocument and clean HTML.
      .
      This package adds the ability to convert Word documents using
      OpenOffice.org

      Peut-être y a-t-il là un rapprochement intéressant ?

    Répondre à ce message

  • Le 18 avril 2011 à 15:46, par dreline En réponse à : odt2spip : création d’articles à partir de fichiers OpenOffice Writer

    Bonjour,

    Je suis en train de tester le plugin qui me paraît très intéressant. De prime abord, j’ai juste un petit soucis.

    Logo de l’article : lors de l’importation d’un article, le plugin me mets automatiquement en logo de l’article l’image appelée artonXXXXX.jpg, où XXXXX est le numéro de l’article.

    Ça ne correspond pas du tout. Savez-vous comment je pourrais désactiver ceci ? J’ai rapidement parcouru le code, mais je n’ai pas trouvé l’endroit où ça se trouve.

    Note : j’ai quelques connaissances en xsl, ... je vais essayer de voir si je peux corriger le bug du saut de paragraphe.

    Répondre à ce message

  • Le 17 avril 2011 à 22:33, par Sarlovezzz En réponse à : odt2spip : création d’articles à partir de fichiers OpenOffice Writer

    Bonsoir,
    Tout d’abord bravo et un grand merci pour ce plugin qui va m’être très utile pour le site que je suis en train de créer.
    Sans aucune prétention ( je découvre Spip et suis peu calé en php de surcroit... ), je me permets de vous signaler qu’il y a un point-virgule de trop, fin de ligne4, dans le fichier ’’odt2spip_importe.php’’ .
    J’avais l’erreur suivante au téléchargement du doc odt : parse error unexpected ’’ expected
    J’avoue avoue cherché un moment !
    Encore merci pour ce travail !
    Bonne continuation

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Thélia

    26 juin 2007 – 857 commentaires

    Une approche basée sur l’utilisation conjointe des deux logiciels SPIP et Thélia pour la réalisation de sites de publication et de vente en ligne

  • Calendrier Mini 2.0

    19 mai – commentaires

    Ce plugin ajoute la balise #CALENDRIER_MINI qui insère un petit widget de navigation par mois dans les dates des évènements. Fonctionnement du mini calendrier Le mini calendrier présente un mois à la fois. Les jours du mois comportant des (...)

  • ScolaSPIP pour SPIP3

    21 mai – commentaires

    Un plugin-squelette personnalisable pour sites Web d’établissements scolaires

  • Des jeux dans vos articles !

    9 décembre 2006 – 432 commentaires

    Le plugin « Jeux » permet d’insérer dans vos articles des jeux ou des exercices de toute sorte.

  • Un sommaire pour vos articles

    12 août 2007 – 139 commentaires

    Une fonctionnalité du Couteau Suisse qui repère les intertitres des textes de vos articles ou de vos rubriques, puis en fabrique automatiquement un sommaire.