IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modules Perl Discussion :

[XML:Twig et ODF::lpOD] Conversion XML en ODT


Sujet :

Modules Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut [XML:Twig et ODF::lpOD] Conversion XML en ODT
    Bonjour,

    J'ai un petit souci car je ne trouve pas la solution.

    J'ai un fichier XML de teste qui ressemble à ça :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <paragraph>
    		Ce tutoriel Perl a pour but de vous expliquer en quelques lignes comment concevoir un plugin <b>Nagios</b> respectant les 
    		normes <b>Nagios</b> avec <b>Perl</b>.<br/>			 
    </paragraph>

    Je souhaiterais le convertir en fichier OpenOffice odt et le contenu du fichier devrait être formaté et donné le résultat suivant :
    Ce tutoriel Perl a pour but de vous expliquer en quelques lignes comment concevoir un plugin Nagios respectant les normes Nagios avec Perl
    Mon but est d'utiliser le module XML:Twig et ODF::lpOD, mais je coince pour le formatage du texte en gras. Si quelqu'un a une idée, je suis preneur .

    Voici un exemple de programme, mais je ne sais pas comment appliquer le gras.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    #!/usr/bin/perl
    use warnings;
    use strict;
    use ODF::lpOD;
    use XML::Twig;
     
    # Création virtuelle du fichier odt
    my $doc      = ODF::lpOD::Document->create('text');
    my $contexte = $doc->get_body;
     
    my $twig = new XML::Twig(
      Twig_handlers => {
        'paragraph' => \&xml_paragraph,
        'b'         => \&xml_style,
      },
    );
     
    # Création d'un objet twig
    $twig->parsefile('test.xml');
     
    # Sauvegarde du document
    $doc->save( target => 'test.odt' );
    system ('test.odt');
     
     
    sub xml_paragraph {
      my ( $twig, $twig_paragraph ) = @_;
     
      my $paragraphe = odf_paragraph->create( text => $twig_paragraph->text, );
      $contexte->insert_element($paragraphe);
      return;
    }
     
    sub xml_style {
      my ( $twig, $twig_style ) = @_;
     
      my $style = $twig_style->name;
      my $texte = $twig_style->text;
     
      return;
    }

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Ne faudrait-il pas que tu utilises ODF::lpOD::Style ?

  3. #3
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Le souci est surtout comment identifier les bon mots à mettre en gras et comment afin d'appliquer le style.

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Après réflexion, je me demande s'il ne serait pas plus facile d'utiliser les text spans de ODF::lpOD::TextElement en conjonction avec les styles.

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    En fait, j'avais essayé la méthode set_span. Le problème est qu'il fait une recherche du motif auquel tu souhaites attribuer un style.

    Dans le cas suivant : je veux mettre un mot Perl en gras par exemple , mais pas tous.

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <paragraph>Ce tutoriel Perl a pour but de vous expliquer en quelques lignes comment concevoir un plugin <b>Nagios</b> respectant les normes <b>Nagios</b> avec <b>Perl</b>.<br/>
    </paragraph>
    Ce tutoriel Perl a pour but de vous expliquer en quelques lignes comment concevoir un plugin Nagios respectant les normes Nagios avec Perl
    Donc comment distinguer ? Avec cette méthode, on peut préciser un offset et length pour appliquer le style, mais dans ce cas, comment via XML::Twig récupérer l'information de la position du mot Perl ou Nagios par exemple dans la balise paragraph ?

  6. #6
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    J'ai cru lire que set_span fonctionnait aussi avec des positions. Tu devrais pouvoir t'en sortir avec des regexp.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 21/06/2012, 11h27
  2. [XML::Twig] Commentaires dans le fichier XML réécrit
    Par knarf87 dans le forum Modules
    Réponses: 2
    Dernier message: 07/05/2008, 09h24
  3. [XSLT] Conversion xml vers txt ou mdb etc
    Par narodar dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 23/06/2006, 14h31
  4. [FOP] Problème de conversion xml/xsl vers pdf
    Par Shadow aok dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 02/03/2006, 10h41
  5. [XML][XSL] Un utilitaire de conversion (visuel) ?
    Par Invité dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 11/01/2006, 15h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo