Desidero visualizzare un file .docx in un View
in Android. Il file ha simboli matematici e anche immagini tra il testo. Voglio visualizzare molti di questi file e sfogliarli tramite il gesto swipe
. Ho eseguito lo stesso con successo per i file .txt. E ora puoi facilmente andare alla pagina successiva di scorrimento. Il codice per .txt file è il seguente:Visualizzazione di un file MS Word in visualizzazione (ad esempio TextView) in Android
public String readTxt(String fileName)
{
try {
InputStream is;
is = context.getAssets().open(fileName + ".txt");
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
int i;
i = is.read();
while (i != -1)
{
byteArrayOutputStream.write(i);
i = is.read();
}
is.close();
return byteArrayOutputStream.toString();
}
catch (IOException e)
{
e.printStackTrace();
}
return fileName;
}
Questo codice restituisce il testo che ho quindi visualizzare nella mia TextView
. In questo modo ho solo bisogno di cambiare il nome del file in modo dinamico e scorrere le modifiche del testo.
Ora voglio modificare questo codice in modo che possa visualizzare file MS Word (.docx) che contengono testo, immagini e simboli matematici.
ho già controllato molte discussioni simili su questo argomento su stack overflow così come su altri forum: Questi sono i link molte persone hanno suggerito come risposte a domande simili e mi hanno già dato questi una prova: Link1 e link2
Anche su molti altri thread le persone hanno consigliato Jopendocument. Ho anche letto su questo e ho appreso che Android non supporta il formato di documento aperto. quindi questa opzione sembra improbabile. Ma se avete qualche soluzione o una buona spiegazione dettagliata riguardo all'aggiunta della libreria JOpenDocument al progetto e alla visualizzazione di rich text, condividete la soluzione perché l'ho cercata molto ma non ne ho trovata nessuna.
C'è anche un'altra libreria denominata OliveDocLibrary per visualizzare file word ricchi su Android. ecco il link da dove ho scaricato la libreria. La demo inclusa nel pacchetto di download funziona bene. Ma la versione di prova è una versione di prova. Al momento sto cercando di lavorare con questa libreria e vedere dove va. Ma sono ancora alla ricerca di opzioni migliori.
Qualsiasi aiuto in merito è apprezzato. Qualsiasi suggerimento diverso da quelli sopra menzionati è il benvenuto.
Aggiornamento:
ho ottenuto un suggerimento, che ha detto l'uso di Apache POI (HWPF più precisamente) nella prima taglia ho iniziato su questa questione. Dopo aver esplorato POI di Apache per qualche tempo, ho ricevuto alcuni codici che scrivevano in un file doc, leggendo il file doc, aggiornando i fogli ecc.
Tale codice di esempio (per Java) che ho trovato da Internet va qualcosa in questo modo:
import java.io.*;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;
public class ReadDocFile {
public static void main(String[] args) {
File file = null;
WordExtractor extractor = null ;
try {
file = new File("c:\\New.doc");
FileInputStream fis=new FileInputStream(file.getAbsolutePath());
HWPFDocument document=new HWPFDocument(fis);
extractor = new WordExtractor(document);
String [] fileData = extractor.getParagraphText();
for(int i=0;i<fileData.length;i++){
if(fileData[i] != null)
System.out.println(fileData[i]);
}
}
catch(Exception exep){}
}
}
così ho aggiunto questa libreria (Apache POI) al mio progetto Android in Eclipse e ha cercato questo codice di esempio con alcune modifiche. E ho provato a visualizzarlo su un TextView
. Il problema qui però è che non visualizza le immagini come OliveDocLibrary fa. Quindi, se Qualcuno suggerirà il POI di Apache, richiedo un puntatore o un codice solido che legge un file docx e tutto il suo contenuto (che include le immagini) e li visualizza in una vista personalizzata.
Apache POI è una grande cosa, ma purtroppo non ho trovato esempi/esempi validi che implementassero tali librerie. Se conosci una buona fonte di esempi (solo w.r.t MS word), per favore condividili nei commenti.
Update 2:
Nel pacchetto OliveDocLibrary il codice fornito funziona bene. C'è però il marchio d'acqua di Olive sulla vista. Attualmente sto lavorando per eseguire Swipe
su quel codice. Ma il problema rimane che è una versione di prova.
Update 3:
penso OliveDocLibrary è il modo più efficace per farlo. Anche se ha uno svantaggio di essere una versione di prova, penso che nessun'altra libreria faccia un lavoro migliore di questa libreria per riempire completamente il mio specifico requisito. La risposta dettagliata è stata pubblicata below. Mentre il tempo della taglia sta per finire. Chiederei alle persone che potrebbero avere una soluzione alternativa e migliore di postarlo il prima possibile. Per ora sto andando con OliveDocLibrary e accettando la mia risposta.
Dal thread qui: http://forum.openoffice.org/en/forum/viewtopic.php?f=12&t=38718 Mi aspetterei che sarebbe più semplice trasformare i documenti di Word in pdf e visualizzarli in Android. –
Segui questo link penso che questo è quello che ti serve [Come rendere PDF in Android] (http://stackoverflow.com/questions/2883355/how-to-render-pdf-in-android) è per pdf ti penso può fare lo stesso per i documenti d'ufficio che puoi inviare tramite intent se l'app è già installata o visualizzata in webview con i link di google doc –