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 :

Apache POI - HWPF cr�ation de document word bas� sur template


Sujet :

Documents Java

  1. #1
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par d�faut Apache POI - HWPF cr�ation de document word bas� sur template
    Hello,

    Je recherche tout type de documents concernant la manipulation de document word avec Apache POI - HWPF mon but est de traiter un fichier bas� sur un template et d'y remplacer des valeurs ou des champs d�finis

    d'avance je vous remercie

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par d�faut
    A premi�re vue aucune doc n'existe sur le sujet et le projet n'est pas mature que pensez-vous de open office api ?

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189

  4. #4
    Expert confirm�
    Avatar de sinok
    Profil pro
    Inscrit en
    Ao�t 2004
    Messages
    8 765
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 8 765
    Par d�faut
    En ce qui concerne la production de document Word tu ne trouveras rien de correct en libre...

    Puis pour les solutions XML de microsoft, elles ne concernent qu'un petit subset de versions d'office (2007 a la sienne, 2003 la sienne et elles sont incompatibles)....

    Sinon tu peux faire du RTF avec des choses comme RTFTemplate.

    Ou sinon tu as OpenDocument qui est support� par OOO et sera support� dans les prochaines release d'office, et qui est un standard iso (mais bon le temps de faire comprendre �a a une boite...). De plus OpenOffice propose une API Java pour l'OpenDocument. Et puis il existe des API java pour la conversion entre les diff�rents formats: http://www.artofsolving.com/opensource/jodconverter

  5. #5
    Membre Expert Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 58
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Par d�faut Bonjour
    Bonjour,

    Je suis en train de travailler sur le sujet , j'ai explorer pas mal de possibilit�s.
    En fait l'api d'open Office te permet de faire ce que tu recherches, je viens de cr�er mon premier docuemnt gr�ce au SDK open office.


    Inconv�nient : doc in english and not very simple for an new user ...
    Avantage : T'as pas de limite sinon le temps d'apprentissage,

    Je suis en train d'essayer de coder un mod�le et cela fonctionne en java.

    Word = crosoft donc proprio donc not open
    Open document

    olivier

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par d�faut
    j ai discut� avec mon chef de projet, il m'a dit que pour que XXXX passe au solution open office il faudrait du temps ... voir jamais ils sont tr�s attach�s au standards microsoft

    j ai fait une function de proof of concept pour WordML et miracle ca fonctionne tr�s bien pour un template g�n�r� avec office 2003 et le document g�n�r� s ouvre tr�s bien avec 2007


    et c'est d'une simplicit� enfantine

    voici le code (pas beau)

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    package com.test;
    import java.io.BufferedInputStream;
    import java.io.BufferedReader;
    import java.io.DataInputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.io.PrintStream;
     
     
    public class WordML {
     
    	public static void createPermisDeConstruireDocument() {
    		File file =	new File("C:\\fiche_1.xml");
    		FileInputStream fis = null;
    		BufferedInputStream bis =null;
    		DataInputStream dis = null;
    		FileOutputStream out;
    		// declare a file output object
    		PrintStream p;
    		// declare a print stream object
    		try {
    			String commune = "Fribourg";
    			String mimeEncoding ="8859_1";
    			String fileName ="123123";
    			out =new FileOutputStream("C:\\" + fileName + ".xml");
    			OutputStreamWriter outW = new OutputStreamWriter(out, mimeEncoding);
    			// Connect print stream to the output stream
    			p =	new PrintStream( out );
    			fis = new FileInputStream(file);
    			// Here BufferedInputStream is added for fast reading.
    			bis = new BufferedInputStream(fis);
    			dis = new DataInputStream(bis);
    			while (dis.available() != 0) {
    				String line = dis.readLine();
    				//line = XmlEncode(line);
    				line = line.replace("$commune", commune);
    				outW.write(line);
    				System.out.println(line);
    				System.out.println("\n");
    			}
    			outW.flush();
    			outW.close();
    			p.close();
    		}
    		catch (Exception ex) {
    			System.out.println("Exception : " + ex.getMessage());
    		}
    		finally {
    			try{
    				fis.close();
    				dis.close();
    			}
    		catch (Exception ex) {
    			System.out.println("Exception : " + ex.getMessage());
    		}
     
    	}		
    }
    	public static void main (String [] args) {
    		WordML.createPermisDeConstruireDocument();
    	}
    }

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Ao�t 2007
    Messages
    59
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 59
    Par d�faut Microsoft, un standard, on aura tout vu...
    Bonjour Alexandre,

    Je me permet de te citer :
    Citation Envoy� par *alexandre* Voir le message
    j ai discut� avec mon chef de projet, il m'a dit que pour que l'�tat passe au solution open office il faudrait du temps ... voir jamais ils sont tr�s attach�s au standards microsoft
    Tu pourras dire � ton chef de projet et � tes clients que Microsoft n'est pas un standard, c'est une entreprise multinationale qui n'a qu'un seul et unique int�r�t : faire du profit sur le dos de ses clients.

    A ton chef de projet de voir s'il veut que tes d�veloppements (qui co�tent cher) ne soient plus valable dans 2 ou 3 ans, car M$ aura d'ici-l� sorti encore une nouvelle version de ses produits... et faire d�pendre son projet du degr� d'avarice d'une firme, c'est assez... comment dire... dangereux, non.

    A ta d�charge, je pense que le mot formats �tait vraiment le mot le plus juste dans ce contexte.


    Quant � ta classe, elle ne fait qu'�crire des donn�es prise dans un fichier xml vers un autre fichier xml...
    La pertinence de la manipulation serait au moins d'enregistrer le dit document avec l'extension consacr�e (.doc) et d'y mettre le contenu de ton template word (avec les subsitutions/insertions aux bons emplacements).

    Ceux qui ne sont pas habitu�s � Java (ou Perl ou Python ou PHP et autres langages libres) ne sont pas tr�s familiers de ce que le mot libert� signifie en d�veloppement. Mais il est vrai que ta m�thode est bien la bonne, il suffit d'utiliser les classes de base de gestion des flux en java pour y arriver tranquillement.

    Bien cordialement.

  8. #8
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par d�faut
    Tu as tout � fait raison c'�tait bien de format ce dont je parlais je vais �tendre mon petit proof of concept � d'autres utilisation

  9. #9
    Membre du Club
    Homme Profil pro
    Analyste cogniticien
    Inscrit en
    D�cembre 2004
    Messages
    7
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activit� : Analyste cogniticien
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 7
    Par d�faut prise en charge caract�res accentu�s
    Citation Envoy� par *alexandre* Voir le message
    j ai discut� avec mon chef de projet, il m'a dit que pour que XXXX passe au solution open office il faudrait du temps ... voir jamais ils sont tr�s attach�s au standards microsoft

    j ai fait une function de proof of concept pour WordML et miracle ca fonctionne tr�s bien pour un template g�n�r� avec office 2003 et le document g�n�r� s ouvre tr�s bien avec 2007


    et c'est d'une simplicit� enfantine

    voici le code (pas beau)

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    package com.test;
    import java.io.BufferedInputStream;
    import java.io.BufferedReader;
    import java.io.DataInputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.io.PrintStream;
     
     
    public class WordML {
     
    	public static void createPermisDeConstruireDocument() {
    		File file =	new File("C:\\fiche_1.xml");
    		FileInputStream fis = null;
    		BufferedInputStream bis =null;
    		DataInputStream dis = null;
    		FileOutputStream out;
    		// declare a file output object
    		PrintStream p;
    		// declare a print stream object
    		try {
    			String commune = "Fribourg";
    			String mimeEncoding ="8859_1";
    			String fileName ="123123";
    			out =new FileOutputStream("C:\\" + fileName + ".xml");
    			OutputStreamWriter outW = new OutputStreamWriter(out, mimeEncoding);
    			// Connect print stream to the output stream
    			p =	new PrintStream( out );
    			fis = new FileInputStream(file);
    			// Here BufferedInputStream is added for fast reading.
    			bis = new BufferedInputStream(fis);
    			dis = new DataInputStream(bis);
    			while (dis.available() != 0) {
    				String line = dis.readLine();
    				//line = XmlEncode(line);
    				line = line.replace("$commune", commune);
    				outW.write(line);
    				System.out.println(line);
    				System.out.println("\n");
    			}
    			outW.flush();
    			outW.close();
    			p.close();
    		}
    		catch (Exception ex) {
    			System.out.println("Exception : " + ex.getMessage());
    		}
    		finally {
    			try{
    				fis.close();
    				dis.close();
    			}
    		catch (Exception ex) {
    			System.out.println("Exception : " + ex.getMessage());
    		}
     
    	}		
    }
    	public static void main (String [] args) {
    		WordML.createPermisDeConstruireDocument();
    	}
    }
    super ta combine. J'ai juste un pb avec la gestion des caract�res accentu�s. une id�e ?

    merci

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 2
    Dernier message: 02/01/2013, 15h34
  2. R�ponses: 1
    Dernier message: 03/04/2011, 18h30
  3. R�ponses: 1
    Dernier message: 07/10/2010, 09h01
  4. R�ponses: 0
    Dernier message: 27/10/2008, 14h58
  5. Cr�ation de documents word
    Par antiseche dans le forum C++
    R�ponses: 3
    Dernier message: 23/06/2006, 15h34

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