前段时间做了一个项目。客户需要经常添加产品信息。优于客户需要添加的产品信息 非常不规则,根本无法建立DomainModel。没办法,只能考虑做一个框架,让用户往里面添资料。 有几种方法
1。 word 转化成html,再显示html.
问题 1.1 保存文件复杂: wrod保存为一个html和一个folder. folder里面是图片。
1.2 显示图片麻烦:要特殊处理图片的src
1.3 编码乱:有的是utf-8 ,有的是gb2312.......,
1.4 服务器端必须安装office
很不幸。我租的服务器没有安装正版office. 在 组件服务中无法设置 word共service user用。
2。Word转化成pdf, pdf 转化成图片,以图片的形式展示给用户。
问题 2.1转化的代码复杂,有的还用到第三方空间。显示出来的图片还有别人公司的水印
2.2 pdf转化成img时失真。 感觉很不舒服。
3。使用 iframe + mhtml:
这是最简单的。客户只要在word里面编辑,编辑好了保存的时候选择保存为网页(.mht).再上船mht. 这部分工作量和难度=1,2客户编辑word的时间。
界面显示非常简单。下面是样例代码
IOHelper ioh =new IOHelper ();
string html = ioh .GetStr(@"H:\Share\IC\IC\Contents\MHtml\mhtmltest.mht");
HtmlGenericControl frame1 = new HtmlGenericControl("mht");
frame1.TagName = "iframe";
frame1.Attributes["runat"] = "server";
frame1.Attributes["width"] = "100%";
frame1.Attributes["height"] = "100%";
frame1.Attributes["src"] = "http://www.cnblogs.com/Contents/MHtml/mhtmltest.mht";
PlaceHolder1.Controls.Add(frame1);