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 :

Comment effectuer un publipostage massif en Java ?


Sujet :

Documents Java

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1
    Par défaut Comment effectuer un publipostage massif en Java ?
    bonjour,

    Connaissez-vous un moyen d'effectuer un publipostage en masse en java à partir de fichiers créés avec Word 2007 (docx, rtf, xml...)?

    Dans l'idéal, le mécanisme serais le suivant :
    - l'utilisateur créé son modèle de document sous Word en insérant, d'une façon ou d'une autre, des marqueurs pour fusionner les données
    - l'utilisateur effectue une requête sur une application web métier développée en java. Par exemple: "affiche moi les 400 clients les plus importants"
    - l'utilisateur envoie son modèle de document à l'application qui lui retourne un nouveau document de 400 pages, avec 1 page par client.
    - l'utilisateur imprime le document de 400 pages, puis glisse chaque page dans une enveloppe et ça part au courrier

    En lisant le forum j'ai noté que JODReports et surtout XdocReport pouvaient être utilisés à cette fin.

    Le soucis c'est que je ne parviens, au mieux, qu'à générer une archive .zip contenant les 400 documents. Afin de pouvoir imprimer facilement, je cherche un moyen d'obtenir un seul document de 400 pages.

    quelques remarques complémentaires :

    il est impératif que les modèles de document soient créés avec Word. En revanche, ils peuvent être enregistrés dans n'importe quel format (doc, docx, rtf, xml...) du moment que la présentation et le contenu soit préservés.

    J'ai également envisagé d'exporter les données de la requête de l'utilisateur au format Excel, puis d'effectuer le publipostage de façon habituelle directement dans Word. Le soucis avec cette méthode c'est que l'utilisateur doit générer un export avant chaque publipostage pour avoir des données à jour, et l'expérience montre que beaucoup ne le font pas et réutilisent encore et toujours le même fichier Excel...

    voilà je sèche un peu là dessus, alors si vous avez un avis ou des conseils etc... n'hésitez pas !

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    tu ne pourra pas, je pense, généré un template compatible jodreport directement avec ms office. Mais, comme tu as l'air d'indiquer que t'y arrive (sauf que tu fait 1 fichier par client), regarde bien la doc de jodreport, il y a une instruction que tu peux utiliser pour faire des boucle et répeter N fois une section du document avec des données différentes.

  3. #3
    Membre Expert
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Par défaut
    Bonsoir tchize_ et Thieffen,

    tu ne pourra pas, je pense, généré un template compatible jodreport directement avec ms office.
    En effet mais XDocReport supporte docx et odt en source de documents, supporte Freemarker et Velocity, marche en OSGi, supporte la conversion dans d'autres formats (pdf, xhtml sachant que nos converters doivent etre bien ameliores encore).

    Je suis l'un des créateurs de XDocReport donc n'hesites pas a poser tes questions et je pourrais te dire si ce qu etu souhaites faire est possible ou non avec la version actuelle de XDocReport.

    Pour gérer ton cas, l'idéal serait de génerer les N docx et ensuite de les merger en un docx. Cette question revient souvent sur le forum de XDocReport et le merge est une tâche difficile (et je ne sais pas si c'est vraiment dans le scope de XDocReport, plus vers POI XWPF je pense).

    Comme le suggère tchize_, tu peux gérer des boucles (avce #foreeach avec Velocity et [#list avec Freemarker). Ton docx au lieu de travailler avec un client simple, il travaille avec une liste de client s. Tu mets au debut de ton document un #foreach et a la fin un #end et tu passes dans ton contexte Java la liste des clients.

    Ce procédé marchera, mais concernant la gestion de mise en page (ex: mettre un saut de page a chaque client, je n'ai jamais encore trop fait).

    Bon courage

    Angelo

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Je suppose que ça marche aussi avec XDocReport, mais un truc que je fais avec JodReport, c'est ceci:
    une table sans bordure visible contenant une ligne de une colonne. Je fais toute ma mise en page dans cette cellule qui est fixée à la hauteur de page. Ensuite, j'utiliser un instruction #List en demandant de répéter la table ou la ligne (au choix). Ca a le même effet de retours à la page suivante à moindre effort
    Et la table ne se vois pas en mode "impression", donc c'est un moindre mal

Discussions similaires

  1. Réponses: 5
    Dernier message: 06/10/2011, 14h43
  2. Comment faire du publipostage en java?
    Par nam90 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 27/04/2009, 15h26
  3. Comment effectuer un retour chariot dans 1 JTextarea
    Par elitost dans le forum Composants
    Réponses: 2
    Dernier message: 21/06/2004, 17h18
  4. [DOM] Comment créer des flux XML en java ?
    Par nean_j dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 27/04/2004, 12h00
  5. Comment generer un fichier war dans java
    Par relivio dans le forum ANT
    Réponses: 4
    Dernier message: 12/03/2004, 13h43

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