论坛首页 编程语言技术论坛

Web Report save as mhtml file

浏览 3181 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-07-08  
最近遇到一个问题,客户的环境只有ASP 3.0,要求输出的Report有一些复杂的图表,使用OWC倒是直接可以输出图表的图片,直接设置img的src就可以generate on the fly,但问题是客户要求这些report必须以某种文件形式保存起来,供客户下载,客户并没有指定文件格式,但要求单个文件一个report以便管理。项目的时间很紧,一眼看起来,这样的需求,pdf文件是一个不错的选择,但因为一时没有找到免费的COM组件用以生成pdf,所以只好放弃。

MHTML是一种直接把html所有资源文件内嵌为MIME的一种文件格式,主要用于生成html格式的邮件内容。后缀mht或mhtml,直接可以使用IE打开,FireFox也有一些插件支持浏览mhtml文件。ASP的示例代码:
Dim iConf 'As New CDO.Configuration
Dim Flds  'As ADODB.Fields
set iConf = Server.CreateObject("CDO.Configuration")

Dim iMsg 'As New CDO.Message
set iMsg = Server.CreateObject("CDO.Message")

dim stm
set stm = Server.CreateObject("ADODB.Stream")
stm.Type = 2
stm.Charset = "US-ASCII"
stm.open

with iMsg
Set .Configuration = iConf
.BodyPart.Charset = "GBK"
.CreateMHTMLBody "http://localhost/mail.html", 0
.DataSource.SaveToObject stm, "_Stream"
stm.SaveToFile Server.MapPath("/dev/") & "\emaill.mthml"
end with

使用CDO 2000 COM组件,可以直接从一个url得到所有的页面资源文件,并生成mthml格式的Stream,保存下来就是需要的mhtml文件了。
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics