Androidで.docxファイルを表示したい。View
このファイルには、数学記号と、テキストの間に画像が含まれています。swipe
そのようなファイルをたくさん表示して、ジェスチャーでめくってみたい。.txtファイルに対しても同じことを成功させました。また、スワイプで次のページに簡単に移動できるようになりました。.txtファイルのコードは次のとおりです。
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;
}
このコードは、次に my に表示するテキストを返しますTextView
。このようにして、ファイルの名前を動的に変更し、スワイプするとテキストが変更されるだけです。
テキスト、画像、数学記号を含む MS Word ファイル (.docx) を表示できるように、このコードを変更したいと思います。
スタック オーバーフローに関するこのトピックについて、他のフォーラムと同様に多くの同様のスレッドを既に確認しました。これらは、多くの人が同様の質問に対する回答として提案したリンクであり、私はすでにこれらを試しました: Link1およびlink2
また、他の多くのスレッドで、人々はJopendocumentを推奨しています。私もそれについて読んで、Android がオープン ドキュメント形式をサポートしていないことを知りました。そのオプションはありそうにないようです。しかし、JOpenDocument ライブラリをプロジェクトに追加してリッチ テキストを表示することに関する回避策や詳細な説明がある場合は、その解決策を共有してください。
Android でリッチワードファイルを表示するためのOliveDocLibraryという別のライブラリもあります。これは、libをダウンロードした場所からのリンクです。そのダウンロード パッケージに含まれるデモは問題なく動作しますが、lib は試用版です。そのため、現在このライブラリを使用して、どこに行くのかを確認しようとしています。しかし、まだより良いオプションを探しています。
これに関するヘルプは大歓迎です。上記以外のご指摘も大歓迎です。
アップデート:
この質問で始めた最初の報奨金で、 Apache POI (より具体的には HWPF)の使用を伝える提案を受けました。しばらく Apache POI を調べた後、doc ファイルへの書き込み、doc ファイルの読み取り、Excel シートの更新などのコードをいくつか取得しました。
インターネットで見つけたそのようなサンプルコード(Java用)は次のようになります:
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){}
}
}
そこで、このライブラリ (Apache POI) を Eclipse の Android プロジェクトに追加し、いくつかの変更を加えてこのサンプル コードを試しました。で表示してみましたTextView
。ここでの問題は、OliveDocLibraryのように画像が表示されないことです。したがって、誰かが Apache POI を提案する場合、docxファイルとそのすべてのコンテンツ (画像を含む) を読み取り、それらをカスタム ビューに表示するソリッド ポインターまたはコードを要求します。
Apache POIは素晴らしいものですが、残念ながら、これらのライブラリを実装する良い例やサンプルは見つかりませんでした。良い例の情報源 (MS ワードのみ) を知っている場合は、コメントでそれらを共有してください。
更新 2 :
OliveDocLibraryパッケージでは、提供されたコードは正常に動作します。ただ、ビューにオリーブのウォーターマークがあります。現在、そのコードの実行に取り組んでSwipe
います。しかし、試用版であるという問題が残ります。
更新 3:
OliveDocLibraryが最も効率的な方法だと思います。試用版であるという欠点はありますが、このライブラリよりも私の特定の要件を完全に満たしてくれるライブラリは他にないと思います。詳細な回答は以下に掲載されています。バウンティタイムが過ぎようとしているので。別のより良い解決策を持っている可能性のある人には、できるだけ早く投稿するようお願いします。今のところ、 OliveDocLibraryを使用し、自分の回答を受け入れます。