摘要: Asp.Net实现生成WORD或PDF文件
阅读全文
posted @ 2011-08-31 14:26 朱明春 阅读(156) 评论(0)
编辑
需要把网页保存为图片,实现原理:在Web项目中引用System.Windows.Forms,使用WebBrowser嵌入任意网页,通过WebBrowser可以把网页截成图片流,再保存为各种图片格式就实现了。
注意:网页中有一些脚本不支持,只截取网页中的BODY,用XLST技术实现或其它相应的方式生生成的网页不支持。
代码如:
1.在WEB项目添加引用System.Windows.Forms。
2.添加类WebSiteThumbnail:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;
using System.Threading;
using System.Windows.Forms;
namespace Epower.ITSM.Web.Common
{
public class WebSiteThumbnail
{
Bitmap m_Bitmap;
string m_Url;
int m_BrowserWidth, m_BrowserHeight, m_ThumbnailWidth, m_ThumbnailHeight;
public WebSiteThumbnail(string Url, int BrowserWidth, int BrowserHeight, int ThumbnailWidth, int ThumbnailHeight)
{
m_Url = Url;
m_BrowserHeight = BrowserHeight;
m_BrowserWidth = BrowserWidth;
m_ThumbnailWidth = ThumbnailWidth;
m_ThumbnailHeight = ThumbnailHeight;
}
public static Bitmap GetWebSiteThumbnail(string Url, int BrowserWidth, int BrowserHeight, int ThumbnailWidth, int ThumbnailHeight)
{
WebSiteThumbnail thumbnailGenerator = new WebSiteThumbnail(Url, BrowserWidth, BrowserHeight, ThumbnailWidth, ThumbnailHeight);
return thumbnailGenerator.GenerateWebSiteThumbnailImage();
}
public Bitmap GenerateWebSiteThumbnailImage()
{
Thread m_thread = new Thread(new ThreadStart(_GenerateWebSiteThumbnailImage));
m_thread.SetApartmentState(ApartmentState.STA);
m_thread.Start();
m_thread.Join();
//_GenerateWebSiteThumbnailImage();
return m_Bitmap;
}
private void _GenerateWebSiteThumbnailImage()
{
WebBrowser m_WebBrowser = new WebBrowser();
m_WebBrowser.ScrollBarsEnabled = false;
m_WebBrowser.Navigate(m_Url);
m_WebBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted);
while (m_WebBrowser.ReadyState != WebBrowserReadyState.Complete)
Application.DoEvents();
m_WebBrowser.Dispose();
}
private void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser m_WebBrowser = (WebBrowser)sender;
m_WebBrowser.ClientSize = new Size(this.m_BrowserWidth, this.m_BrowserHeight);
m_WebBrowser.ScrollBarsEnabled = false;
m_Bitmap = new Bitmap(m_WebBrowser.Bounds.Width, m_WebBrowser.Bounds.Height);
m_WebBrowser.BringToFront();
m_WebBrowser.DrawToBitmap(m_Bitmap, m_WebBrowser.Bounds);
m_Bitmap = (Bitmap)m_Bitmap.GetThumbnailImage(m_ThumbnailWidth, m_ThumbnailHeight, null, IntPtr.Zero);
}
}
}
3.调用方法:
Bitmap m_Bitmap = WebSiteThumbnail.GetWebSiteThumbnail("http://www.google.cn/", 600, 600, 600, 600);
MemoryStream ms = new MemoryStream();
m_Bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);//JPG、GIF、PNG等均可
//byte[] buff = ms.ToArray();
//Response.BinaryWrite(buff);
System.Drawing.Image postImage = System.Drawing.Image.FromStream(ms);
postImage.Save("D:\\Test\\test.Png",System.Drawing.Imaging.ImageFormat.Png);
posted @ 2011-08-31 14:02 朱明春 阅读(101) 评论(0)
编辑
TreeView树控件不显示,可以用以下办法解决
1.根目录有没有webctrl_client
2.目录设置都没有问题,发现是权限问题,需给根目录加上Authenticated Users用户的权限
posted @ 2010-09-27 11:25 朱明春 阅读(14) 评论(0)
编辑
最近电脑重装了,原来一直用的是IE7,这次安装IE7有点问题,就直接升级成IE8了,谁知在使用了一段时间,出现了几个奇怪的问题.
1.VS2005启动调试的时候变成了不调试启动,开始还以为是装VS2005出的错,最后从网上才确认原来是IE8惹的祸,修改注册表:HKEY_LOCALMACHINE -> SOFTWARE -> Microsoft -> Internet Explorer -> Main 增加dword键TabProcGrowth,值为0就搞定了!
2.主题有时不起作用,这个问题害我花了一几个小时去查原因,这个问题还挂在这里,一直没有解决.
3.eWebEditor的浏览器兼容问题,IE6都没有问题,IE8出问题了,换成下面这种写法就可以了
try{
if (element.YUSERONCLICK) eval(element.YUSERONCLICK +"anonymous()");
}
catch(e){
if (element.YUSERONCLICK) eval(element.YUSERONCLICK +"onclick(event)");
}
此种方法在各种IE下都是有效的。(ewebeditor好像只支持IE)。
本来觉得IE8推出有那么一段时间了,还出现这种问题,现在的软件在不断的推新,让人还真不放心!
posted @ 2010-08-10 16:35 朱明春 阅读(118) 评论(2)
编辑
最近经常接到客户来电,咨询有关如何在单位内部构建高效率服务台的问题。准备实施ITSM的单位规模一般都比较大,设备量从几百台到上万台不等。有的单位对IT软硬件依赖程度很高,会影响主营业务的开展,比如邮政、银行、证券;有些单位虽然IT设备多,但对业务的影响不会紧迫到停业,比如政府部门、大型制造工厂。各单位情况不同,该如何构建高效率的服务台呢?
下图是企事业单位的一般性服务台模型:

该模型支持大型机构搭建分布式的服务台,能够满足总部和分支机构IT团队快速响应桌面用户的IT服务请求。三级服务流程有利于提高IT运维的工作效率,节省IT人力资源成本。提高服务台一线的处理能力和水平,将80%的故障和请求消灭在一线。二线团队主要是去现场解决故障,三线支持由经验丰富的IT专家承担,负责解决疑难杂症。将IT外包商和设备厂家都纳入IT服务链条当中。一个生命周期式的服务流程可保证事件得到恰当的解决,各团队人员角色相互协作,在流程驱动下每个人主动解决自己负责的事项。做到凡事有人负责,凡事可追踪。
应该说,ITIL关于服务台的理念是普遍适用的,不论单位大小,都可以构建适合自己单位实际的服务台管理模式,小到一部电话机值班的服务台,大到一个呼叫中心级别的服务台。对于小规模单位来说,建一个集中报障的热线电话,有一个值班工程师,外加一个负责现场的工程师就可以运作了,最好能配备一套软件工具支持IT服务管理。
服务台运作的效率高低,有几方面的因素:1、电话接通率,报障是否都有接听,如果客户经常打不通保障电话,占线或无人接听,抱怨将不可避免发生。2、流程,设计的服务流程是否流畅,流程有足够的执行力。3、知识库,服务台是否有丰富的知识库可以提供最快速的解决方法。4、服务分级,服务是否有分级处理,按不同的时限要求完成。无差别的服务往往是最没效率的服务。5、激励考核,服务是人去做的,人有积极性也有惰性,需要相应的管理措施提高人的积极性。
各单位实际情况各不相同,ITIL强调实践活动,因此,我们应当加强实践分析,在一般性服务台模型基础上做出适当的调整,在规范和效率方面做出选择,达到最终实施ITSM的目的。
欢迎加入ITIL与IT服务管理QQ群4:1260249
相关网址:http://www.feifanit.com.cn/productITSM.htm
posted @ 2008-12-08 11:24 朱明春 阅读(144) 评论(0)
编辑
posted @ 2008-12-04 10:12 朱明春 阅读(302) 评论(0)
编辑
摘要: 2008年 工作流已经成了搜索引擎上非常热门的关键词之一,软件公司要工作流提高效率降低成本,终端客户需要软件产品中带工作流引擎提高软件系统品质。。。。 可是工作流的概念满天飞,各种解释和各种理解都有,其实工作流只有2个重要的作用, 1、帮助开发人员降低业务处理复杂度,避免流程逻辑的开发 2、降低软件维护过程中因为流程变化所带来的维护量 标准的流程特性是专家从理论到理论的总结,无论怎样的工作流,能起...
阅读全文
posted @ 2008-11-21 12:15 朱明春 阅读(298) 评论(1)
编辑
摘要: 1.硬件要求:This table shows hardware requirements for installing and running SQL Server 2005 on the 32-bit platform. SQLServer2005 (32-bit) Processor type1 Processor speed2 Memory (RAM)3 SQL Server 2005 E...
阅读全文
posted @ 2008-10-14 10:46 朱明春 阅读(338) 评论(2)
编辑
posted @ 2008-10-07 10:48 朱明春 阅读(883) 评论(1)
编辑
ITIL与ITSM QQ4号群:1260249
.NET企业应用开发与工作流QQ 4号群:41553575