zoukankan      html  css  js  c++  java
  • 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 //文档已经保存,没有修改

  • 相关阅读:
    阿里P8架构师谈:阿里双11秒杀系统如何设计?
    秒杀系统设计的知识点
    秒杀系统架构优化思路
    秒杀系统解决方案
    Entity Framework Code First (七)空间数据类型 Spatial Data Types
    Entity Framework Code First (六)存储过程
    Entity Framework Code First (五)Fluent API
    Entity Framework Code First (四)Fluent API
    Entity Framework Code First (三)Data Annotations
    Entity Framework Code First (二)Custom Conventions
  • 原文地址:https://www.cnblogs.com/ExMan/p/3655615.html
Copyright © 2011-2022 走看看