Android中Word转Html
一、POI方式
1.先看word效果图

2.再看下在android上使用WebView显示的效果

3. 生成的html的代码,如下:
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">.b1{white-space-collapsing:preserve;}
.b2{margin: 1.2590277in 1.0in 0.41944444in 1.1027777in;}
.s1{font-weight:bold;}
.p1{text-align:center;hyphenate:auto;font-family:Times New Roman;font-size:22pt;}
.p2{text-align:center;hyphenate:auto;font-family:Times New Roman;font-size:12pt;}
.p3{text-align:justify;hyphenate:auto;font-family:Times New Roman;font-size:10pt;}
.p4{text-align:center;hyphenate:auto;font-family:Times New Roman;font-size:10pt;}
.td1{width:0.75625in;padding-start:0.0in;padding-end:0.0in;border-bottom:thin solid black;border-left:thin solid black;border-right:thin solid black;border-top:thin solid black;}
.td2{width:5.4625in;padding-start:0.0in;padding-end:0.0in;border-bottom:thin solid black;border-left:thin solid black;border-right:thin solid black;border-top:thin solid black;}
.td3{width:3.4208333in;padding-start:0.0in;padding-end:0.0in;border-bottom:thin solid black;border-left:thin solid black;border-right:thin solid black;border-top:thin solid black;}
.td4{width:0.875in;padding-start:0.0in;padding-end:0.0in;border-bottom:thin solid black;border-left:thin solid black;border-right:thin solid black;border-top:thin solid black;}
.td5{width:1.1666666in;padding-start:0.0in;padding-end:0.0in;border-bottom:thin solid black;border-left:thin solid black;border-right:thin solid black;border-top:thin solid black;}
.td6{width:6.21875in;padding-start:0.0in;padding-end:0.0in;border-bottom:thin solid black;border-left:thin solid black;border-right:thin solid black;border-top:thin solid black;}
.r1{keep-together:always;}
.r2{height:0.3236111in;keep-together:always;}
.r3{height:0.32430556in;keep-together:always;}
.t1{table-layout:fixed;border-collapse:collapse;border-spacing:0;}
</style>
<title>广东省药品生产企业现场检查表</title>
<meta name="author" content="张芳向 Netboy">
</head>
<body class="b1 b2">
<p class="p1">
<span class="s1">企业产品信息表</span>
</p>
<p class="p2"></p>
<table class="t1">
<tbody>
<tr class="r1">
<td class="td1">
<p class="p3">
<span>企业名称</span>
</p>
</td><td colspan="3" class="td2">
<p class="p3">
<span>$QYMC$</span>
</p>
</td>
</tr>
<tr class="r1">
<td class="td1">
<p class="p3">
<span>企业地址</span>
</p>
</td><td colspan="3" class="td2">
<p class="p3">
<span>$QYDZ</span>
</p>
</td>
</tr>
<tr class="r1">
<td class="td1">
<p class="p3">
<span>企业负责人</span>
</p>
</td><td colspan="3" class="td2">
<p class="p3">
<span>$QYFZR</span>
</p>
</td>
</tr>
<tr class="r1">
<td class="td1">
<p class="p3">
<span>法人代表</span>
</p>
</td><td class="td3">
<p class="p3">
<span>$FRDB</span>
</p>
</td><td class="td4">
<p class="p3">
<span>创建时间</span>
</p>
</td><td class="td5">
<p class="p3">
<span>$CJSJ</span>
</p>
</td>
</tr>
<tr class="r1">
<td class="td1">
<p class="p4">
<span>企业</span>
</p>
<p class="p4"></p>
<p class="p4">
<span>生产</span>
</p>
<p class="p4"></p>
<p class="p4">
<span>品种</span>
</p>
<p class="p4"></p>
<p class="p4">
<span>描述</span>
</p>
<p class="p4"></p>
<p class="p4">
<span>以及</span>
</p>
<p class="p4"></p>
<p class="p4">
<span>存在</span>
</p>
<p class="p4"></p>
<p class="p4">
<span>问题</span>
</p>
</td><td colspan="3" class="td2">
<p class="p3">
<span>$SCPZMSJWT</span>
</p>
</td>
</tr>
<tr class="r1">
<td class="td1">
<p class="p3">
<span> 结论</span>
</p>
<p class="p4">
<span>以及</span>
</p>
<p class="p4">
<span>解决</span>
</p>
<p class="p4">
<span>方法</span>
</p>
</td><td colspan="3" class="td2">
<p class="p3">
<span>$JLJJJFF</span>
</p>
</td>
</tr>
<tr class="r2">
<td colspan="4" class="td6">
<p class="p3">
<span>企业负责人签名:$QYFZRQM$</span>
</p>
</td>
</tr>
<tr class="r2">
<td colspan="4" class="td6">
<p class="p3">
<span>产品人员签名:$CPRWQM$</span>
</p>
</td>
</tr>
<tr class="r2">
<td colspan="4" class="td6">
<p class="p3">
<span>执法证号: $ZFZH$</span>
</p>
</td>
</tr>
<tr class="r3">
<td colspan="4" class="td6">
<p class="p3">
<span>备注:$BZ$</span>
</p>
</td>
</tr>
</tbody>
</table>
<p class="p3"></p>
<p class="p3"></p>
<p class="p3">
<img src="test/0.jpg" style="width:6.1604166in;height:3.85in;vertical-align:text-bottom;"></p>
</body>
</html>
4.在浏览器上显示也是不居中,如图:

5.根据上面的情况,方案1
因为在手机上的table内容不能够居中。所以在table标签上增加一个属性 align="center"
<table align="center" class="t1">
然后,在浏览器上就可以居中显示了。如果这种方法可以实现,就是读脚本,然后找到<table class="t1">标签换成上面的代码即可。不过普适性就大大降低了。但是这种方法生成的html在Webview上显示依然是不居中。所以该方案被抛弃了。
二、jacob方式
以前做J2EE的时候,用POI比较多,对这个不是太了解。网上直接度jacod,但是很难找到官方网站。http://danadler.com/jacob/ 这个才是它的官网。另附一个下载地址:https://sourceforge.net/projects/jacob-project/
用as搭了环境,也写了点代码,但是问题出来了。最后发现,这样不行,似乎只能在Java环境中使用。
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: FATAL EXCEPTION: main
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: java.lang.ExceptionInInitializerError
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at com.tongyan.demo.MainActivity.word2Html(MainActivity.java:39)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at com.tongyan.demo.MainActivity.access$000(MainActivity.java:13)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at com.tongyan.demo.MainActivity$1.onClick(MainActivity.java:31)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at android.view.View.performClick(View.java:4095)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at android.view.View$PerformClick.run(View.java:16977)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:615)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:92)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at android.os.Looper.loop(Looper.java:137)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:4745)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at java.lang.reflect.Method.invokeNative(Native Method)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:511)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at dalvik.system.NativeStart.main(Native Method)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: Caused by: java.lang.UnsatisfiedLinkError: Couldn't load jacob: findLibrary returned null
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at java.lang.Runtime.loadLibrary(Runtime.java:365)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at java.lang.System.loadLibrary(System.java:535)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at com.jacob.com.Dispatch.<clinit>(Dispatch.java)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at com.tongyan.demo.MainActivity.word2Html(MainActivity.java:39)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at com.tongyan.demo.MainActivity.access$000(MainActivity.java:13)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at com.tongyan.demo.MainActivity$1.onClick(MainActivity.java:31)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at android.view.View.performClick(View.java:4095)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at android.view.View$PerformClick.run(View.java:16977)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:615)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:92)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at android.os.Looper.loop(Looper.java:137)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:4745)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at java.lang.reflect.Method.invokeNative(Native Method)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:511)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
02-22 13:28:48.168 5793-5793/com.tongyan.demo E/AndroidRuntime: at dalvik.system.NativeStart.main(Native Method)
参考资料:
http://www.cnblogs.com/qingxinblog/p/3404051.html
http://www.cnblogs.com/qingxinblog/articles/3399454.html
三、openoffice方式
Android中Word转Html的更多相关文章
- Android中使用POI加载与显示word文档
最近打算实现一个功能:在Android中加载显示Word文档,当然这里不是使用外部程序打开.查看一些资料后,打算采用poi实现,确定了以下实现思路: 将ftp中的word文档下载到本地. 调用poi将 ...
- (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
Android中内置了sqlite,但是常用的开发语言java是面向对象的,而数据库是关系型的,二者之间的转化每次都很麻烦(主 要是我对sql语言不熟悉).而Java Web开发中有很多orm框架,但 ...
- 【转】Android中EditText中的InputType类型含义与如何定义
原文网址:http://www.crifan.com/summary_android_edittext_inputtype_values_and_meaning_definition/ 经过一些And ...
- 【转】android中TextAppearanceSpan的使用
android中TextAppearanceSpan的使用 Posted on April 17, 2011 在android中如何想word中一样对文字进行丰富的风格设置呢? TextAppeara ...
- Android中图片的三级缓存策略
在开发过程中,经常会碰到进行请求大量的网络图片的样例.假设处理的不好.非常easy造成oom.对于避免oom的方法,无非就是进行图片的压缩.及时的回收不用的图片.这些看似简单可是处理起来事实上涉及的知 ...
- Android中AsyncTask的使用 (包含文件的下载与存储)
今天看到大神写的相关详解Android中AsyncTask的使用,真的很是佩服,下面我将学习到的AsynTask知识运用到项目中,其中也涉及一些文件的下载与存储到本地 啥都不说了,直接上代码,我将对其 ...
- 【整理】Android中EditText中的InputType类型含义与如何定义( 转 )
转自:[整理]Android中EditText中的InputType类型含义与如何定义 用到的时候查到了这篇文章觉得很不错,就在此记录下. [背景] 经过一些Android中EditText方面的折腾 ...
- android中的ContentProvider实现数据共享
为了在应用程序之间交换数据,android中提供了ContentProvider,ContentProvider是不同应用程序之间进行数据交换的标准API.当一个应用程序需要把自己的数据暴露给其他程序 ...
- Android中使用ormlite实现持久化--HelloOrmLite
Android中内置了sqlite,但是常用的开发语言java是面向对象的,而数据库是关系型的,二者之间的转化每次都很麻烦(主要是我对sql语言不熟悉).而Java Web开发中有很多orm框架,但是 ...
随机推荐
- 【BZOJ 1119】 1119: [POI2009]SLO (置换)
1119: [POI2009]SLO Description 对于一个1-N的排列(ai),每次你可以交换两个数ax与ay(x<>y),代价为W(ax)+W(ay) 若干次交换的代价为每次 ...
- [BZOJ2726][SDOI2012]任务安排(DP+凸壳二分)
2726: [SDOI2012]任务安排 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1580 Solved: 466[Submit][Statu ...
- [Lydsy1806月赛] 路径统计
题面在这里! xjb想的做法竟然不小心把std艹爆了qwq,我也很无奈啊.... 那接下来就说一下我的神奇做法qwq 如果是经常读我博客的童鞋会发现其实我以前就想要做这个题啦,只不过当时读错题啦... ...
- [Lydsy1805月赛] quailty 算法
稍微建一下模型就可以发现,题目要求的其实是一个最小异或基环森林.... 可以用类似最小生成树的拟阵性质来证明,贪心的从小的边权开始依次尝试加入的方法是对的. 所以我们把a[]排完序之后直接递归贪心就行 ...
- [HDU1756]Cupid's Arrow
题目大意: 给你一个简单多边形和若干个点,问每个点在多边形内还是外. 思路: 一开始没看清楚题,写了一个叉积法,事实上叉积法只能用来处理凸多边形与点的关系. 考虑一个射线法. 从这个点水平往左作一条射 ...
- Web安全测试指南--权限管理
垂直权限提升: 编号 Web_Author_01 用例名称 垂直权限提升测试 用例描述 测试用户是否具有使用超越其角色范围之外的权限. 严重级别 高 前置条件 1. 目标系统拥有不同等级的角色和权限 ...
- 如何获取php错误
今天把项目放在测试服务器,但是出现一个问题,用的TP5框架,我把入口文件放在了根目录,访问的时候报错了,框架引导文件引入不了,也不报错,就是说访问不了. 所以就用了一段代码把错误获取出来了,代码如下: ...
- Winfrom 使用TabControl控件模拟程序向导步骤
.NET : 隐藏TabControl的标签栏 在给应用程序添加一个向导的做法有很多,但其中比较简便易行的是使用TabControl.如下图所示 但有一个小小的美中不足,就是:作为向导而言,我们可 ...
- TStringList的DelimitedText的空格问题
TStringList的DelimitedText的空格问题 如果DelimitedText的字符串中有空格,TStringList遇到空格会进行自动换行,而这显然不是我们想要的结果.经测试发现D7~ ...
- andriod 获得时间
import java.text.SimpleDateFormat;import java.util.Date; public static String getCurrentTime() { Sim ...