Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

API POUR FAIRE DES WORD DOC A PARTIR DE FICHIER TEXTE


Information sur la source

Catégorie :Api Classé sous : word, document, api, texte, convertir Niveau : Débutant Date de création : 30/05/2005 Date de mise à jour : 31/05/2005 10:57:01 Vu : 9 078

Note :
Aucune note

Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

Description

juste il faut compiler la classe sous eclipse par exemple puis:
java -classpath C:\path\to\rtf;C:\path\to\itext-1.3.jar rtf.main "le nom du fichier texte
(ca compile direct dans eclipse mais attention => utilise le fichier text.txt)

attention cette source ce base sur le rtf qui est compris par l'ami Word .

C'est la suite de http://www.javafr.com/code.aspx?ID=31648 qui permet de générer des pdf avec la même librairie!
 

Source

  • /**
  • *
  • */
  • package rtf;
  • import java.io.BufferedReader;
  • import java.io.File;
  • import java.io.FileOutputStream;
  • import java.io.FileReader;
  • import java.io.IOException;
  • import com.lowagie.text.*;
  • import com.lowagie.text.rtf.RtfWriter2;
  • /**
  • * @author Lopez Thomas
  • *
  • */
  • public class main {
  • /**
  • * @param args
  • */
  • public static void main(String[] args) {
  • // TODO Auto-generated method stub
  • String[] data=null;
  • String fileo = "test.txt";
  • try{
  • fileo = args[0];
  • }catch(Exception e){
  • System.out.println("pas de fichier de configuration");
  • fileo = "test.txt";
  • }
  • data = readFile(fileo);
  • System.out.println(makepdf(data,"test"));
  • }
  • private static String makepdf(String[] datapdf,String file) {
  • // TODO Auto-generated method stub
  • String output="generation reussie";
  • Document document = new Document();
  • try {
  • RtfWriter2.getInstance(document,
  • new FileOutputStream(file+".doc"));
  • document.open();
  • int i=0;
  • /*changer la font
  • * RtfFont rtfFont = new RtfFont("Comic Sans MS");
  • * Paragraph para = new Paragraph("This is a paragraph in Comic Sans MS", rtfFont);
  • * */
  • for(i=0;i<(datapdf.length );i++){
  • document.add(new Paragraph(datapdf[i]));}
  • } catch (DocumentException de) {
  • output = "generation pas reussie " ;
  • System.err.println(de.getMessage());
  • } catch (IOException ioe) {
  • output = "generation pas reussie exception" ;
  • System.err.println(ioe.getMessage());
  • }
  • document.close();
  • return output;
  • }
  • public static String[] readFile(String f) {
  • String[] data = null;
  • File ft= new File("C:/path/to/",f);
  • if (ft.exists()) {
  • System.out.println("Ouverture du fichier");
  • }else{
  • System.out.println("fichier n'exite pas");
  • }
  • int taille = linesInFile(ft);
  • System.out.println(taille);
  • data = new String[taille];//
  • try {
  • BufferedReader in = new BufferedReader(new FileReader(f));
  • String str;
  • int i=0;
  • while ((str = in.readLine()) != null) {
  • data[i] = str;
  • System.out.println(data[i]);
  • i++;
  • }
  • in.close();
  • } catch (IOException e) {
  • data[0] = "erreur";
  • return data;
  • }
  • return data;
  • }
  • private static int linesInFile( File file )
  • {
  • int cpt = 0;
  • try
  • {
  • String fic = file.getName().toLowerCase();
  • if (file.isFile())
  • {
  • BufferedReader bfr = new BufferedReader( new FileReader( file ) );
  • while( bfr.readLine() != null ) { cpt++; }
  • }
  • }
  • catch (Exception e)
  • {
  • System.out.println( "linesInFile eror :" + e );
  • }
  • return cpt;
  • }
  • }
/**
 * 
 */
package rtf;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;


import com.lowagie.text.*;
import com.lowagie.text.rtf.RtfWriter2;

/**
 * @author Lopez Thomas
 *
 */
public class main {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String[] data=null;
		String fileo = "test.txt";
		try{
		fileo =  args[0];
		}catch(Exception e){
			System.out.println("pas de fichier de configuration");
			fileo = "test.txt";
		}
		data = readFile(fileo);
		System.out.println(makepdf(data,"test"));		
    }
	private static String makepdf(String[] datapdf,String file) {
		// TODO Auto-generated method stub
		String output="generation reussie";
			Document document = new Document();
			try {
				RtfWriter2.getInstance(document,
					new FileOutputStream(file+".doc"));
				document.open();
				int i=0;
				/*changer la font
				 * RtfFont rtfFont = new RtfFont("Comic Sans MS");
				 * Paragraph para = new Paragraph("This is a paragraph in Comic Sans MS", rtfFont);
				 * */
				for(i=0;i<(datapdf.length );i++){
					document.add(new Paragraph(datapdf[i]));}
				
			} catch (DocumentException de) {
				output = "generation pas reussie " ;
				System.err.println(de.getMessage());
			} catch (IOException ioe) {
				output = "generation pas reussie exception" ;
				System.err.println(ioe.getMessage());
			}
			document.close();
		
		
		return output;
	}

	public static String[] readFile(String f) {
	String[] data = null;
	File ft= new File("C:/path/to/",f);
	if (ft.exists()) {
		System.out.println("Ouverture du fichier");
	}else{
		System.out.println("fichier n'exite pas");
	}
	int taille = linesInFile(ft);
	System.out.println(taille);
	data = new String[taille];//
		try {
			 BufferedReader in = new BufferedReader(new FileReader(f));
			 String str;
			 int i=0;
			 while ((str = in.readLine()) != null) {
			 data[i] = str;
			 System.out.println(data[i]);
			 i++;
			 }
			 in.close();
			 } catch (IOException e) {
				 data[0] = "erreur";
				 return data;
			 } 
	return data;    
	}
	private static int linesInFile( File file )
	{
	int cpt = 0;
	try
	{
	String fic = file.getName().toLowerCase();
	if (file.isFile())
	{
	BufferedReader bfr = new BufferedReader( new FileReader( file ) );
	         while( bfr.readLine() != null ) { cpt++; }
	        }
	}
	catch (Exception e)
	{
	          System.out.println( "linesInFile eror :" + e );
	}
	return cpt;
	}	
}

Conclusion

Voila .

le zip est dispo avec la librairie:
http://lopez.thomas1.free.f/Java/doc.zip (1.1Mo)
explication sur mon site:
http://lopez.thomas1.free.fr/Java/exe.php
 

Historique

30 mai 2005 10:24:35 :
rajout mode de compilation ;)
31 mai 2005 10:57:01 :
rajout lien update final

Commentaires et avis

signaler à un administrateur
Commentaire de Hydro42 le 29/05/2007 07:21:23

Bonjour,

J'espère que vous allez pouvoir m'aider.
J'ai un immense fichier .TXT contenant des documents que je désirerais transformer en plusieurs .DOC. Chacune des lignes du  fichier est suivie d'un suffixe contenant les caractéristiques
des documents à créer (nom, marges, police, répertoire, etc).
Cette application doit être exécutée en batch car j'ai plus de 5,000 documents à créer à chaque jour.

Merci à l'avance...  

Hydro42
hydrogene@hotmail.com

signaler à un administrateur
Commentaire de Syruis le 29/05/2007 09:43:17

Salut,

Ton problème est simple et tu as deux solutions...
1) Sale mais rapide:
tu fais un batch qui parse ton txt et le sépare en plusieurs txt ( que tu peux supprimer après ) puis tu utilises mon source pour faire des rtf.

2) Bien mais plus long moins sale et plus rapide à l'exécution...
Tu fais un parser qui charge en mémoire des txt en fonction de tes paramètres de parse.
Puis tu écris des doc.
Facile également.

si tu veux me contacter pour me donner des exemples ou tes problèmes :
http://lopez.thomas1.free.fr/Linux/mail.php

signaler à un administrateur
Commentaire de devamine le 14/06/2007 16:13:59

SLT
je viens de découvrire ton code c ça ce ke je veux mais le problème il ne fonctionne pas et m donne cette exception:
"pas de fichier de configuration
Ouverture du fichier
1
generation reussie"a
merci

signaler à un administrateur
Commentaire de Syruis le 14/06/2007 16:42:57

Lis le code...
# String fileo = "test.txt";
# try{
# fileo = args[0];
# }catch(Exception e){
# System.out.println("pas de fichier de configuration");
# fileo = "test.txt";
# }
# data = readFile(fileo);
# System.out.println(makepdf(data,"test")); //lancement de la génération

Ce code parse un fichier "test.txt" qui contient les noms des fichiers Word.

Courage,

signaler à un administrateur
Commentaire de Syruis le 14/06/2007 16:44:42

Je me suis mal exprimé il parse le contenu du fichier "test.txt" ( tu me modifier )

Si il n'y a pas de fichier ca te créer un fichier vide...

++

signaler à un administrateur
Commentaire de devamine le 14/06/2007 17:05:22

slt
merci
j veux tester
cdt

signaler à un administrateur
Commentaire de devamine le 14/06/2007 17:13:28

slt
j mexcuse mais j'ai créer un  fichier .doc dans le disque c et aussi un fichier .txt qui contient un ligne et j'ai donné un autre path pour la foction readfile cel ou j'ai crrér lé documment(c) mais toujour il ne fonctionne plus
merci de ton aide mais si tu permet ecris les étape pas à pas j'ai déja réaliser un class qui génère un .xls et ça fonctionne bien
crdt

signaler à un administrateur
Commentaire de Syruis le 14/06/2007 17:28:09

Tu as compilé avec les bonnes librairies ???

Tu as aussi des docs sur la librairie ici:
http://www.javafr.com/code.aspx?ID=31648

signaler à un administrateur
Commentaire de devamine le 14/06/2007 17:30:30

oui..............

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

COPIER COLLER WORD JAVA [ par nox_nono56 ] &nbsp;Comment copier/coller un texte format&#233; sous Word (soulign&#233;,italique,gras) vers une zone de texte java (pour moi JTextPane) en gardant recuperer un document WORD a partir de JBuilder [ par amelA ] bonjour tout le monde,j'aimerai savoir comment recuperer un document word &#224; partir de JBuilder avec un simple clik sur un boutton(qu'on cr&#233;e Problème bizarre !!!!!!!!!? [ par kaninama ] Bonjour tout le monde, J&#146;ais un pb un peu bizarre que je vous explique, Je parse un document XML avec JDOM la il n y a aucun pb, je manipule Problème bizarre !!!!!!!!!? [ par kaninama ] Bonjour tout le monde, J&#146;ais un pb un peu bizarre que je vous explique, Je parse un document XML avec JDOM la il n y a aucun pb, je manipule manipulation document word [ par ludoW21 ] Bonjour,j'aimerais savoir si il existe une API permettant de modifier/manipuler des documents Word.Merci d'avance,Ludo extraction données d'un document HTML [ par gadour_esz ] salut,je suis entrain d'écrir un programme en java qui manipule un fichier texte.le problème est que je doit réccupurer le texte d'un document HTMLje Exporter un formulaire entier vers un document texte imprimable [ par beberto56 ] Bonjour,J'ai créé un formulaire java (ihm créée avec netbeans côté design) qui est éxécutable à partir d'un .jar et qui s'ouvre dans une fenêtre.J'aim Convertir du HTML en texte afin de l'afficher dans un JTextArea [ par nico971gwada ] Salut, Je d&#233;bute en java et j'ai un petit probl&#232;me. J'ai un projet &#224; faire &#224; l'&#233;cole un truc pas tr&#232;s compliqu&#233; : éditeur de texte évolué [ par predateuraud ] Bonjour,je programme actuellement en java une sorte d'&#233;diteur de texte un peu comme&nbsp; word mais &#224; ma sauce.&nbsp;La zone de texte est en Generation XML /XSLT et Format Blob [ par Maiku ] BonjourJ'ai trois problemes problèmes assez complexe, enfin de mon point de vue :J'ai un page jsp qui recupere des données d'un formulaire avec entre


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,593 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.