.net下将富文本编辑器文本原样读入word文档
关键词:富文本编辑器 生成word 样式
为了解决标题中提出的问题,首选需要了解,在.net环境下读取数据库中的内容动态生成word至少有2种方式,【方式一】一种方式是在项目中添加引用,例如在“添加引用”对话框中的COM子tab中添加Microsoft Office 11.0 Object Library,然后再在代码中添加office相关的命名空间,使用word相关的对象读取模版文件并将文本写到模版提前设置好了标签的位置。这种方式是最初出现的方式,缺点在于:1.在服务器上需要按照office,否则在服务器环境想会因缺少库文件无法生成;2.需保持开发环境和服务器环境下office的版本一致,而服务器的环境相对稳定,软件更新频度不高,这一点对于那些喜欢追最新版本的开发者来说,可能会造成很多不必要的麻烦。【方式二】动态生成word文件的第二种方式是使用Open XML SDK,这种方法无需服务器安装office,是一种比较neat的方法,缺点是这种方式可能更适合新开发生成word的功能,对于方式一遗留代码的维护最好还是用方式一的方法。
用上面的方式将内容读入word和Excel等模版并不难。用富文本编辑器(最近比较fun KindEditor)进行文本编辑并控制样式,实际就是给文本加上html的标记,例如<strong></strong>等等,这时候将内容读入word并根据html tag的样式在word中显示同样的样式,需要一定技巧,弄不好容易直接显示html tag的文本。用方式二将富文本编辑器产生的内容生成到word中并显示对应的样式文章比较多,只要知道Open XML SDK这种开发方式就能搜到,因为操作的中间数据是统一的Office Open XML格式的,方式一的文章几乎没有,好不容易找到了一个英文的,思路也确实很简单,就是先把富文本编辑器产生的要读入word的文本保存到一个网页文件(.html文件中),然后在word中插入该文件,但给出的代码不太可用,仍然进行了一下午的摸索才得到行之有效的方式。下面是我的完整代码,每个参数都是设好的,可直接使用:
StreamWriter sw = new StreamWriter(System.Web.HttpContext.Current.Server.MapPath("~/temp.html"), false, Encoding.Default);
sw.Write("<html><head></head><body>");//temp.html中没有完整的html文件标记不行,没有的话会在word中显示html tag而不是样式,预先写入模版也行
sw.Write(dr["summary"].ToString());
sw.Write("</body></html>");
sw.Close();
object oFalse = false;
object oTrue = true;
object oMissing = System.Reflection.Missing.Value;
doc.Bookmarks.get_Item(ref bm[202]).Range.InsertFile(System.Web.HttpContext.Current.Server.MapPath("~/temp.html"), ref oMissing, ref oFalse, ref oTrue, ref oFalse);
下面是效果图:
(1)富文本编辑器中的文本

(2)生成的word文本

.net下将富文本编辑器文本原样读入word文档的更多相关文章
- C#(1)运用C#实现一键从Word文档转换TXT文本的功能
有想直接从Word转TXT文本的可以看看,懒得复制粘贴的也可以使用下,方便而快捷!! 首先打开vs2012创建一个简单的form窗体: 里面主要的就是一个存放Word文档的button和一个执行的bu ...
- Java 在 Word 文档中使用新文本替换指定文本
创作一份文案,经常会高频率地使用某些词汇,如地名.人名.人物职位等,若表述有误,就需要整体撤换.文本将介绍如何使用Spire.Doc for Java,在Java程序中对Word文档中的指定文本进行替 ...
- C#导出文本内容到word文档源码
将做工程过程中较好的代码片段珍藏起来,下面的代码内容是关于C#导出文本内容到word文档的代码,希望能对小伙伴们也有好处.<%@ Page Language="C#" Aut ...
- 空间日志编辑器:word文档图文快速粘贴到web
百度ueditor可以实现word文档图文快速粘贴到web 1.4.2之后官方并没有做功能的改动,1.4.2在word复制这块没有bug,其他版本会出现手动无法转存的情况 本文使用的后台是Java.前 ...
- C# 在word文档中复制表格并粘帖到下一页中
C# 在word文档中复制表格并粘帖到下一页中 object oMissing = System.Reflection.Missing.Value; Microsoft.Offi ...
- angularjs中展示富文本编辑器文本,向DOM中插入元素
前几天在用textangular富文本编辑器插件时,将存储的文本及格式存储到数据库中,但是从后台接口中再向angular页面插入时却不能执行,即在Angular中操作DOM没有实现,后来查看了一下,操 ...
- 现在有没有一种富文本编辑器能够直接从 word 中复制粘贴公式的?
tinymce是很优秀的一款富文本编辑器,可以去官网下载.https://www.tiny.cloud 这里分享的是它官网的一个收费插件powerpaste的旧版本源码,但也不影响功能使用. http ...
- 富文本编辑器tinymce支持从word复制粘贴保留格式和图片的插件wordpaster
tinymce是很优秀的一款富文本编辑器,可以去官网下载.https://www.tiny.cloud 这里分享的是它官网的一个收费插件powerpaste的旧版本源码,但也不影响功能使用. http ...
- 如何从word文档复制内容到富文本编辑器
在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper. 通过知乎提供的思路找到粘贴的原理,通过TheViper找 ...
随机推荐
- http层负载均衡之haproxy
http层负载均衡之haproxy实践篇(一) 方案 上篇文章讲到了负载均衡的相关理论知识,这篇文章我打算讲讲实践方法以及实践中遇到的问题 方案:haproxy http层负载均衡 安装一个hapro ...
- nginx跳转
语法规则: location [=|~|~*|^~] /uri/ { - } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径就可以.nginx不正确url做 ...
- DFGUI-- 标签交换 Tabstrip
DFGUI没有更新,事实上,有些遗憾. 它着重于一个小 Examples/Containers/TabContainer.unity 那是,Tab采用. 功能 非常easy.就是切换Tag 内容改变. ...
- Cocos2d-x 3.0 编译出错 解决 error: expected ';' at end of member declaration
近期把项目移植到cocos2d-x 3.0,在整Android编译环境的时候,出现一大堆的编译出错,都是类似"error: expected ';' at end of member dec ...
- mysql监控、性能调优及三范式理解
原文:mysql监控.性能调优及三范式理解 1监控 工具:sp on mysql sp系列可监控各种数据库 2调优 2.1 DB层操作与调优 2.1.1.开启慢查询 在My.cnf文件中添加如 ...
- APlayer组件自制播放器
.NET中使用APlayer组件自制播放器 2015-02-02 09:46 by xiaozhi_5638, 402 阅读, 9 评论, 收藏, 编辑 目录 说明 APlayer介绍 APlayer ...
- dom02
事件对象:在触发DOM上的事件时dou都会产生一个对象,事件对象event DOM中的事件对象 1)type属性 用于获取事件类型 2)target属性 用于获取事件目标 3)stopPropagat ...
- C# 截取图片区域,并返回所截取的图片
/// <summary> /// 截取图片区域,返回所截取的图片 /// </summary> /// <param name="SrcImage" ...
- SQL点滴25—T-SQL面试语句,练练手
原文:SQL点滴25-T-SQL面试语句,练练手 1. 用一条SQL语句查询出每门课都大于80分的学生姓名 name kecheng fenshu 张三 语文 81张三 ...
- OCP-1Z0-051-题目解析-第13题
13. View the Exhibit and examine the structure of the PRODUCTS table. You need to generate a report ...