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

Documents Java Discussion :

[JOOReport] Publipostage avec OpenOffice


Sujet :

Documents Java

  1. #1
    hdd
    hdd est déconnecté
    Membre régulier Avatar de hdd
    Profil pro
    Inscrit en
    Février 2004
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2004
    Messages : 105
    Points : 74
    Points
    74
    Par défaut [JOOReport] Publipostage avec OpenOffice
    Bonjour,

    J'ai trouvé une bibliothèque (JOOReports) permettant de compléter un document Odt en Java, puis de l'exporter en PDF.

    Mais j'aimerai savoir s'il est possible de définir un tableau dont le nombre de lignes sera inconnu dans le document odt, puis de rajouter les lignes au fur et à mesure dans le traitement Java ?

  2. #2
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Pourquoi ne pas utiliser une ArrayList<String> ?


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  3. #3
    hdd
    hdd est déconnecté
    Membre régulier Avatar de hdd
    Profil pro
    Inscrit en
    Février 2004
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2004
    Messages : 105
    Points : 74
    Points
    74
    Par défaut
    Le code de remplacement est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Map model = new HashMap();
    model.put("Nom", "Mon nom");
          model.put("Prenom", "Mon prenom");
    model.put("dateRenvoi", "01/09/2006");
          DocumentTemplate template = new ZippedDocumentTemplate(new
              FileInputStream("c:\\fichierODT.odt"));
          template.createDocument(model, new FileOutputStream("c:\\essai.odt"));
    Et dans la Map model, on ne peut mettre que des chaines de caractères comme valeurs, pas des tableaux ou des listes.

  4. #4
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    D'après ce que j'ai compris de ton problème:
    tu peux considérer un tableau de String comme une seule chaine avec des délimiteurs (par exemple ':' ), puis tu récupère le champ voulu avec StringTockenizer.


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  5. #5
    hdd
    hdd est déconnecté
    Membre régulier Avatar de hdd
    Profil pro
    Inscrit en
    Février 2004
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2004
    Messages : 105
    Points : 74
    Points
    74
    Par défaut
    Il s'agit d'un document OpenOffice, donc dans le xml mon tableau ressemble à ça :

    Code xml : 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
    <table:table table:name="Tableau1" table:style-name="Tableau1">
    <table:table-column table:style-name="Tableau1.A" table:number-columns-repeated="2"/>
        <table:table-header-rows>
        <table:table-row>
        <table:table-cell table:style-name="Tableau1.A1" office:value-type="string">
    <text:p text:style-name="Table_20_Heading">Titre</text:p>
    </table:table-cell>
        <table:table-cell table:style-name="Tableau1.B1" office:value-type="string">
    <text:p text:style-name="Table_20_Heading">Donnée</text:p>
    </table:table-cell>
    </table:table-row>
    </table:table-header-rows>
        <table:table-row>
        <table:table-cell table:style-name="Tableau1.A2" office:value-type="string">
    <text:p text:style-name="Table_20_Contents">${titre}</text:p>
    </table:table-cell>
    <table:table-cell table:style-name="Tableau1.B2" office:value-type="string">
    <text:p text:style-name="Table_20_Contents">${donnee}</text:p>
    </table:table-cell>
    </table:table-row>
    </table:table>

    Quelqu'un a-t-il déjà utilisé FreeMarker ?

  6. #6
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Peux-tu mieux expliquer le résultat voulu à partir de ce document xml ?
    As-pensé à utiliser un parser xml du style de DOM ou SAX ?


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  7. #7
    hdd
    hdd est déconnecté
    Membre régulier Avatar de hdd
    Profil pro
    Inscrit en
    Février 2004
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2004
    Messages : 105
    Points : 74
    Points
    74
    Par défaut
    En bref : j'ai un document Odt. Je sais comment changer des variables en Java à l'aide JOOReports, mais je ne sais pas comment faire lorsqu'il s'agit d'un tableau.

  8. #8
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    ah d'accord, c'est un tableau au sens de OOo et non de java.
    Je ne connais absolument l'api de OOo. Est-il possible de transformer un .odt en un fichier xml ? je pose cette question car il serait plus facile avec du xml d'extraire des données.


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  9. #9
    hdd
    hdd est déconnecté
    Membre régulier Avatar de hdd
    Profil pro
    Inscrit en
    Février 2004
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2004
    Messages : 105
    Points : 74
    Points
    74
    Par défaut
    Un fichier odt contient un fichier content.xml. Et il est apparemment possible de rajouter des lignes avec la librairie FreeMarker, mais je ne trouve pas d'exemple.

  10. #10
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Pourquoi utiliser une librairie externe ?? tu charge ton fichier en mémoire, tu fais ton traitement dessus puis tu le sauvegarde.


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  11. #11
    hdd
    hdd est déconnecté
    Membre régulier Avatar de hdd
    Profil pro
    Inscrit en
    Février 2004
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2004
    Messages : 105
    Points : 74
    Points
    74
    Par défaut
    La librairie JOOReports permet de faire du publi-postage sur les documents OpenOffice, et c'est ce dont j'ai besoin. Donc pourquoi redévelopper ce qui existe

    Reste le problème des listes et tableaux ...

  12. #12
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Citation Envoyé par hdd
    La librairie JOOReports permet de faire du publi-postage sur les documents OpenOffice, et c'est ce dont j'ai besoin. Donc pourquoi redévelopper ce qui existe
    dans ce cas...

    Reste le problème des listes et tableaux ...
    désolé mais je ne peux t'aider d'avantage, je ne connais pas assez l'api OOo


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  13. #13
    Candidat au Club
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut mmh
    Ok un vieux thread mais j'ai eu ce problème alors je répond.
    rajouter des lignes par java je vois pa trop... ce que ca voudrai dire, mais tu peux afficher une liste d'objets dans un tableau de la manière suivante :

    dans ton fichier .odt tu fais un tableau d'une ligne et du nombre de colonne désiré.

    tu insère un script (->insertion ->script sous openoffice) de type "JOOScript" (et pas JAVAScript).

    puis tu fai un copier coller de ce que tu peux retrouver sur le site de l'api

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @table:table-row
    [#list TaListeDobjet as objet]
    @/table:table-row
    [/#list]
    donc ca c'est dans le script qui doit être insérer sur la ligne que tu veux répéter autant de fois qu'il y a d'élément dans ta liste.(dans la première case)

    ensuite tu peux insérer graphiquement dans chaque case de cette ligne les données que tu veux sur l'objet :
    par exemple :
    case 1 (là ou ya ton script ) : ${objet.propriété1}
    case 2 ${objet.propriété2}

    évidement vaut mieux que ces propriétés soient définies - du moins qu'il existe des getters qui renvoient quelque chose pour ces propriétés.

Discussions similaires

  1. [WD17] Publipostage avec OpenOffice Writer
    Par jer64 dans le forum WinDev
    Réponses: 0
    Dernier message: 04/03/2013, 14h12
  2. Publipostage de tableaux avec openoffice.
    Par Empty_body dans le forum Documents
    Réponses: 0
    Dernier message: 05/07/2010, 18h02
  3. Publipostage avec OpenOffice
    Par Ggamer dans le forum Bibliothèques tierces
    Réponses: 3
    Dernier message: 12/04/2008, 13h11
  4. Interbase et publipostage avec word
    Par gdicom dans le forum InterBase
    Réponses: 3
    Dernier message: 01/10/2004, 10h06
  5. [OLE] Publipostage avec Word
    Par claude delattre dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 06/01/2004, 14h59

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