Newsgroup: it.comp.java
Titolo: java e documento word

Salve a tutti, devo visualizzare un file di word tramite una
applicazione java.
Il file può avere sia l'estensione .doc, sia l'estensione .rtf.
Ho trovato diversi codici sulle migliaia di siti che sto girando da 24
ore ma non funziona nulla.
Il codice dovrebbe essere questo:
import java.awt.*;
import java.io.*;
import javax.swing.*;
import javax.swing.text.*;
import javax.swing.text.rtf.*;
class RTFView extends 	JFrame
{
	public RTFView()
	{
		setTitle( "RTF Text Application" );
		setSize( 400, 240 );
		setBackground( Color.gray );
		getContentPane().setLayout( new BorderLayout() );
		JPanel topPanel = new JPanel();
		topPanel.setLayout( new BorderLayout() );
		getContentPane().add( topPanel, BorderLayout.CENTER );
		// Create an RTF editor window
		RTFEditorKit rtf = new RTFEditorKit();
		JEditorPane editor = new JEditorPane();
		editor.setEditorKit( rtf );
		editor.setBackground( Color.white );
		// This text could be big so add a scroll pane
		JScrollPane scroller = new JScrollPane();
		scroller.getViewport().add( editor );
		topPanel.add( scroller, BorderLayout.CENTER );
		// Load an RTF file into the editor
		try {
			FileInputStream fi = new FileInputStream( "prova.doc" );
			rtf.read( fi, editor.getDocument(), 0 );
		}
		catch( FileNotFoundException e )
		{
			System.out.println( "File not found" );
		}
		catch( IOException e )
		{
			System.out.println( "I/O error" );
		}
		catch( BadLocationException e )
		{
		}
	}
	public static void main( String args[] )
	{
		// Create an instance of the test application
		RTFView mainFrame	= new RTFView();
		mainFrame.setVisible( true );
	}
}
Se metto "prova.doc" non mi visualizza nulla, se metto "prova.rtf" mi
da una java.lang.NullPointerException quando analizza il file.
Quale potrebbe essere il problema?
Grazie per l'aiuto.

ciao,
hai controllato che il documento abbia il path relativo all'applicazione
corretto?
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Il file può avere sia l'estensione .doc, sia l'estensione .rtf.
Scusa, dove hai trovato delle librerie che leggono i file .doc?

 Grazie per l'aiuto.
Per il nullpointerexception mi collego a quello che dice GiGi (prova ad
usare magari il percorso completo del documento).
Riguardo ai file di Word (e per rispondere anche a Portos), il formato RTF è
molto diverso da DOC, nello specifico se apri un RTF nel blocco note riesci
ancora a leggere i vari "tag" (diversi dai tag html) che impostano gli
attributi del documento.
Il formato DOC è un derivato di Ole2-CDF (Compound Document Format),
sviluppato da Microsoft ed usato praticamente da tutte le applicazioni della
suite Office. Un documento CDF è come un piccolo filesystem, con un suo
indice di risorse, puntatori ad offset all'interno del file stesso e cluster
("pezzi") concatenati tra loro. Tra le API standard fornite dalla SUN non
c'è nulla che permetta di leggere/modificare questi documenti. La soluzione
arriva dal progetto Jakarta, sotto l'ègida di Apache, e si chiama POI:
http://jakarta.apache.org/poi/
Tra i sottoprogetti puoi trovare:
POIFS - Metodi per facilitare l'accesso alle singole risorse pubblicate in
un CDF
HSSF  - Usa POIFS per la lettura/modifica/creazione di file XLS (Excel 97 in
avanti)... questo vuol dire che puoi generare un XLS nativo all'interno di
un server con sopra installato Linux :> occhio che questo non riguarda le
macro o qualunque funzione associata a VB, e non permette nemmeno di creare
tabelle Pivot.
HWPF  - Sempre basato su POIFS, consente di leggere (la modifica non è
consigliata) i documenti di Word (97 in avanti). Per caso ti serve? ^_^
HPSF  - Non riguarda nessun formato particolare, però può tornarti utile se
qualche documento generato in Office (anche diapositive PowerPoint) contiene
proprietà custom... Questa libreria ti consente di leggere/modificare/creare
tali proprietà (oltre all'elaborazione di quelle standard).
Per darti un suggerimento su come utilizzare l'ultima libreria, conta che un
documento XLS, DOC o PPT (MDB non saprei, forse non è nemmeno un CDF) può
contenere macro/procedure Visual Basic che hanno pieno accesso alle
proprietà CDF. Se prima di aprire un documento usi HPSF per modificare
queste proprietà... vedi un po' te, il limite è solo la fantasia ;)
-- 
Fermate Scientology prima che sia troppo tardi!!!
http://xenu.com-it.net
 - 
http://xenu.freewinds.cx/
(per rispondere personalmente leva IlDitoDalCulo)

 corretto?
Scusa l'ignoranza ma cosa significa?

 corretto?
Penso di aver risolto il problema che mi dicevi, infatti la'eccezione
non me la genera +, però non mi visualizza niente.
Da cosa può dipendere?

 consigliata) i documenti di Word (97 in avanti). Per caso ti serve? ^_^
grazie del mega spiegone...
io dovrei solo aprire un documento di word in una applicazione java. questo
che mi hai indicato può servirmi a quanto pare... dove posso trovarlo?
grazie