点聚WebOffice开发接口SDK及其开发指南Word文档下载推荐.docx
《点聚WebOffice开发接口SDK及其开发指南Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《点聚WebOffice开发接口SDK及其开发指南Word文档下载推荐.docx(40页珍藏版)》请在冰豆网上搜索。
![点聚WebOffice开发接口SDK及其开发指南Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-12/15/80c517f9-9b99-4780-9257-7661e037624f/80c517f9-9b99-4780-9257-7661e037624f1.gif)
2008-10
1.增加了工具栏
2.增加了WPS的支持
3.增加了上传文件的压缩和加密
2008-05
1.设置了对文档安全的控制
2.清除了对Word模板的修改
2008-03
1.支持自定义的菜单,并跟Javascript绑定
2007-10
1.可以设置文档打开密码和可写密码,支持Word、Excel
2.设置Word中的变量,可以更新关联的域
3.扩展了这个接口,支持Http下的相对路径
软件开发协议
北京点聚信息技术有限公司(以下简称点聚)的所有产品,包括但不限于:
开发工具包,磁盘,光盘,硬件设备和文档,以及未来的所有定单都受本协议的制约。
如果您不愿接受这些条款,请在收到后的7天内将开发工具包寄回点聚,预付邮资和保险。
我们会把货款退还给您,但要扣除运费和适当的手续费。
1.许可使用
您可以将本软件合并、连接到您的计算机程序中,但其目的只是如开发指南中描述的那样保护该程序。
您可以以存档为目的复制合理数量的拷贝。
2.禁止使用
除在条款1中特别允许的之外,不得复制、反向工程、反汇编、反编译、修改、增加、改进软件、硬件和产品的其它部分。
禁止对软件和产品的任何部分进行反向工程,或企图推导软件的源代码。
禁止使用产品中的磁性或光学介质来传递、存储非本产品的原始程序或由点聚提供的产品升级的任何数据。
禁止将软件放在服务器上传播。
3.有限担保
点聚保证在自产品交给您之日起的12个月内,在正常的使用情况下,硬件和软件存储介质没有重大的工艺和材料上的缺陷。
4.修理限度
当根据本协议提出索赔时,点聚唯一的责任就是根据点聚的选择,免费进行替换或维修。
点聚对更换后的任何产品部件都享有所有权。
保修索赔单必须在担保期内写好,在发生故障14天内连同令人信服的证据交给点聚。
当将产品返还给点聚或点聚的授权代理商时,须预付运费和保险。
除了在本协议中保证的担保之外,点聚不再提供特别的或隐含的担保,也不再对本协议中所描述的产品负责,包括它们的质量,性能和对某一特定目的的适应性。
5.责任限度
不管因为什么原因,不管是因合同中的规定还是由于刑事的原因,包括疏忽的原因,而使您及任何一方受到了损失,由我方产品所造成的损失或该产品是起诉的原因或与起诉有间接关系,点聚对您及任何一方所承担的全部责任不超出您购买该产品所支付的货款。
在任何情况下,点聚对于由于您不履行责任所导致的损失,或对于数据、利润、储蓄或其它的后续的和偶然的损失,即使点聚被建议有这种损失的可能性,或您根据第3方的索赔而提出的任何索赔均不负责任。
6.协议终止
当您不能遵守本协议所规定的条款时,将终止您的许可和本协议。
但条款2,3,4,5将继续有效。
7.针对WebOffice的特别条款
WebOffice为免费版本软件,可以使用于个人开发和商业用途中。
点聚将提供有限的技术服务。
一、工作原理
点聚WebOffice是基于客户端的ocx控件,它的功能是将Office文档(Word、Excel、WPS)嵌入到浏览器中,并调用Office中各种接口,完成文档编辑工作,然后使用控件的Http接口模拟表单提交,发送到数据处理页面(此文档举例为saveDoc.asp页,代码见演示文件),完成文档的存档工作。
1.1开发流程
├装载控件<
object>
...<
/object>
├触发初始化方法
<
SCRIPTLANGUAGE=javascriptFOR=WebOffice1EVENT=NotifyCtrlReady>
!
--
WebOffice1_NotifyCtrlReady()
//-->
/SCRIPT>
├执行初始化方法,打开新文档或装载已经存在的文档
functionWebOffice1_NotifyCtrlReady(){
("
…"
"
);
}
├根据当前步骤,来决定是否进入修订状态,如果是修订状态,最好设置当前的用户名
张三"
1);
}
├填写表单元素,编辑Office文档
├执行Http上传接口保存表单元素和Office文档
//保存文档之前,如果需要接受修订,需要调用
documen4);
//通过Http接口上传
"
"
├saveDoc.asp获取表单数据和Office进行数据库操作,并返回操作是否正确。
├根据saveDoc.asp返回值进行相应操作。
1.2WEB页面调用控件:
<
OBJECTid=WebOffice1height=520width="
100%"
style="
LEFT:
0px;
TOP:
0px"
classid="
clsid:
E77E049B-23FC-4DB8-B756-60529A35FAD5"
codebase=WebOffice.ocx#Version=3,0,0,0>
PARAMNAME="
_Version"
VALUE="
65536"
>
_ExtentX"
2646"
_ExtentY"
1323"
_StockProps"
0"
/OBJECT>
主要参数说明:
id控件在网页的别名,可以通过别名调用控件的方法、属性
width控件的宽度,可以使用绝对大小,如width="
100px"
。
height控件的高度
codebase设置控件自动下载的路径,用户如果没有安装控件,系统会自动访问codebase的路径下载控件;
“#Version”后的是控件的版本,如果用户当前的软件版本低于“#Version”后面的版本,系统也会自动下载最新的控件
注意:
如果控件的width和height属性使用%表示,则要明确指明它所在的容器的大小,如把控件放到表格<
td>
内,则要明确指明表格<
的width和height的绝对值。
二、接口说明
2.1接口
2.1.1AboutBox
原型:
voidAboutBox();
功能:
显示WebOffice版本信息
返回值:
示例:
.AboutBox();
2.1.2AcceptAllRevisions
longAcceptAllRevisions();
接受当前文档所有修订
0:
接受修订成功
非零:
接受修订失败
.AcceptAllRevisions();
2.1.3AddMenu
原形:
AddMenu(LPCTSTRcMenuName,LPCTSTRcChildName,longiIndex,LPCTSTRcBindJSFun)
(保留)
参数:
2.1.4BookMarkOpt
longBookMarkOpt(BSTRstrBookMarks,longlType);
获取文档书签列表(保留)
返回值:
2.1.5CloseDoc
longCloseDoc(longblReqSaved);
关闭当前文档
blReqSaved:
0:
关闭文档,不保存当前修改。
1:
关闭文档,保存当前修改。
2:
如果文档已经被修改,显示保存文档对话框,否则直接关闭。
其它:
失败
成功
//关闭当前文档,不保存当前修改。
;
2.1.6ConvertToAip
shortConvertToAip(shortnAddOriFile,shortnSupport)
把当前通过打开的原始文件直接转化成AIP文件。
nAddOriFile:
是否装载原始文件。
不装载。
非0:
装载原始文件。
nSupport:
是否以普通方式(即解析文档的书签)打开。
不解析。
解析。
转化失败
转化成功
ConvertToAip(1,1);
2.1.7CreateApp
shortCreateApp(BSTRstrAppName);
2.1.8DelLocalFile
longDelLocalFile(BSTRstrFilePathName);
删除本地文件
strFilePathName:
本地文件的绝对路径。
删除成功
删除失败
;
2.1.9DownLoadFile
shortDownLoadFile(LPCTSTRstrHttpFileURL,LPCTSTRstrLocalFilePath,LPCTSTRstrTitle,LPCTSTRstrFileType)
下载远程服务器文件,当设置OptionFlag|=0x0080会弹出文件下载进度条。
strHttpFileURL:
服务器文件路径。
strLocalFilePath:
保存的本地文件路径,如为空则弹出文件保存对话框。
strTitle:
文件保存对话框的默认文件名,仅当strLocalFilePath为空有效。
strFileType:
默认文件类型,仅当strLocalFilePath为空有效。
成功
失败
o
obj.DownLoadFile("
ht标题"
"
doc"
2.1.10ExcProtectSharing
longExcProtectSharing(BSTRstrPassword,BSTRstrWriteResPassword,shortbReadOnlyRecommended,BSTRstrSharingPassword);
2.1.11ExcUnprotectSharing
longExcUnprotectSharing(BSTRstrSharingPassword);
2.1.12FtpConnect
longFtpConnect(BSTRstrURL,longlPort,BSTRstrUser,BSTRstrPwd);
FTP相关(保留)
2.1.13FtpDisConnect
longFtpDisConnect();
2.1.14FtpGetFile
longFtpGetFile(BSTRstrRemoteFile,BSTRstrLocalFile);
2.1.15GetDocumentObject
IDispatch*GetDocumentObject();
获取文档对象的ActiveDocument对象,此接口非常重要,基本所有的VBA功能都可以通过这个接口来实现。
ActiveDocument对象的Dispatch
/*以下的JavaScript为采用ActiveDocument的方式直接操作VBA,向DOC文档的书签中加入一个图片。
functionAddPicture(strMarkName,strBmpPath,vType)
在书签位置插入图片,
strMarkName书签的名称
strBmpPath图片的路径
vType插入后的图片的样式,5为浮动在文字上面
AddPicture("
test1"
d:
\\111.bmp"
5);
128);
*/
{
//定义一个对象,用来存储ActiveDocument对象
varobj;
obj=newObject(document.all.WebOffice1.GetDocumentObject());
if(obj!
=null){
varpBookMarks;
//VAB接口获取书签集合
pBookMarks=obj.Bookmarks;
varpBookM;
//VAB接口获取书签strMarkName
pBookM=pBookMarks(strMarkName);
varpRange;
//VAB接口获取书签strMarkName的Range对象
pRange=pBookM.Range;
varpRangeInlines;
//VAB接口获取书签strMarkName的Range对象的InlineShapes对象
pRangeInlines=pRange.InlineShapes;
varpRangeInline;
//VAB接口通过InlineShapes对象向文档中插入图片
pRangeInline=pRangeInlines.AddPicture(strBmpPath);
//设置图片的样式,5为浮动在文字上面
pRangeInline.ConvertToShape().WrapFormat.TYPE=vType;
deleteobj;
2.1.16GetFieldValue
BSTRGetFieldValue(BSTRstrFieldName,BSTRstrSheetName);
获得书签位置的数值
strFieldName:
书签的名字
strSheetName:
预留字段(值为空)
返回书签的值
//获得书签的值
varstrFieldValue=
2.1.17GetTempFilePath
BSTRGetTempFilePath();
获得临时文件路径
当前文件的临时路径
varstrTempPath=GetTempFilePath();
2.1.18GetRevCount
longGetRevCount();
获取修订节点的个数
获取修订节点的个数
2.1.19GetRevInfo
BSTRGetRevInfo(longlIndex,longlType);
获取修订节点的信息(修订人,修订的时间,修订的动作)
lIndex:
修订的节点编号
lType:
获取的信息编号
//1.获取修订的用户
vUserName=document.all.WebOffice1.GetRevInfo(i,0);
//2.获取修订的时间
vDate=newString(document.all.WebOffice1.GetRevInfo(i,1));
//3.获取修订的动作
varvRet=document.all.WebOffice1.GetRevInfo(i,2);
vRet=="
1"
表示"
插入"
的操作
2"
删除"
的操作
//4.获取修订的内容
vUserName=document.all.WebOffice1.GetRevInfo(i,3);
//总体的例子代码
varvCount;
varvOpt=0;
varvDate;
for(vari=1;
i<
=vCount;
i++){
vOpt=d
if("
==vOpt){
vOpt="
}elseif("
}else{
未知操作"
}
vDate=parseFloat(vDate);
dateObj=newDate(vDate);
alert(dateObj.getYear()+"
年"
+dateObj.getMonth()+1+"
月"
+dateObj.getDate()+"
日"
+dateObj.getHours()+"
时"
+dateObj.getMinutes()+"
分"
+dateObj.getSeconds()+"
秒"
);
2.1.20GetFileSize
longGetFileSize(LPCTSTRstrFilePath);
获取本地文件的大小
varvLen=obj.GetFileSize("
c:
\\111.doc"
2.1.21GetBookMarkCount
longGetBookMarkCount();
获取文档中书签的总数量
GetFileSize
2.1.22GetBookMarkInfo
BSTRGetBookMarkInfo(longlIndex,longlType);
获取各书签的信息(名称和变量)
varvBKCount;
variIndex;
varvName;
varvValue;
varvShowInfo;
vShowInfo="
for(iIndex=1;
iIndex<
=vBKCount;
iIndex++){
vShowInfo+="
BK"
+iIndex+"
+vName+"
="
+vValue+"
br>
vName="
vValue="
alert(vShowInfo);
//演示的例子:
2.1.23HideMenuItem
longHideMenuItem(longlMenuType);
控制自有工具栏的显示
lMenuType工具栏开关,采用32位的数字作为开关,当相关位为1的时候,按钮显示,为0是按钮隐藏。
enum{
vNew=0x01,//新建
vOpen=0x02,//打开
vSaveAs=0x04,//保存
vPrint=0x10,//打印
vPrintView=0x20,//打印预览
vReturn=0x1000,//全屏
vFullScrean=0x2000//返回
};
//只显示新建和全屏按钮
Object.HideMenuItem(0x01+0x1000);
2.1.24HttpInit
longHttpInit();
初始化上传接口
//上传前必须执行此方法
.HttpInit();
2.1.25HttpAddPostFile
longHttpAddPostFile(BSTRstrName,BSTRstrFile);
Http上传相关(保留)
//上传本地文件c:
\\111.doc
.HttpAddPostFile("
111"
)
2.1.26HttpAddPostBuffer
longHttpAddPostBuffer(BSTRstrName,BSTRstrRelateFile,BSTRpbBuffer,longlLen);
2.1.27HttpAddPostValue
longHttpAddPostValue(BSTRstrName,longlValue);
Http上传相关(保留)
2.1.28HttpAddPostString
longHttpAddPostString(BSTRstrName,BSTRstrValue);
添加要上传的表单域
strName:
表单域的名称
strValue:
表单域的值
//添加表单域,可多次执行此方法
2.1.29HttpAddPostCurrFile
longHttpAddPostCurrFile(Stringfield,StringnewFileName);
添加要上传的Word或者Excel文件
Field:
要上传文件的id
newF