dsoframer控件-jsp在线编辑offic文档

1 篇文章 0 订阅

dsoframer控件-jsp在线编辑offic文档

DSOFramer控件说明
DSOFramer.ocx控件是微软提供一款开源的用于在线编辑、调用Word、 Excel 、PowerPoint等的ActiveX控件。国内很多著名的OA中间件,电子印章,签名留痕等大多数是依此改进而来的。只要本地安装注册DSOFramer控件,并且安装了OFFICE软件,即可实现其强大的在线编辑功能。
下载dso控件以后,要将控件放在system32文件夹下,然后在cmd窗口中注册。在64为win7系统中注册dsoframer.ocx的时候时常会报错,主要是由于系统兼容问题造成的。正确解决步骤如下:
1、查看dsoframer.ocx所需的依赖包系统中是否完备:用depends.exe打开dsoframer.ocx文件。由于VS2008之后版本不带有depends.exe,所以需要自行下载一个。打开之后前面显示为问好的dll文件就是系统中缺少的文件,在网上找到相应的dll文件并复制到system32文件夹下。
2、将dsoframer.ocx复制到c:\Windows\SysWOW64文件夹下,这里是64位dll文件所在的文件夹。
3、以管理员的方式打开cmd,输入regsvr32 c:\Windows\SysWOW64\dsoframer.ocx回车。即可正常注册。

注意 此控件只有IE浏览器支持 
原因如下:在web页面上进行word和excel编辑,因为需要调用本地dll资源,故必须基于activeX控件,目前比较常见的有dsoframer、iWebOffice2009等。但是同时兼容chrome和firefox的控件目前来看是没有的,并且此类控件没有免费版本提供。

1.1DSOFramer控件接口
在jsp页面中添加如下脚本代码,实现控件的引用:
<OBJECT classid="clsid:00460182-9E5E-11D5-B7C8-B8269041DD57" id="FramerControl1" style="LEFT:0px; TOP:0px; WIDTH:100%; HEIGHT:750px" CodeBase="dsoframer.ocx#version=2,3,0,0">
<PARAM NAME="_ExtentX" VALUE="6350">
<PARAM NAME="_ExtentY" VALUE="6350">
<PARAM NAME="BorderColor" VALUE="-2147483632">
<PARAM NAME="BackColor" VALUE="-2147483643">
<PARAM NAME="ForeColor" VALUE="-2147483640">
<PARAM NAME="TitlebarColor" VALUE="-2147483635">
<PARAM NAME="TitlebarTextColor" VALUE="-2147483634">
<PARAM NAME="BorderStyle" VALUE="1">
<PARAM NAME="Titlebar" VALUE="0">
<PARAM NAME="Toolbars" VALUE="1">
<PARAM NAME="Menubar" VALUE="1">
</OBJECT>

1.1.1新建文档
//新建Word
document.all.FramerControl1.CreateNew(“Word.Document”);
//新建Excel
document.all.FramerControl1.CreateNew(“Excel.Sheet”);

1.1.2打开文档
//打开制定的本地文件
document.all.FramerControl1.Open(“C:\TestBook.xls”);
//制定用Word来打开c:\plain.txt文件
document.all.FramerControl1.Open(“C:\Plain.txt”,false, “Word.Document”);
//打开服务器的文件
document.all.FramerControl1.Open “https://secureserver/test/mytest.asp?id=123“,true, “Excel.Sheet”, “MyUserAccount”, “MyPassword”);
//打开服务器的文件
document.all.FramerControl1.Open(“http://localhost/1.doc“, true);
1.1.3保存文档
*/
//到本地
document.all.FramerControl1.Save(“c:\1.doc”,true);
//服务器
/*增加Http协议Post上传接口,可以Post一个动态页面(jsp,asp,php…),由动态页面负责解析数据
bool HttpInit();
bool HttpAddPostString(BSTR strName, BSTR strValue);
bool HttpAddPostCurrFile(BSTR strFileID, BSTR strFileName);
BSTR HttpPost(BSTR bstr);
*/

//初始化Http引擎
document.all.FramerControl1.HttpInit();
//增加Post变量
document.all.FramerControl1.HttpAddPostString(“RecordID”,”20060102200”);
document.all.FramerControl1.HttpAddPostString(“UserID”,”李局长”);
//上传打开的文件
document.all.FramerControl1.HttpAddPostCurrFile(“FileData”, “文档名.doc”);
//执行上传动作
document.all.FramerControl1.HttpPost(“http://xxxx.com/uploadfile.asp“);

1.1.4修订痕迹
//进入留痕状态
document.all.FramerControl1.SetTrackRevisions(1);
//进入非留痕状态
document.all.FramerControl1.SetTrackRevisions(0);
//接受当前修订
document.all.FramerControl1.SetTrackRevisions(4);
1.1.5设置当前用户
document.all.FramerControl1.SetCurrUserName(“张三”);
1.1.6设置和创建书签,此功能比较强大,设置书签数据、添加书签和添加红头文件
SetFieldValue(BSTR strFieldName, BSTR strValue, BSTR strCmdOrSheetName)
strFieldName:书签名
strValue:要设置的值
strCmdOrSheetName:
命令
::ADDMARK:: 添加BookMark
::DELMARK:: 删除这个BookMark
::GETMARK:: 定位到这个BookMark
::FILE:: 插入的是文件
::JPG:: 插入的是图片
一般来说:WORD中书签是做好的,可以通过此接口把外界数据设置进书签中去。
*/
//在当前WORD位置插入标签,标签名为”book1”,数值为”test”
document.all.FramerControl1.SetFieldValue(“book1”,”test”,”::ADDMARK::”);

//设置书签”Time”,数值为”2006-03-16 22:22:22”
document.all.FramerControl1.SetFieldValue(“Time”,”2006-03-16 22:22:22”,”“);

//在书签位置”hongtou”,插入红头文件”http://222.222.222.222/hongtou1.doc” 这样,红头就自动插进去了
document.all.FramerControl1.SetFieldValue(“hongtou”,”http://222.222.222.222/hongtou1.doc“,”::FILE::”);
1.1.7删除本地文件
HRESULT DeleteLocalFile([in] BSTR strFilePath);
参数:
strFileName:文件本地路径,如c:\11.doc
1.1.8创建临时文件
HRESULT GetTempFilePath([out,retval] BSTR* strValue);
返回:
临时文件的路径地址。使用完后,用DeleteLocalFile 删除

1.1.9下载远程文件
HRESULT DownloadFile( [in] BSTR strRemoteFile, [in] BSTR strLocalFile, [out,retval] BSTR* strValue);
参数:
strRemoteFile:远程路径地址,http or Ftp
strLocalFile: 本地保存地址,if strLocalFile == NULL then Create Temp File and return TempFile’s Path

1.1.10增加Http上传时候的,附加其他文件
HRESULT HttpAddPostFile([in] BSTR strFileID, [in] BSTR strFileName, [out,retval] long* pbool);
参数:
strFileID:文件的ID,供服务器端页面解析
strFileName: 本地文件地址

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值