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

  1. #1
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    Ne faudrait-il pas que tu utilises ODF::lpOD::Style ?
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  3. #3
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    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.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  5. #5
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    J'ai cru lire que set_span fonctionnait aussi avec des positions. Tu devrais pouvoir t'en sortir avec des regexp.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  7. #7
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    La position, c'est celle au niveau du texte. Par exemple, pour la chaine "bonjour philou", je pourrais lui préciser la position 9 pour débuter à philou.

    Mon problème est que je parse un xml, donc ma chaine est :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <paragraph>bonjour <b>philou</b></paragraphe>
    mon parser va récupérer philou, mais je ne sais pas comment obtenir avec Twig la position de philou dans la balise paragraphe ! Donc je bloque.

  8. #8
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Merci jmgdoc, j'avais lu ces deux sections. Et j'ai bien compris. Mais cela est simple à mettre en place lors d'une création basique. Là mon souci est que c'est jumeler avec le parsing d'un XML. Je ne vois pas comment faire.

    Sinon ton message est tronqué donc je n'ai pas la suite en ce qui concerne
    À part cela, pour convertir un élément XML <paragraph> en un paragraphe ODF réglementaire, la méthode la plus expéditive consiste d'a ...
    Merci

  9. #9
    Membre habitué

    Profil pro
    Inscrit en
    Février 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 10
    Points : 184
    Points
    184
    Par défaut Styles de textes avec ODF::lpOD
    Au départ ODF::lpOD a été conçu pour permettre à des développeurs ne voulant pas voir le XML d'exploiter et de modifier des données dans des documents. Son utilisation pour faire de la conversion relève déjà d'un usage avancé mais elle est parfaitement possible.

    Deux lectures préalables s'imposent:

    1) La section "Styles de texte" du tutoriel;

    2) La section "Creating and using a text style" dans le tutoriel (en Anglais) de la distribution CPAN.

    On y voit très concrètement comment créer et mettre en oeuvre un style de texte. Dans le cas qui nous occupe (plus simple que les exemples du tuto) il suffit d'utiliser un paramètre "weight" avec la valeur "bold" dans la création du style de texte (via odf_style->create) pour spécifier des caractères gras.

    À part cela, pour convertir un élément XML <paragraph> en un paragraphe ODF réglementaire, la méthode la plus expéditive consiste d'abord à lui affecter le tag "text:p" (défini par la norme ODF pour les paragraphes) et ensuite à changer sa classe en ODF::lpOD::Paragraph (abrégé en odf_paragraph). On peut le faire de la manière suivante dans le handler (en supposant que $p est l'élément <paragraph> courant):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $p->set_tag('text:p');
    bless $p, odf_paragraph;
    Optionnellement on peut ensuite affecter un style de paragraphe (via $p->set_style) sauf si le style de paragraphe par défaut convient.

    Pour les éléments <b>, on peut procéder de manière analogue mais cette fois il s'agit de leur affecter le tag 'text:span' et la classe odf_text_element. Et bien sûr il faut impérativement affecter à chacun le style de texte en caractères gras qu'on a défini par ailleurs (supposons que ce style s'appelle "Gras" et que l'élément <b> courant est $e):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $e->set_tag('text:span');
    bless $e, odf_text_element;
    $e->set_style("Gras");
    Remarque: Il est inutile de coder explicitement "use XML::Twig" car XML::Twig est chargé avec ODF::lpOD (cf. liste des dépendances dans INSTALL). Quant a ODF::lpOD::Style, inutile de l'invoquer car tous les sous-modules de ODF::lpOD sont chargés par un simple "use ODF::lpOD".

  10. #10
    Membre habitué

    Profil pro
    Inscrit en
    Février 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 10
    Points : 184
    Points
    184
    Par défaut Styles de textes avec ODF::lpOD (suite)
    Autre remarque: l'usage de insert_element($paragraphe) sans paramètre de position fait que chaque nouveau paragraphe est inséré en première position dans le texte. Donc dans le document résultant l'ordre des paragraphes sera inversé. Pour éviter cela il vaut mieux utiliser append_element($paragraphe) qui place les paragraphes à la suite.

    insert_element() est destiné à insérer quelque chose soit au début du contexte, soit quelque part avant ou après un élément donné.

  11. #11
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Ok.
    En fait, j'avais utilisé la méthode serialize sur un odt pour avoir un aperçu du contenu XML, et j'ai vu que le code ressemble à ce qui tu précises. Mais bon, je chercher une méthode pour le faire sans devoir rentrer dans le code en dur du module.
    Là c'est un cas simple, mais le but de mon programme est de convertir des XML plus conséquent contenant des milliers de lignes en fichiers odt.

    Mais comment connaitre tous les noms des balises telles text:span, text:p, etc. ?

  12. #12
    Membre habitué

    Profil pro
    Inscrit en
    Février 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 10
    Points : 184
    Points
    184
    Par défaut ODF::lpOD pour les conversions
    Citation Envoyé par djibril Voir le message
    Ok.
    Mais comment connaitre tous les noms des balises telles text:span, text:p, etc. ?
    C'est le problème, justement, quand on doit utiliser ODF::lpOD pour faire de la conversion à partir de sources non ODF. Une fois qu'on est en ODF on peut oublier les tags mais si on l'utilise pour faire de la conversion vers ODF, on passe à un autre niveau d'utilisation.

    Cela dit, dans ce cas de figure on n'a que deux tags (et deux classes ODF) à connaître, soit 'text:p' et 'text:span'. On pourrait aussi avoir besoin de 'text:h' (qui représente les titres) si on devait traité des sources contenant du texte hiérarchisé.

    La situation serait franchement plus compliquée s'il fallait convertir en styles ODF des styles définis dans un autre langage (ex: CSS). Là il y aurait potentiellement des dizaines de tags et d'attributs à gérer.

  13. #13
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    Pour la position dans le paragraphe, ne peux-tu pas utiliser les méthodes XML::Twig current_line, current_column, current_byte ou current_position_in_context ? (je dis ça, mais je n'ai jamais utilisé XML::Twig... je galère même à l'installer).
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  14. #14
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Bah en ce qui me concerne, j'aurais beaucoup de style à gérer . Notamment : gras, souligne exposant, tableau, puces, etc.

    Bon, je vais déjà essayer de refaire ce bout de code pour que vous puissiez m'aider.

  15. #15
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Citation Envoyé par Philou67430 Voir le message
    Pour la position dans le paragraphe, ne peux-tu pas utiliser les méthodes XML::Twig current_line, current_column, current_byte ou current_position_in_context ? (je dis ça, mais je n'ai jamais utilisé XML::Twig... je galère même à l'installer).
    Mince, bizarre qu'il ne s'installe point sous Cygwin . Je vais tester current_position_in_context, merci.

  16. #16
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    J'ai forcé l'install malgré les erreurs des tests. On verra bien.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  17. #17
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Bon j'ai réussi à faire ce que je voulais. jmg, peux-tu confirmer que je m'y prends bien ?

    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
    42
    43
    44
    45
    46
    47
    #!/usr/bin/perl
    use warnings;
    use strict;
    use ODF::lpOD;
     
    my $doc      = ODF::lpOD::Document->create('text');
    my $contexte = $doc->get_body;
    $doc->insert_style(
    	odf_style->create(
    		'text',
    		name			=> "ItaliqueFondJaune",
    		style			=> 'italic',
    		background_color	=> 'yellow'
    	)
    );
     
    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 ) = @_;
     
      $twig_paragraph->set_tag('text:p');
      bless $twig_paragraph, odf_paragraph;
      $contexte->append_element($twig_paragraph);
      return;
    }
     
    sub xml_style {
      my ( $twig, $twig_style ) = @_;
     
       $twig_style->set_tag('text:span');
        bless $twig_style, odf_text_element;
        $twig_style->set_style("ItaliqueFondJaune");
      return;
    }
    Bon, là c'est un programme d'exemple, mais je pense que je ne vais pas m'amuser à pondre tous les styles en Perl. Le but serait de créer un fichier modèle odt vierge via Open Office dans lequel je créerais tous les styles dont j'ai besoin. Puis je me baserai dessus pour faire mes conversions. Pensez-vous que ce soit la bonne idée ?

  18. #18
    Membre habitué

    Profil pro
    Inscrit en
    Février 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 10
    Points : 184
    Points
    184
    Par défaut Position des textes en caractères gras
    Citation Envoyé par Philou67430 Voir le message
    Pour la position dans le paragraphe, ne peux-tu pas utiliser les méthodes XML::Twig current_line, current_column, current_byte ou current_position_in_context ? (je dis ça, mais je n'ai jamais utilisé XML::Twig... je galère même à l'installer).
    Pas la peine. Les éléments ODF stylés en caractères gras sont justement les éléments <b> déjà en place. Il n'y a donc pas à rechercher leur position. Chaque élément <b> doit être "re-tagué" sur place en <text:span> et transformé par bless en objet odf_text_element, de manière à posséder la méthode set_style() permettant de lui affecter un style de texte.

    En reprenant le code de Djibril, je réécrirais la fonction xml_style (qui en fait ne traite pas un style mais un segment de texte) de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    sub xml_style {
      my ( $twig, $element ) = @_;
     
      $element->set_tag('text:span');
      bless $element, odf_text_element;
      $element->set_style("Gras");
     
      return;
    }

    Le style de texte "Gras" est lui-même très facile à créer (par exemple à la fin du programme), de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $doc->insert_style(
        odf_style->create('text', name => "Gras", weight => "bold")
    );

  19. #19
    Membre habitué

    Profil pro
    Inscrit en
    Février 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 10
    Points : 184
    Points
    184
    Par défaut
    Citation Envoyé par djibril Voir le message
    Bon j'ai réussi à faire ce que je voulais. jmg, peux-tu confirmer que je m'y prends bien ?
    Oui, sauf l'instruction system("test.odt") que je ne comprends pas, mais si je la mets en commentaire ce programme est OK.

    Citation Envoyé par djibril Voir le message
    Bon, là c'est un programme d'exemple, mais je pense que je ne vais pas m'amuser à pondre tous les styles en Perl. Le but serait de créer un fichier modèle odt vierge via Open Office dans lequel je créerais tous les styles dont j'ai besoin. Puis je me baserai dessus pour faire mes conversions. Pensez-vous que ce soit la bonne idée ?
    Oui, c'est exactement ce que je recommande ! Il faut se constituer des "bases de styles" en format ODF en utilisant une interface WYSIWYG et réserver le code au traitement du contenu. Il est très facile de sélectionner et de copier un style d'un document à un autre, soit individuellement avec get_style(), soit en bloc avec substitute_styles().

    On peut aussi, évidemment, utiliser des modèles de documents (avec styles + structure). Dans ce cas au lieu de partir sur un odf_document->create() on part sur odf_document->get(), avec enregistrement sur une cible différente du document source.

  20. #20
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Citation Envoyé par jmgdoc Voir le message
    Oui, sauf l'instruction system("test.odt") que je ne comprends pas, mais si je la mets en commentaire ce programme est OK.



    Oui, c'est exactement ce que je recommande ! Il faut se constituer des "bases de styles" en format ODF en utilisant une interface WYSIWYG et réserver le code au traitement du contenu. Il est très facile de sélectionner et de copier un style d'un document à un autre, soit individuellement avec get_style(), soit en bloc avec substitute_styles().

    On peut aussi, évidemment, utiliser des modèles de documents (avec styles + structure). Dans ce cas au lieu de partir sur un odf_document->create() on part sur odf_document->get(), avec enregistrement sur une cible différente du document source.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

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