• DSOFramer 控件(转)


    1.Html电子印章、手写签名系统
    演示:http://www.dianju.com.cn/video.htm
    在线试用:
    http://www.dianju.com.cn/websignpiaoju/
    http://www.dianju.com.cn/websigndemo/
    2.Word、Excel 电子印章,手写签名系统:
    演示版:
    http://www.dianju.com.cn/video.htm
    下载:
    http://www.dianju.com.cn/downloads/des/DES_Setup_File.rar
    开发商:北京点聚信息技术有限公司
    网址:  http://www.dianju.com.cn
    公安部安全认证产品!
    电子印章、电子签章、电子签名、全文批注、领导签批、安全文档整体解决方案。
    点聚电子签章系统特点
    1.实现在Word、Excel、Html、PDF、AutoCAD、WPS、RedOffice、SunOffice上加盖印章。
    2.采用高度安全机制。
    3.手写签批效果,笔迹采用压感处理,用户可以很容易写出毛笔、钢笔等带笔锋的效果。
    4.系统提供标准接口,可供客户进行二次开发和各种功能整合。
    5.支持多种印章保护控制,有效保护印章的安全。  
    ... ....
    ==============================================================
    20061123:
    转移战场了。http://www.dsoframer.com
    免费的空间
    ------------------------------------------------------
    下面接口添加完毕:
    1。文档打开、可写密码设置
    2。支持Open Http下的文件的 相对路径打开
    3。支持对文档中域的自动更新
    4。支持创建本地文件,和删除文件
    5。获取所有的修订的信息
    6。获取所有书签的信息
    本周末更新。文档还没写好。
    20061120
    Thanks For  Fred 
    QQ群:22190338  群已经快满了。请想加入者给群充Q币先。
    20060610:
    目前版本 :V2.2
    修改后的DSOFrmaer源代码下载:http://www.cppblog.com/Files/wanhhf/DSO_WebOffice_Open_V2.2.rar
    1。笨笨修改原版本中的 Post时候,为加 Head ,的Bug。(Thanks )
    2. 增加了FTP的功能。
    20060521:
    Word,Excel接口文档下载:http://wanhhf.googlepages.com/OfficeSDK_V9.0.rar
    修改后的DSOFrmaer源代码下载:http://www.cppblog.com/Files/wanhhf/DSOFramer_Open_V2.0.rar
    编译好的DSOFramer.ocx 下载 :http://www.cppblog.com/Files/wanhhf/DSOFramer_0521.rar
    如何对做好的控件签名:http://www.cppblog.com/wanhhf/AddToFavorite.aspx?id=5759
    备注:
           凡对此源代码进行修改的程序,希望能给作者发一份,或在此公开。
    <object classid="clsid:00460182-9E5E-11d5-B7C8-B8269041DD57"  CodeBase= Dsoframer.ocx#Version=2,0.0,4
    id="oframe" width="1000" height="1000">
             <param name="BorderStyle" value="1">
             <param name="TitlebarColor" value="52479">
             <param name="TitlebarTextColor" value="0">
             <param name="Menubar" value="1"> 
    </object>
    事件:
    1。NotifyCtrlReady 事件,控件初始化完毕会触发
         最好在这个事件里面调用Open,或者CreateNew接口

    /*
    1.新建
    */
    //新建Word
    document.all.FramerControl1.CreateNew("Word.Document");
    //新建Excel
    document.all.FramerControl1.CreateNew("Excel.Sheet");

    /*
    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);

    /*
    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");

    /*
    4.修订留痕
    */
    //进入留痕状态
    document.all.FramerControl1.SetTrackRevisions(1);
    //进入非留痕状态
    document.all.FramerControl1.SetTrackRevisions(0);
    //接受当前修订
    document.all.FramerControl1.SetTrackRevisions(4);

    /*
    5.设置当前用户
    */
    document.all.FramerControl1.SetCurrUserName("张三"); 

    /*
    6.设置当前时间(笔迹留痕会显示("Like 2006:02:07 11:11:11")
    */
    document.all.FramerControl1.SetCurrTime("2006:02:07 11:11:11");

    /*
    7.设置和创建书签,此功能比较强大,设置书签数据、添加书签和添加红头文件就靠他了
    SetFieldValue(BSTR strFieldName, BSTR strValue, BSTR strCmdOrSheetName)
    strFieldName:书签名
    strValue:要设置的值
    strCmdOrSheetName:命令 ::ADDMARK::   ::FILE::
    一般来说: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::");

    /*
    8.设置菜单显示情况
    BOOL SetMenuDisplay(long lMenuFlag)
    lMenuFlag为以下数值的组合
    #define MNU_NEW                         0x01
    #define MNU_OPEN                        0x02
    #define MNU_CLOSE                       0x04
    #define MNU_SAVE                        0x08
    #define MNU_SAVEAS                      0x16
    #define MNU_PGSETUP                     0x64
    #define MNU_PRINT                       0x256
    #define MNU_PROPS                       0x32
    #define MNU_PRINTPV                     0x126
    */
    //只有“新建”菜单可用
    document.all.FramerControl1..SetMenuDisplay(1);
    //只有“打开”菜单可用
    document.all.FramerControl1.SetMenuDisplay(2);
    //只有“打开”和“新建”菜单可用
    document.all.FramerControl1.SetMenuDisplay(3);

    /*
    9.保护文档和解保护文档
    lProOrUn:1:保护文档;0:解除保护
    lProType: 
        wdNoProtection = -1,
        wdAllowOnlyRevisions = 0,
        wdAllowOnlyComments = 1,
        wdAllowOnlyFormFields = 2
    strProPWD:密码
    */
    //完全保护文档,密码为"pwd"   
    document.all.FramerControl1.ProtectDoc(1,1,"pwd");
    //解除文档保护                
    document.all.FramerControl1.ProtectDoc(0,1,"pwd");

    /*
    10.显示或隐藏修订内容
    ShowRevisions(long nNewValue)
    nNewValue = 0 则隐藏修订
              = 1 则显示修订
    */
    //显示修订留痕
    document.all.FramerControl1.ShowRevisions(1);
    //隐藏修订留痕
    document.all.FramerControl1.ShowRevisions(0);
    /*
    */
    document.all.FramerControl1.InSertFile("http://localhost/1.doc");

    /*
    11.设置文档浏览模式
    ShowView(long dwViewType)

    */
    //大纲模式
    document.all.FramerControl1.ShowView(5);

    /*
    12.插入合并文件,
    strFieldPath 文件路径,可以是http,ftp的路径

    pPos = 0 //当前鼠标位置
    1;文件开头
    2;文件末尾
    InSertFile(BSTR strFieldPath, long lPos)
    */
    //文件头部
    document.all.FramerControl1.InSertFile("http://XX.com/XX.doc",1);
    //文件尾部
    document.all.FramerControl1.InSertFile("http://XX.com/XX.doc",2);
    //当前光标位置
    document.all.FramerControl1.InSertFile("http://XX.com/XX.doc",0);

    ===================================================================
    DSOFramer原有的接口说明
    1.void CreateNew(BSTR ProgIdOrTemplate)
      新建文档,
      其中: ProgIdOrTemplate参数:
    Excel Spreadsheet     "Excel.Sheet"
    Excel Chart        "Excel.Chart"
    PowerPoint Presentation  "PowerPoint.Show"
    Project Project      "MSProject.Project"
    Visio Drawing       "Visio.Drawing"
    Word Document       "Word.Document"
    2.  HRESULT Open([in] VARIANT Document, [in, optional] VARIANT ReadOnly,
    [in, optional] VARIANT ProgId, [in, optional] VARIANT WebUsername, [in, optional] VARIANT WebPassword)
        打开文档,可以是本地文件或者是服务器文件
    参数:
    Document  文档路径
    ReadOnly  是否已只读模式打开
    ProgId    OLE类型
    WebUsername  用户名(访问网络的文件时候,有可能需要)
    WebPassword  密码
    例子:
    DsoFramer1.Open "C:TestBook.xls"
    DsoFramer1.Open "C:Plain.txt", , "Word.Document"  //用Word来打开c:plain.txt文件
    DsoFramer1.Open "https://secureserver/test/mytest.asp?id=123", True, "Excel.Sheet", "MyUserAccount", "MyPassword"

    3.HRESULT Save([in, optional] VARIANT SaveAsDocument, [in, optional] VARIANT OverwriteExisting,
                    [in, optional] VARIANT WebUsername, [in, optional] VARIANT WebPassword);
    保存文件在本地
    DsoFramer1.Save "c:1.doc"
    4.Activate
    激活当前文档,没搞明白有什么用
    5.  HRESULT ActiveDocument([out,retval] IDispatch** ppdisp);
    返回当前活动文档的Dispatch接口,这个接口很重要,可以通过这个接口,操作所有的文档接口。
    如:下面 javascript 语句调用Office内置的对话框
    var obj;
    obj = new Object(document.all.FramerControl1.ActiveDocument);
    if(obj !=null){
    var dd;
    dd = obj.Application.Dialogs(84).Show();
    //... ...
    //delete it
    delete obj;
    }
    6.  HRESULT Close();
    关闭当前文档,建议在页面关闭的时候调用。
    MS的原来的版本,有时候关不掉Word,已经修复了。
    7.  HRESULT Caption([out,retval] BSTR* pbstr);
    属性,获取|设置窗口标题
    8.  HRESULT Titlebar([in] boolean vbool);
       HRESULT Titlebar([out,retval] boolean* pbool);
       显示或者隐藏标题栏
    9. HRESULT Toolbars([in] boolean vbool);
      HRESULT Toolbars([out,retval] boolean* pbool);
       显示或者隐藏工具栏
    10.  HRESULT ModalState([in] boolean vbool);
       HRESULT ModalState([out,retval] boolean* pbool);

    11.HRESULT ShowDialog([in] dsoShowDialogType DlgType);
      显示对话框
    12.HRESULT EnableFileCommand([in] dsoFileCommandType Item, [in] boolean vbool);
      HRESULT EnableFileCommand([in] dsoFileCommandType Item, [out,retval] boolean* pbool);

    13.  HRESULT BorderStyle([in] dsoBorderStyle style);
      HRESULT BorderStyle([out, retval] dsoBorderStyle* pstyle);

    14.  HRESULT BorderColor([in] OLE_COLOR clr);
      HRESULT BorderColor([out,retval] OLE_COLOR* pclr);

    15. HRESULT BackColor([in] OLE_COLOR clr);
      HRESULT BackColor([out,retval] OLE_COLOR* pclr);

    16.HRESULT ForeColor([in]OLE_COLOR clr);
      HRESULT ForeColor([out,retval]OLE_COLOR* pclr);

    17.HRESULT TitlebarColor([in] OLE_COLOR clr);
    HRESULT TitlebarColor([out,retval] OLE_COLOR* pclr);

    18.HRESULT TitlebarTextColor([in] OLE_COLOR clr);
       HRESULT TitlebarTextColor([out,retval] OLE_COLOR* pclr);

    19.HRESULT ExecOleCommand([in] LONG OLECMDID, [in, optional] VARIANT Options, [in, optional] VARIANT* vInParam, [in, out, optional] VARIANT* vInOutParam);

    20.HRESULT Menubar([in] boolean vbool);
      HRESULT Menubar([out,retval] boolean* pbool);
    21.HRESULT HostName([in] BSTR bstr);
      HRESULT HostName([out,retval] BSTR* pbstr);
    22. HRESULT DocumentFullName([out,retval] BSTR* pbstr);
       文档的路径
    23.HRESULT PrintOut([in, optional] VARIANT PromptUser, [in, optional] VARIANT PrinterName, [in, optional] VARIANT Copies,
        [in, optional] VARIANT FromPage, [in, optional] VARIANT ToPage, [in, optional] VARIANT OutputFile);
    24.HRESULT PrintPreview();
    25.HRESULT PrintPreviewExit();
    26.HRESULT IsReadOnly([out,retval] boolean* pbool);
       是否为只读的。
    27.HRESULT IsDirty([out,retval] boolean* pbool);
       是否保存了,实际可以用来判读文档有没有修改
       oframer.IsDirty = TRUE //文档没有保存,处于修改状态
        oframer.IsDirty = FALSE //文档已经保存,没有修改

  • 相关阅读:
    读《阿里云是如何失控的》有感
    LeetCode Search in Rotated Sorted Array 在旋转了的数组中查找
    界面编程模仿篇(QQ登录界面逼真篇)
    最牛B的编码套路
    QinQ封装及终结详解
    seaJs学习笔记之javascript的依赖问题
    Deploy maven on Linux OS
    c++——inline内联函数
    c++——引用
    c++——const关键字
  • 原文地址:https://www.cnblogs.com/ExMan/p/3655615.html
Copyright © 2020-2023  润新知