SPIP-Contrib

SPIP-Contrib

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

251 Plugins, 182 contribs sur SPIP-Zone, 175 visiteurs en ce moment

Accueil du site > 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 – 78 commentaires

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

15 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 apache

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

Ce plugin existe désormais en 2 version :

  • La version stable (0.14 actuellement) assure un maximum de compatibilité PHP / SPIP : php5 + spip 2.0.* , php5 + spip 1.9.2*, php4 + spip 2.0.*, 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.0 !
    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 !

Retour en haut de la page

78 Messages de forum

Voir toute la discussion

Pages 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8

  • Répondre à ce message

    9 mars 20:28, par cy_altern

    vu le message d’erreur (et le fait que ce plugin fonctionne très bien sur la majorité des hébergements) il s’agit clairement d’un problème de droits sur les fichiers temporaires générés par php.
    Le chemin du fichier temporaire pointé dans l’erreur est par ailleurs très louche : il devrait être dans /tmp/odt2spip/ton_id_utilisateur : vérifie que les droits sur le dossier /tmp sont bien à 777 (ou 755 au minimum). Eventuellement, histoire de mieux cerner la cause de l’erreur, tu peux créer par FTP le sous-dossier /odt2spip/XYZ ou XYZ correspond à ton id_auteur, le mettre en 777 et voir ce que ça donne.
    Sinon, pour que je puisse éventuellement aller plus loin il me faut un compte admin sur le SPIP et un accès FTP (le tout envoyé sur [cy.alternATgmail])

  • Répondre à ce message

    9 mars 19:53, par cy_altern

    Un bémol quand même, on ne peut pas mettre les photos ou images dans le portfolio

    mais si ! En choisissant l’option "Images attachées en mode :" document les images devraient se retrouver dans le port-folio (cela dépend encore de leur taille : elles en doivent pas êtres trop petites)

  • Répondre à ce message

    9 mars 15:02, par Bailly Eric

    Bonjour
    je reviens vers vous pour mon pb d’import vers mon site spip.

    Aprés multitude d’essai, j’ai réussi à faire fonctionner le plugin.

    Comme demandé j’insère mes images par la fonction "insertion/images/a partir d’un fichier" je met en page sur OoO et ensuite j’envoie sur le site.

    Lorsque mon fichier *.odt n’as pas d’image tout fonctionne pour le mieux mais lorsque j’ai des images dans le texte, le même message me revient à chaque fois.

    de ce genre :
    Warning : getimagesize() [function.getimagesize] : Read error ! in /mnt/144/sda/8/4/eric.bailly2/plugins/auto/odt2spip_v0.1/action/odt2sp ip_importe.php on line 261

    Warning : Cannot modify header information - headers already sent by (output started at /mnt/144/sda/8/4/eric.bailly2/plugins/auto/odt2spip_v0.1/action/odt2sp ip_importe.php:261) in /mnt/144/sda/8/4/eric.bailly2/ecrire/inc/headers.php on line 145
    vérifier les droits d’écriture

    Le système a rencontré une erreur lors de l’écriture du fichier /mnt/144/sda/8/4/eric.bailly2/tmp_uploadTTN8u3/.. Veuillez, en tant qu’administrateur du site, vérifier les droits d’écriture sur le répertoire /mnt/144/sda/8/4/eric.bailly2/tmp_uploadTTN8u3.

    n’y a t’il pas un probléme de taille de fichiers images ou alors une limitation du nombre de ces images.

    pour l’instant j’envoie mon texte sans les images et je les ajoutent ensuite à la mains mais je dois dire que la mise en page en prend un coup.

    Dommage car ce plugins est vraiment excellent.

    merci par avance de votre aide sur ce sujet.
    cordialement
    Eric Bailly

  • Répondre à ce message

    4 mars 18:08, par Bailly Eric

    Re bonjour

    merci beaucoup pour votre réponse rapide, je réitère mes félicitations pour votre plugin qui est extraordinaire et va facilité l’écriture de mes articles.

    Un bémol quand même, on ne peut pas mettre les photos ou images dans le portfolio.

    mais ce n’est pas bien important.

    Bonne soirée

    Eric

  • Répondre à ce message

    4 mars 14:04, par cy_altern

    ce qui m’inquiète un peu c’est les images qui ne sont pas incorporé (le lien dans mon fichier ODT est un lien web)
    [...]
    Si je change le lien web par le lien sur le fichier
    lien web = http://sumobonsai.free.fr/images/lo.. .
    lien interne= file :///home/ericou2771/Longpré/Site/images/cloche1.jpg
    j ’ai le message d’erreur suivant :
    Warning : getimagesize() [function.getimagesize] : Read error ! in /mnt/144/sda/8/4/eric.bailly2/plugins/auto/odt2spip_v0.1/action/odt2sp ip_importe.php on line 261

    non, non, non ! odt2spip fonctionne pour les images de la façon suivante : il dézippe le fichier odt, récupère les fichiers images dans le répertoire /pictures généré par le dézippage, les transfère dans le /IMG/jpg (ou /gif ou /png) pour ensuite les intégrer dans la table des documents de SPIP puis les appeler dans le texte par <imgXXX> .
    Du coup, (et c’est signalé dans la doc peut être un peu trop rapidement), pas question d’utiliser des fichiers externes ou des images collées directement dans le texte. Il faut faire l’insertion des images dans le texte en utilisant la commande "Insérer" du traitement de texte afin que celle-ci soit présente dans le répertoire du zip/odt.

  • Répondre à ce message

    4 mars 11:01, par Bailly Eric

    Bonjour
    Bravo pour votre travail, ce plugin pourrait aider beaucoup de gens comme moi.

    Je travaille à comprendre le fonctionnement pour avoir un article qui ressemble le plus prés possible a mon document OoO.

    Mais voilà je galére un peu sur la mise en page, ici le lien vers mon premier essai http://eric.bailly2.free.fr/spip.ph...

    l’organisation du texte est pas trop mal mais j’ai encore du travail pour comprendre tout cela, ce qui m’inquiète un peu c’est les images qui ne sont pas incorporé (le lien dans mon fichier ODT est un lien web)

    Si je change le lien web par le lien sur le fichier
    lien web = http://sumobonsai.free.fr/images/lo...
    lien interne= file :///home/ericou2771/Longpré/Site/images/cloche1.jpg

    j ’ai le message d’erreur suivant :

    Warning : getimagesize() [function.getimagesize] : Read error ! in /mnt/144/sda/8/4/eric.bailly2/plugins/auto/odt2spip_v0.1/action/odt2sp ip_importe.php on line 261

    Warning : Cannot modify header information - headers already sent by (output started at /mnt/144/sda/8/4/eric.bailly2/plugins/auto/odt2spip_v0.1/action/odt2sp ip_importe.php:261) in /mnt/144/sda/8/4/eric.bailly2/ecrire/inc/headers.php on line 145
    vérifier les droits d’écriture
    Le système a rencontré une erreur lors de l’écriture du fichier /mnt/144/sda/8/4/eric.bailly2/tmp_uploadTmbMwr/.. Veuillez, en tant qu’administrateur du site, vérifier les droits d’écriture sur le répertoire /mnt/144/sda/8/4/eric.bailly2/tmp_uploadTmbMwr.

    si vous pouviez m’expliquer parce que là j’ai un souci : et je crois que tout cela vient de mes images.

    merci beaucoup
    Eric Bailly

  • Répondre à ce message

    2 mars 00:28, par Martin

    Bonsoir et merci pour la réponse rapide
    le texte sortait effectivement d’un scan très mauvais, seulement la fin (laissée comme telle, car pas essentielle pour le teste) donne un légère idée de ce qui est l’ensemble.
    Par contre au nettoyage, OO a planté plusieurs fois et je suis passé par le stylage de word, pour une fois plus fiable. En revenant sur OO, bien vu que ça clochait, mais le premier résultat était meilleur que l’article finalement mise en ligne après avoir appliqué titre 1 et 2 dans OO. (ne sais pas pourquoi)

    Ton fichier odt confirme bien mes craintes, qu’il faille une deuxième version odt, préparée pour spip (lignes vides pour les espaces entre paragraphes et
    pour provoquer un retour chariot simple) De même il faudrait des balises pour l’italique et le gras.

    Car dans la mise en page odt on demande aux étudiants d’enlever tous les paragraphes vide et faire une feuille de style.

    A part ça, ton plugin est une grande avancée au copié-collé prôné par mes collègues.

    Merci encore et bonne soirée
    Martin

  • Répondre à ce message

    1er mars 23:30, par cy_altern

    Manifestement ce fichier sort "brut de décoffrage" d’un logiciel de reconnaissance caractères à partir d’un scan du livre original... Dans ce contexte il ne faut quand même pas espérer de miracles :

    • la mise en page mérite un minimum de retouches si on veut arriver à quelque chose de "correct"
    • quoiqu’il arrive on reste dans limites intrinsèques de mises en forme de SPIP telle que les histoires de sauts de paragraphes/lignes, le nombre de niveaux de titres limité ect... (cf le paragraphe "La transformation opérée par le plugin" ci-dessus).

    A titre de test, j’ai légèrement retouché la mise en forme du fichier original et cela donne un résultat nettement plus conforme à la version papier : voir http://tice.aix-mrs.iufm.fr/demo/sp... (le fichier retouché est bien sûr en doc attaché)

  • Répondre à ce message

    1er mars 09:27, par Martin

    je me réponds à moi-même après avoir trouvé un post similaire dans les réponses et reregardé le fichier test.

    Si je comprends bien il n’y a que la transformation manuelle (gras, italique) qui est prise en compte, pas un style de caractère dans ODT qui demande la même chose.

    Pour les paragraphes il n’y a rien à faire non plus.

    Ou cette piste de \n à poursuivre, mais étant novice en la matière de programmation, il faudrait pour l’instant maintenir deux fichiers séparés d’ODT - un correctement stylé, l’autre préparé pour la publication sous spip.

    bonne journée
    Martin

  • Répondre à ce message

    1er mars 00:07, par Martin

    Bonjour,
    en somme très content avec ce plugin (sous spip 2.0.10, plugin odt2spip, snippets et XSL actif), s’il arrive à bien rendre un tableau (chapeau), il rend des parragraphes en bloc au lieu de passer à la ligne, les styles de caractères n’y sont pas non plus, ni l’italique, ni le gras.

    Comment ça se fait ? - voir ici

    -  le fichier odt est attaché qui a servi pour le test.

    Merci d’avance pour l’aide
    Martin

Pages 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8

Répondre à cet article

Retour en haut de la page

Ça discute par ici

  • Le plugin saveauto : sauvegarde automatique de la base de données de SPIP

    27 novembre 2006 – 73 commentaires

    Le plugin saveauto permet de réaliser automatiquement une sauvegarde de la base de données de SPIP selon une fréquence et des paramètres configurables.

  • CleverMail

    20 janvier – 71 commentaires

    CleverMail est un plugin permettant d’envoyer des lettres d’informations à des abonnés depuis SPIP. Issu au départ d’un développement libre complètement indépendant de SPIP, il a connu une première version pour SPIP 1.9 avant d’être complètement réécris (...)

  • Diapos

    10 mars – 38 commentaires

    Comme son nom l’indique, c’est un (petit) plugin qui rappelle un peu le fonctionnement d’un projecteur de diapositives. Seules contraintes : il nous faut des images ayant la même largeur et il nous faut numéroter les images. Il suffit pour cela de (...)

  • Forms&Tables 2.0

    31 décembre 2009 – 136 commentaires

    Gestion et administration de formulaires éditables. Ce plugin permet également la publication de sondages et enquètes, la collecte des réponses dans la base de données et le téléchargement au format csv. Ce plugin est une adaptation de la version pour (...)

  • SPIP Zen Garden

    12 novembre 2009 – 68 commentaires

    Le plugin Zen Garden [1], ou Jardin Zen, vous permet de gérer une galerie de thèmes pour votre site, et de changer très facilement de thèmes parmi les thèmes disponibles. Pré-requis Le jardin Zen nécessite d’utiliser un squelette comme le squelette (...)