基本思路就是:

  1. 使用poi读入word文档,
  2. 读入内容转为html内容,(直接读入text仅仅只是文本没有格式)
  3. 将html内容给富文本编辑器显示(这样的目的是带格式).

下边贴代码:

poi读入word并转为html.

// word文档路径(带名称):sourceFileNamepublic static boolean docToHtml(String  sourceFileName, String htmlPath) throws Exception {//poi读入word文件HWPFDocumentCore wordDocument =  WordToHtmlUtils.loadDoc(new FileInputStream(sourceFileName));WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());wordToHtmlConverter.processDocument(wordDocument);Document htmlDocument = wordToHtmlConverter.getDocument();//这个根据domSource可以获取到里边的内容,但是不带格式,需要转换.//转换html文件ByteArrayOutputStream outStream = new ByteArrayOutputStream();StreamResult streamResult = new StreamResult(outStream);DOMSource domSource = new DOMSource(htmlDocument);TransformerFactory tf = TransformerFactory.newInstance();Transformer serializer  = tf.newTransformer();serializer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");serializer.setOutputProperty(OutputKeys.INDENT, "yes");serializer.setOutputProperty(OutputKeys.METHOD, "html");serializer.transform(domSource, streamResult);outStream.close();//content就是需要的html文件String content = new String(outStream.toByteArray());System.out.println(content);//导出.html文件到指定路径 不需要注释掉/*FileUtils.writeStringToFile(new File(htmlPath, "interface.html"), content,"utf-8");*/return true;}

转换出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.0in 1.25in 1.0in 1.25in;}
.s1{color:black;}
.s2{font-family:LiberationSerif;color:black;}
.s3{font-family:宋体;color:black;}
.p1{text-align:start;hyphenate:auto;font-family:宋体;font-size:15pt;}
.p2{text-align:start;hyphenate:auto;font-family:LiberationSerif;font-size:15pt;}
.p3{text-align:justify;hyphenate:auto;font-family:Calibri;font-size:10pt;}
</style>
<meta content="hydata2018" name="author">
</head>
<body class="b1 b2">
<p class="p1">
<span class="s1">(</span><span class="s2">3</span><span class="s1">)</span><span class="s2">GenericApplicationContext</span><span class="s1">是</span><span class="s2">Spring Context</span><span class="s1">模块中最容易构建 </span>
</p>
<p class="p2">
<span class="s1">Spring</span><span class="s3">环境的实体类,涵盖了</span><span class="s1">Spring Context</span><span class="s3">的核心功能,在不需要特殊 </span>
</p>
<p class="p1">
<span class="s1">定制的场景下可以实现开箱即用。如图</span><span class="s2">2-1</span><span class="s1">所示, </span>
</p>
<p class="p2">
<span class="s1">AnnotationConfigApplicationContext</span><span class="s3">完美利用了 </span>
</p>
<p class="p2">
<span class="s1">GenericApplicationContext</span><span class="s3">的封装性和对外简便性,如果想扩展适合自己 </span>
</p>
<p class="p1">
<span class="s1">业务的轻量级 </span><span class="s2">Spring </span><span class="s1">容器,使用</span><span class="s2">GenericApplicationContext</span><span class="s1">这个基类则 </span>
</p>
<p class="p1">
<span class="s1">会非常容易上手。</span><span class="s2">AnnotationConfigApplicationContext</span><span class="s1">的构造方法先传入 </span>
</p>
<p class="p1">
<span class="s1">一个 </span><span class="s2">class </span><span class="s1">数组,再创建一个可执行的上下文实例来构造一个可运行的 </span>
</p>
<p class="p2">
<span class="s1">Spring</span><span class="s3">运行环境,使用起来非常简便。 </span>
</p>
<p class="p3"></p>
</body>
</html>

这里注意:现在的样式都在html中的header里,有些富文本编辑器不支持这个,把上述的内容放到富文本编辑器中丢失样式.

一般富文本支持样式写到标签里:比如<p style="样式">张三李四</p>.

然后我们用的富文本编辑器是:tinymce.

然后咱们在编辑新增保存富文本的时候,只需要将富文本生成的上述的文本存到数据库里就可以了.注意:富文本生成的html的样式都是写到标签里的,没有带头.

然后是下载:就是到处word.这里也有注意,这个下载仅仅是把上述生成的html内容放入流中,文件名设置为.doc就生成了.然后你会发现你下载下来的word文档体积非常小,跟你在windows上创建的差好多,这是因为这个word本质上只是标签,不信你可以用编辑器(notepad++)打开它,发现它内部都是标签,样式都是通过标签过来的.你把他扩展名改为.html也可以正常显示跟word一样.

然后你还会发现,你把下下来的这个word,再上传使用poi解析读取它的时候,会报错,理由是poi不认为它是个.word文件,你说神奇不?

所以上述方法用来在word跟富文本之间转换应该只是取巧的做法,方便省事,但是不是正道,在专门做这方面时可能会出问题.解决方法暂时未找(之所以说未找,是因为我找到这个能解决当前需求就没往下找),

下面看下载代码:看完你就明白我为啥那么说了

  try {//获取内容String content = notificationContent.getContent();// 拼一个标准的HTML格式文档InputStream inStream1 = new ByteArrayInputStream(content.getBytes("UTF-8"));// 设置response参数,可以打开下载页面response.reset();response.setContentType("application/vnd.ms-excel;charset=utf-8");response.setHeader("Content-Disposition", "attachment;filename="+ new String(("***.doc").getBytes(), "iso-8859-1"));response.setCharacterEncoding("UTF-8");byte[] b = new byte[1024];int len;while ((len = inStream1.read(b)) > 0)response.getOutputStream().write(b, 0, len);// 关闭流inStream1.close();} catch (Exception e) {}

这中间还有一个需求:在生成word的时候需要根据业务添加一段或者几段话(话术是定好的).

我首先需要定位到我添加内容的位置,然后加入定好的内容.

然后我发现word(html版)中的一段话其实都在一个<p>标签中包着呢,里边含有样式等信息,本质上这一个<p>就是一行,

然后我从富文本编辑器中生成我自己的<p>,追加在定位段落的<p>后边就完成了.

下边贴获取String str=html内容字符串中,每一行(其实就是word中的每个段落)的代码:

String s="里边是标签其实";BufferedReader br = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(s.getBytes(Charset.forName("utf8"))), Charset.forName("utf8")));String line;StringBuffer strbuf=new StringBuffer();while ( (line = br.readLine()) != null ) {if(!line.trim().equals("")){if(line.contains("远程视频")){line+=line;}System.out.println(line);strbuf.append(line);}}System.out.println(strbuf.toString());

word读入富文本编辑器,编辑后导出下载word日常总结相关推荐

  1. 富文本编辑器(html格式)导出为word(vue实现)

    纯Vue实现将多个富文本编辑器内容[html格式]统一导出为word 一.vue需要导入的包 二.制作html的格式 1. 为了方便,先用word制作成对应的导出样式,然后通过word导出为html格 ...

  2. 【场景方案】关于excel、pdf、word、富文本编辑器、思维导图制作、图表制作这类第三方库的推荐

    文章目录 excel推荐 上传与数据解析 前端下载excel 预览 pdf推荐 预览 word推荐 数据解析 预览 富文本编辑器推荐 思维导图推荐 图表推荐 excel推荐 上传与数据解析 主要推荐的 ...

  3. 基于summernote的富文本编辑器,粘贴时去除word格式

    在使用summernote的富文本编辑器,在粘贴word内容时,会发现代码中有很多无效的代码.通过js处理,可以去掉很多无用的代码. 处理前,粘贴后的代码类似这样: <p><!--[ ...

  4. 富文本编辑器实现一键粘帖word图片

    在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper. 通过知乎提供的思路找到粘贴的原理,通过TheViper找 ...

  5. 微信小程序解析并展示富文本编辑器保存后的内容

    最近有个产品需求:在PC端里用富文本编辑器里编写自定义内容,然后保存后需要在小程序端展示,了解过的朋友就知道了,富文本编辑器输出的内容都是基于HTML标签的,比如:div.p.br这些常用的,而小程序 ...

  6. Ueditor集成Word导入(富文本编辑器)

    当前功能基于PHP,其它语言流程大致相同 1.新增上传word json配置 在ueditor\php\config.json中新增如下配置: /* 上传word配置 */ "wordAct ...

  7. 基于summernote的富文本编辑器,粘贴时去除word、html格式

    <script> $(document).ready(function() { $('#summernote').summernote({ height: 350, lang: 'zh-C ...

  8. html编辑保存为word文档,html 保存成word (富文本编辑器导出内容成word)

    这几天项目里有个需求,用到富文本编辑器,然后导出word. 富文本编辑器,网上很多,使用夜很简单,我们使用的是kindEditor.百度的ueditor很好,而且文档很全.阿里的kissy 感觉比较复 ...

  9. wangEditor富文本编辑器的调用开发实录2(V5版本自定义粘贴,去除复制word或网页html冗余样式代码的解决方案)

    wangEditor富文本编辑器:自定义粘贴,去除复制word或网页html冗余样式代码的解决方案 1.环境说明 2.解决方案 3.完整代码 总结 在使用wangEditor富文本编辑器时,当从wor ...

最新文章

  1. Github开源趋势榜Top 1:英伟达升级发布二代StyleGAN,效果更完美
  2. pandas使用shift方法进行特征差分
  3. Winform中DataGridView绑定IList数据源后的排序
  4. window下删除无效的区域通知图标
  5. 同步锁ReentrantLock
  6. eShopOnContainers 知多少[6]:持久化事件日志
  7. MVP小白入门,只需5步
  8. 单线程JavaScript
  9. 封装JedisClient.提供API实现对redis的操作
  10. 工程项目利用AutoMake生成Makefile实战
  11. 订单用户表2(用户名查询、手机号查询、选择城市、选择状态、选择月份、ID排序、添加数据、批量发货、批量删除、敏感字、修改数据)
  12. 老旧笔记本的WIN10系统安装Win7还是Win8版本声卡驱动?
  13. CSDN的个人主页如何添加微信二维码
  14. Android开发之仿360手机卫士悬浮窗效果
  15. MySQL Authentications
  16. 基于STM32单片机的直流电机控制系统加减速正反转设计方案原理图程序
  17. 微信支付常见错误和统一下单错误码详情
  18. matlab画十七边形,怎么样用尺规作图画正十七边形
  19. DSPE-PEG-NGR,NGR-PEG-DSPE,磷脂-聚乙二醇-靶向肽NRG
  20. 标牌标识导视指示系统设计制作工艺及材料知识

热门文章

  1. Excel使用空格/逗号等对数据进行分列
  2. 微信公众平台开发--表情符号
  3. 月圆茶润.人婵娟 小茶控·2021中秋茶礼 如“月”而至
  4. iPad协议接口-稳定版
  5. 2022-2028年全球与中国车辆传感器行业发展趋势及投资战略分析
  6. fastjson 是反射吗_6种超声检测灵敏度,你都知道吗?
  7. win10 自定义右键菜单
  8. 不逼自己一把,命运就会逼你一辈子
  9. Qt编写物联网管理平台17-记录清理
  10. js URLEncode函数