第一章 软件介绍
本软件基于微软的技术支持文档KB Q311765(市场上现有的好多在线文档编辑控件均基于该文章完成,大家可以很容易的识别),修改了文章所附代码的一些缺陷,添加了一些实际软件开发过程中必需的功能。
本软件为所有新添加功能均为自主开发,拥有全部的知识产权。该软件实现了能够在浏览器窗口中直接编辑MS Office、Kingsoft WPS等复合文档并保存到Web服务器。控件采用标准互联网协议,支持任意后台Web服务器(iis, domino, webaphere, apache等),任意后台操作系统(win2k, win2003, linux, unix等),以及任意后台编程语言(asp, asp.net, jsp, php, vb.net, c#等)和任意web应用服务器体系结构(j2ee, .net等)。
任何人可以采用任何方式重新发布该软件,不受任何限制。
第二章 接口说明
2.1 属性
2.1.1 ActiveDocument
说明:只读,获取创建的活动文档对象。文档对象拥有Idispatch自动化接口,可以通过VBA编程控制文档对象。
例程:var doc = oframe.ActiveDocument;
doc.TrackRevisions = true//打开文档的修订功能
2.1.2 EnableFileCommand
说明:可读写,设置文件命令状态
参数:dsoFileCommandType:文件命令类型,可取值0至8,具体说明参见枚举常量2.4.3dsoFileCommandType
例程:var filenew = oframe.EnableFileCommand(0);//获取新建菜单项是否可用
oframe.EnableFileCommand(0) = true | false;//设置新建菜单项可用或者失效
2.1.3 Caption
说明:可读写,标题栏的左边的标题;
例程:oframe.Caption = “欢迎使用dsoFramerEx控件”;//设置控件的标题内容
var caption = oframe.Caption;//获取控件的标题信息
2.1.4 Titlebar
说明:可读写,显示/隐藏标题栏;
例程:var isShowTitleBar = oframe.TitleBar;
oframe.TitleBar = true | false;//设置标题栏的状态可见或者隐藏
2.1.5 Toolbars
说明:可读写,显示/隐藏工具栏
例程:var isShowToolbars = oframe.Toolbars;//获取工具栏的状态,
oframe.Toolbars = true | false;//设置工具栏可见或者隐藏
2.1.6 Menubar
说明:可读写,显示/隐藏菜单栏
例程:var isShow Menubar = oframe. Menubar;//获取工具栏的状态,
oframe. Menubar = true | false;//设置工具栏可见或者隐藏
2.1.7 ModalState
说明:可读写,Returns/sets the controls modal state
例程:var modal = oframe.ModalState
oframe.ModalState = true;
2.1.8 BorderStyle
说明:可读写,设置控件窗口的边框样式
样式类型:样式类型可能的取值范围是0至3,具体说明参见枚举常量dsoBorderStyle
例程:var borderstyle = oframe.BorderStyle;
Ofarme.BorderStyle = 0 | 1 | 2 | 3;设置边框演示为某一种;
2.1.9 BorderColor
说明:可读写,边框颜色;缺省值:系统按钮颜色;OLE_COLOR是一个BGR (Blue, Green, Red)数值。BGR value = (blue * 65536) + (green * 256) + red
例程:oframe.BorderColor= OLE_COLOR
2.1.10 BackColor
说明:可读写;背景颜色;缺省值:系统窗口背景颜;OLE_COLOR是一个BGR (Blue, Green, Red)数值。BGR value = (blue * 65536) + (green * 256) + red
例程:oframe.BackColor = OLE_COLOR
2.1.11 ForeColor
说明:可读写;前景颜色;缺省值:系统窗口字体颜色;OLE_COLOR是一个BGR (Blue, Green, Red)数值。BGR value = (blue * 65536) + (green * 256) + red
说明:Obj.BackColor = OLE_COLOR
2.1.12 TitlebarColor
说明:可读写,标题框颜色;缺省值:系统按钮颜色
例程:
2.1.13 TitlebarTextColor
说明:可读写,标题框文本颜色;缺省值:系统焦点按钮颜色;
2.1.14 HostName
说明:可读写,主机名称;缺省值:DsoFramerControl
2.1.15 DocumentFullName
说明:只读,打开文档的全路径名称;在本地未保存的文档返回值为空,否则为全路径名;
例程:var path = oframe. DocumentFullName
2.1.16 IsReadOnly
说明:只读,返回文档的状态
例程:var bRes = oframe.IsReadOnly ();
2.1.17 IsDirty
说明:Returns True/False if file has been altered or needs save.
例程:var bRes = oframe.IsDirty();
2.2 函数
2.2.1 Activate
说明:Activates the current document object.
例程:oframe. Activate();
2.2.2 CreateNew
HRESULT CreateNew([in] BSTR ProgIdOrTemplate);
说明:创建新的文档对象
参数:ProgIdOrTemplate,对象的ProgID或者文档模板,可以是本地模板也可以是网络模板。常用的ProgID有
Excel Spreadsheet | "Excel.Sheet" |
Excel Chart | "Excel.Chart" |
PowerPoint Presentation | "PowerPoint.Show" |
Project Project | "MSProject.Project" |
Visio Drawing | "Visio.Drawing" |
Word Document | "Word.Document" |
例程:oframe.CreateNew(“Word.Document”);//创建一个word文档;
oframe.CreateNew(“c:/new.doc”);//以本地文档c://new.doc为模板创建一个word文档
2.2.3 Open
Open(Document, ReadOnly, ProgId, WebUsername, WebPassword);
说明:打开文档;
参数:Document,必需,要打开的文档对象,可以是本地文件,也可以是远程服务器上的文件;
ReadOlny,可选,是否以只读方式打开文档,如果打开网络文件必须为FALSE;
ProgID,可选,如果指定ProgID,则强行使用ProgID指定的类型转换文档,否则,以缺省方式打开Document 对象;
WebUsername,WebPassword, for web access
例程:oframe.open(“c://new.doc”);//打开本地文件
oframe.open(http://127.0.0.1/test.doc);//打开服务器端的文件
2.2.4 Save
Save(SaveAsDocument, OverwriteExisting, WebUsername, WebPassword);
说明:保存编辑的文档
参数:SaveAsDocument,可选,要另存的文件名称,缺省情况下,保存回原来的位置,如果是新创建的一个文档,控件会弹出窗口选择保存的路径;
OverwriteExisting,可选,是否覆盖已经存在的文件;
WebUsername,WebPassword, for web access
例程:oframe.Save();//保存文件缺省位置,或者弹出保存路径选择窗口。
oframe.Save(“c://aaa.doc”);//保存文件到c://aaa.doc
2.2.5 Close
Close();
说明:关闭文档
例程:oframe.Close();
2.2.6 ShowDialog
ShowDialog(dsoShowDialogType);
说明:显示对话窗口,
参数:dsoShowDialogType,对话窗口的类型,取值范围0~6,具体内容参见枚举常量2.4.2dsoShowDialogType
例程:oframer.ShowDialog(5);//显示文档属性对话框
2.2.7 ExecOleCommand
ExecOleCommand(OLECMDID, Options, vInParam, vInOutParam);
说明:执行已知的OLE命令,常用的命令有:×××
参数:OLECMMID,必选,LONG 类型,OLE命令的标识
Option,可选,
vInParam,可选
vInOutParam,可选
例程:
2.2.8 PrintOut
PrintOut(PromptUser, PrinterName, Copies, FromPage, ToPage, OutputFile);
说明:打印当前文档
参数:PromptUser,可选
PrinterName,可选,打印机名称
Copies,,可选,打印的份数
FromPage,,可选
ToPage,,可选,
OutputFile,,可选,输出文件名称
例程:
2.2.9 PrintPreview
PrintPreview();
说明:打印预览
例程:oframe.PrintPreview();
2.2.10 PrintPreviewExit
PrintPreviewExit();
说明:推出打印预览功能
例程:oframe. PrintPreviewExit()
2.2.11 SubmitForm
SubmitForm(formName, fieldName, fileName);
说明:与表单内容一起提交文档,该函数仅在控件应用于网页的时候有效。
参数:formName,可选,如果为空,缺省情况下和页面的第1个表单一起提交。
fieldName,可选,缺省值为”DsoFramerExField”,在服务器端处理附件时使用
fileName,可选,缺省值为”DsoFramerExFileName” ,在服务器端处理附件时使用
例程:参考Demo程序
2.2.12 GetFile
GetFile(szuri, srcFile, desFile);
说明:利用ftp协议,获取服务器文件
参数:szuri,服务器地址
srcFile,服务器端的文件名称,
desFile,下载到本地的文件保存的全目录名称
2.2.13 PutFile
PutFile(szuri, srcFile, desFile);
说明:利用ftp协议,上传本地文件
参数:szuri,服务器地址
srcFile,本地文件的全路径名
desFile,保存到服务器上的文件名
例程:
2.2.14 CreateFolder
CreateFolder(pFolder)
说明:在控件运行的机器上创建目录结构
参数:pFolder,要创建的目录名称,可以是任何合法的目录层次
返回值:TRUE | FALSE ,创建成功或者失败
例程:oframe.CreateFoleder(“c://test/test”)
2.2.15 RemoveFolder
RemoveFolder(pFolder)
说明:在控件运行的机器上要删除的目录结构
参数:pFolder,要创建的目录名称,可以是任何合法的目录层次
返回值:TRUE | FALSE ,创建成功或者失败
例程:oframe. RemoveFolder (“c://test/test”)
2.3 事件
2.3.1 OnFileCommand
HRESULT OnFileCommand([in] dsoFileCommandType Item, [in,out] boolean* Cancel)
2.3.2 OnDocumentOpened
HRESULT OnDocumentOpened([in] BSTR File, [in] IDispatch* Document);
2.3.3 OnDocumentClosed
2.3.4 OnActivationChange
HRESULT OnActivationChange([in] boolean fGoingActive);
2.3.5 BeforeDocumentClosed
HRESULT BeforeDocumentClosed([in] IDispatch* Document, [in,out] boolean* Cancel);
2.3.6 BeforeDocumentSaved
HRESULT BeforeDocumentSaved([in] IDispatch* Document, [in] BSTR Location, [in,out] boolean* Cancel);
2.3.7 OnPrintPreviewExit
2.4 枚举常量
2.4.1 dsoBorderStyle
dsoBorderStyle标识控件的边框样式,预定义的边框样式有四种,分别取值0至3表示:
u dsoBorderNone = 0,//没有边框
u dsoBorderFlat,//扁平边框
u dsoBorder3D,//3D立体样式
u dsoBorder3Dthin//3D窄边框
2.4.2 dsoShowDialogType
dsoShowDialogType标识要打开的对话框的类别,定义的对话框有7种,分别取值0~6表示,调用函数ShowDialog时使用该枚举值::
u dsoDialogNew = 0,// 新建文档对话框
u dsoDialogOpen,// 打开文件对话框
u dsoDialogSave,// 保存文档对话框
u dsoDialogSaveCopy,// 另存文档对话框
u dsoDialogPrint,// 打印文档对话框
u dsoDialogPageSetup,// 页面设置对话框
u dsoDialogProperties// 文档属性对话框
2.4.3 dsoFileCommandType
dsoFileCommandType 标识了文件子菜单的所有操作,共有9种操作,在事件OnFileCommand中区别不同的操作,分别取值0~8
u dsoFileNew = 0,// 文件->新建菜单
u dsoFileOpen, // 文件->打开
u dsoFileClose, // 文件->关闭
u dsoFileSave, // 文件->保存
u dsoFileSaveAs, // 文件->另存为
u dsoFilePrint, // 文件->打印
u dsoFilePageSetup, // 文件->页面设置
u dsoFileProperties, // 文件->文件属性
u dsoFilePrintPreview// 文件->打印预览
2.5 手写快捷键
1. | 退出 | x |
2. | 撤销 | d |
3. | 重做 | a |
4. | 取消批注 | c |
5. | 增加线宽 | w |
6. | 减少线宽 | s |
7. | 线条红色 | r |
8. | 线条绿色 | g |
9. | 线条蓝色 | b |
10. | 线条黄色 | y |
11. | 选择颜色 | e |
第三章 编程示例
<object classid="clsid:00460182-9E5E-11d5-B 7C 8-B8269041DD57" id="oframe" width="100%" height="100%">
<param name="BorderStyle" value="1">
<param name="TitlebarColor" value="52479">
<param name="TitlebarTextColor" value="0">
<param name="Menubar" value="1">
</object>