在Android读取Word文件时,在网上查看时可以用tm-extractors,但好像没有提到怎么读取Word文档中字体的颜色,字体,上下标等相关的属性。但由于需要,要把doc文档中的内容(字体,下划线,颜色等)读取应用到android中(不包括图片和图表)。
后面采用的是poi三方jar包(原包太大,可以从源代码里自己抽取有用的一些代码减少包的大小)。
我的想法是:把doc中的内容解析出来后,加上html对应的标签,在android中通过Html.fromHtml在TextView中进行显示,或者通过WebView.loadData进行加载显示
但测试后,发现如果加载太多内容的话,在Android中效率不行。
效果(该图的效果是在TextView中的效果,在WebView中效果会更好些):
doc图:
android图:
做法1:(解析为span样式的,这种做法只能用WebView方式加载,Html.fromHtml无效)
Java代码 /**Span样式 * 通过字体的样式进行加载 * @param inputStream * @return */ public static String readDocToSpanByRun(InputStream inputStream) { HWPFDocument hwpfDocument = null; if(inputStream == null) throw new RuntimeException("inputStream is null ..."); try{ hwpfDocument = new HWPFDocument(inputStream); }catch(Exception e) { throw new RuntimeException("HWPFDocment Exception", e); } Range allRange = hwpfDocument.getRange(); int length = allRange.numCharacterRuns(); StringBuffer sb = new StringBuffer(); CharacterRun cur; String text = ""; for (int i = 0; i > 8) & 0XFF; } public static int blue(int c) { return (c >> 16) & 0XFF; } public static int rgb(int c) { return (red(c)