【发布时间】:2013-03-19 19:58:26
【问题描述】:
我想在 Android 的 View 中显示 .docx 文件。该文件有数学符号和文本之间的图像。我想显示许多这样的文件并通过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;
}
此代码返回我在TextView 中显示的文本。这样我只需要动态更改文件名并在滑动时更改文本。
现在我想修改这段代码,以便可以显示包含文本、图像和数学符号的 MS Word 文件(.docx)。
我已经在堆栈溢出以及其他论坛上查看了许多关于此主题的类似主题: 这些是许多人建议作为类似问题答案的链接,我已经尝试过:Link1 和 link2
在许多其他线程上,人们也推荐了 Jopendocument。我也读过这方面的内容,并了解到 Android 不支持开放文档格式。所以这个选项似乎不太可能。但是,如果您对将 JOpenDocument 库添加到项目并显示富文本有任何解决方法或详细说明,请分享该解决方案,因为我已经搜索了很多但找不到任何解决方案。
还有一个名为 OliveDocLibrary 的库,用于在 android 上显示丰富的 word 文件。这是我下载库的link。该下载包中包含的演示可以正常工作。但该库是试用版。所以我目前正在尝试使用这个库,看看它的去向。但我仍在寻找更好的选择。
对此的任何帮助表示赞赏。非常欢迎除上述之外的任何指针。
更新:
我收到了一个建议,告诉我在我开始处理这个问题的第一个赏金中使用 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){}
}
}
所以我在 Eclipse 中将这个库(Apache POI)添加到我的 Android 项目中,并尝试了这个示例代码并进行了一些更改。并尝试在TextView 上显示它。但这里的问题是它不像 OliveDocLibrary 那样显示图像。因此,如果有人要推荐 Apache POI,那么我请求一个实心指针或读取 docx 文件和 all 其内容(包括图像)并显示的代码它们在自定义视图中。
Apache POI 是一件很棒的事情,但遗憾的是我没有找到任何实现这些库的好示例/示例。如果您知道很好的示例来源(仅 w.r.t MS word),请在 cmets 中分享。
更新 2:
在 OliveDocLibrary 包中,提供的代码可以正常工作。视图上有橄榄的水印。目前正在对该代码执行Swipe。但问题仍然是它是试用版。
更新 3:
我认为 OliveDocLibrary 是最有效的方法。尽管它具有作为试用版的缺点,但我认为没有其他库比这个库做得更好,可以完全满足我的特定要求。详细答案已发布below。由于赏金时间即将结束。我会要求可能有替代和更好解决方案的人尽快发布它。现在我将使用 OliveDocLibrary 并接受我自己的答案。
【问题讨论】:
-
来自这里的线程:forum.openoffice.org/en/forum/viewtopic.php?f=12&t=38718 我希望将 Word 文档转换为 pdf 并在 Android 上显示会更容易。
-
点击这个链接我认为这就是你需要的How to render PDF in Android它的pdf我认为你可以对office文档做同样的事情,如果已经安装了应用程序,你可以通过intent发送或使用google docs在webview中显示链接
标签: android ms-word textview rtf