昨日

小胜凭智 大胜靠德

C++博客 首页 新随笔 联系 聚合 管理
  2 Posts :: 0 Stories :: 257 Comments :: 0 Trackbacks

公告:留言请到Http://www.dsoframer.com上。


另DSOFramer QQ群: 22190338


=========================

转移战场了   2007-04-26

 

=============================================================
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 //文档已经保存,没有修改
 

 

posted on 2006-02-20 16:59 昨日 阅读(64084) 评论(255)  编辑 收藏 引用
评论共3页: 1 2 3 

Feedback

# re: DSOFramer 控件修改成功 2006-04-30 02:11 english version?
Hello,
I have been searching for a way to do word docs like this for so long, using the original from Microsoft, but you've solved the httppost problem. I really loved it, and it works beautifully. But the "File" meny is in a different language. Is there any way you would make an english version of it or hand out the sourcecode for the latest dso?
Thanks so much,
Rune

rune_horneland@hotmail.com  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-04 14:31 xuzhiming
你好,楼主!!
能否给份源码???
xu.zhiming@163.com  回复  更多评论
  

# Bug,是否是控件的Bug 2006-05-11 14:21 al
'新建
framecontrol.ActiveDocument.Application.CommandBars("Standard").Controls.Item(1).Enabled = False


只要我在程序里用了这行,某些操作时,Excel就会异出退出,不用这行就正常。
比如:单元格的内容为:7.3英寸,我要在7.3前面加黑色,这时双击进入编辑状态,这时光标在7.3前面,正常;然后光标移到后一个单元格,然后重新回来双击7.3那个单元格,这时就出错退出了。  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-11 16:29 al
上面问题已解决,不是程序Bug问题  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-14 15:44 hifeeling
楼主及各位网友
如何检测客户端浏览器是否已安装控件,如未,提示并自动下载安装  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-16 19:52 zy
l楼主,你太牛了,dsoframer我看了好长时间,也没看太明白,它几乎都是用api编的,我觉得好有难度,我特别想看看您改造的源码学习学习,可以给我一份源码吗?
我的email是zhyaemail@sohu.com,我也是做软件的,但c语言没有你那么强,我的擅长是java,web类的,如果有可能交个朋友,做做技术交流  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-17 14:24 hifeeling
怎样操作动态地址的文档如
http://127.0.0.1/bop-cgi/xbop.py?xxx.doc  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-18 11:56 chemmo
楼主,你好!!
能否给份源码???
chenmo123456@163.com  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-20 12:07 初学者
昨日兄弟,找你有个问题,请你请教。

用那个word控件打开新文档时。

加什么参数,可以以文档结构的浏览方式打开文档?

请帮忙看一下,有没有相应的接口或参数。谢谢。

找到了,可以在QQ群中答复一下,哈,艰苦了。  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-21 11:25 高飞
请教楼主,为什么我在winform下用找不到
BOOL DsoSetMenuDisplay(long lMenuFlag)
接口?
新增的这些接口真的帮了我很大忙,十分感谢楼主,还有一个问题你建的QQ群为什么找不到?删除了吗?  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-22 18:30 流星
大家怎么没人分析千航公司的控件啊?这个公司的控件中有个SaveToURL()的函数(这个公司的控件我分析过,他们也是在DSOFramer这个控件的基础上开发出来的),这个函数其中有个参数是<input type=file name=N1>上传控件的id名称,我想,它在VC++的代码中应该有代码实现给<input type=file name=N1>这个控件赋值,不然它为什么要传这个参数呢?这样一来,实现上传就很简单了。但我一直没有找到方法,各位看有没有做过这方面经历的,分析分析啊。  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-23 14:33 ymh
有朋友试过在一个Winform中放两个DSOFramer么?特别是在TabControl的两个页中,他不能自动重绘啊,非要调用Active()方法才行,想让他自己重绘该怎么办  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-23 16:42 jisen
我的服务器上安装了ocx,但在客户端还是看不到控件,怎么回事?在客户端不是自动安装的吗?  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-24 07:38 ~_~
@ymh

那就调用一下,实际上,你可以在代码中下端点看看,然后,在切换的事件中,调用一下Active() .可以给我做个环境 ,我看看。wanhhf@gmail.com  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-24 07:40 ~_~
@流星
Http的那几个函数,实现的就是这个功能。  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-25 01:34 kukukuan
对VC不熟,可能很难直接帮着改了

有些建议
第一,Excel部分功能尚未实现,希望早日完成
第二,远程上传的问题可以直接在内存流中把数据post出去,不一定要生成文件(这个需要了解HTTP协议的有关内容)
第三,远程传输可考虑数据压缩

顺便鼓励一下,干的相当不错,不过估计等你完全搞好,有好些作Web Office套件的公司要倒闭了  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-25 13:29 Julie_w
楼主好强!
可否给份源码,谢谢!  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-25 13:30 Julie_w
wh_imsto@hotmail.com  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-25 14:07 昨日
@kukukuan
呵呵。
没打算深做下去
1。结构非常清晰了。稍微懂点开发,直接添加Excel的接口就OK了。
2。本身就是内存流。但是还是要必须保存为文件。因为你要传得是这个文件。
3。不可以压缩。压缩以后,到服务器,采用标准的HTTP协议就无法读取了。

呵呵,还是要谢谢了。
  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-25 16:04 流星
@~_~

谢谢你!
可以具体的说明怎么做不?  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-25 16:05 流星
@~_~
可不可以告知你的QQ号啊,想直接向你请教。  回复  更多评论
  

# 好象上传文件不稳定 2006-05-26 14:28 廖家远
在我的电脑上XMLHTTPRequest->send(vt)这里好象很容易出异常,特别是在web服务器上使用的时候。如果不在同一台电脑上使用,好象IE session的第一次出异常,后来的不会。
以用我用winnet直接connect,不用xmlHTTP,好象也有这种现象……

当我启动Web服务器的跟踪的时候,在本机上又不会出错,感觉响应太快了容易出异常……当然,应该是更深层的原因。  回复  更多评论
  

# 咦,在IE分帧的情况下刷新是不是有问题 2006-05-26 17:21 廖家远
咦,在IE分帧的情况下刷新是不是有问题,好象没有刷新。并且还挡在最前面。  回复  更多评论
  

# 咦,我下载来的源文件没有发现contentType的设置项目,你们上传也没问题吗? 2006-05-26 22:47 廖家远
咦,我下载来的源文件没有发现contentType的设置项目,你们上传也没问题吗?我的就不行,在HttpPost函数里应该加了下面的第一行吧?

pIXMLHTTPRequest->setRequestHeader("Content-Type","multipart/form-data; boundary=--MULTI-PARTS-FORM-DATA-BOUNDARY");
hr=pIXMLHTTPRequest->send(vt);
  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-29 10:51 阿Q
void CreateNew(BSTR ProgIdOrTemplate)的说明增加一点:
除了使用昨日兄提供的几个参数以外,还可以使用文档模板(实际就是Word文档)做参数的

to 流星:
QQ号不是在上面吗,可否看仔细点,呵呵  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-29 18:44 昨日
@廖家远
可以到群里面讨论。  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-29 19:57 dh20156
非常佩服作者的功力!!!
如果不是因为签名问题相信该控件会很快推广开来!  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-30 01:07 kukukuan
TO 昨日

"本身就是内存流。但是还是要必须保存为文件。因为你要传得是这个文件。 "

呵呵,这个不一定要存为文件的

下面是个Delphi的例子,直接构造要发送的数据给接收页面就好了
最后这个函数用indy控件把数据post出去了,在MFC里也有类似的库,实在不行WinInet或者Winsock的API都可以对服务器发送,这样就不必产生临时文件了
VC这方面的例子更多了


要使用HTTP控件模仿FORM以multipart/form-data形式上传文件,需要将数据按照指定的格式写入stream中,然后post出去,具体的格式是什么很多帖子都有介绍,自己搜吧。下面代码演示了用ICS的HTTPCLI控件把一张JPG图上传到服务器上,服务器用ASP脚本来接收。
==========================
procedure TForm1.Button1Click(Sender: TObject);
const
crlf:string=chr(13)+chr(10);
var
ms,bb:tmemorystream;
buf:string;
begin
ms:=tmemorystream.Create;
bb:=tmemorystream.Create;
bb.LoadFromFile('1.jpg');//文件的数据
bb.Position:=0;
buf:='-----------------------------7d332066021a'+crlf;
buf:=buf+'Content-Disposition: form-data; name="FilePath1"; filename="E:\delphi\a\1.jpg"'+crlf;
buf:=buf+'Content-Type: image/pjpeg'+crlf+crlf;
ms.WriteBuffer(buf[1],length(buf)); //将头部格式写进去
ms.Position:=ms.Size;
ms.CopyFrom(bb,bb.Size);//读入JPG文件数据
buf:=crlf+'-----------------------------7d332066021a'+crlf;//分割符
buf:=buf+'-----------------------------7d332066021a--';//结束符
ms.Position:=ms.Size;
ms.WriteBuffer(buf[1],length(buf));
ms.Position:=0;
http1.ContentTypePost:='multipart/form-data';//指定entype
http1.URL:='http://localhost/u.asp';
http1.SendStream:=ms;
http1.Post;
ms.Free;
bb.Free;
end;

  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-30 01:10 kukukuan
ASP里边简单加上这个就可以获得Form Post数据
分析一下就好了

<%
response.Binarywrite Request.BinaryRead(Request.TotalBytes)
%>  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-05-31 09:47 阿Q
建议大家到QQ群里讨论,那里的气氛不错的


BTW,今日端午,祝各位节日过得好!  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-01 15:14 昨日
@kukukuan
E:\delphi\a\1.jpg 赫赫。这个不就是文件吗
所谓的传文件,当然是要把文件读到内存中。然后Post了。
赫赫。  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-01 23:38 kukukuan
E:\delphi\a\1.jpg 这个不就是文件吗?
----------------------------------------
To 昨日:

这个文件是虚的,只是一个文件名,这个文件本身不必存在,文件的内容是从内存加载的,而不是硬盘

我用Delphi弄了一个类,讲的就是如何构造Post出去的流的,最后用HttpSendRequest 这个函数Post出去就好了

http://blog.sina.com.cn/u/48c62bc701000599

应该不难改写成C++的



  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-01 23:58 kukukuan
所谓的传文件,当然是要把文件读到内存中。然后Post了。
----------------------------------------------

如果文件已经在内存中,就没有必要存成临时文件然后再读入内存了
STDMETHODIMP CDsoFramerControl::HttpAddPostCurrFile(BSTR strFileID,BSTR strFileName, VARIANT_BOOL* pbool)
这个函数中另存为临时文件再删除的做法是没有必要的

我想表达的就是这个意思


上面我给出了Delphi构造Post出去的数据的构造方法,然后用wininet的API发送就好了,这个应该和VC是一样的;另外,研究一下XMLHttpClient->AddPostArguments这个是怎么实现的应该也会有帮助

最近用Delphi实现一个数据在线编辑处理并上传的ActiveX在网页上调用,用的就是这个办法,直接下载数据到内存,编辑好后再把内存里的数据post出去
如果你需要,我可以给你一个Delphi的demo的  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-02 15:50 昨日
好。。  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-05 20:18 gloomy
haohao  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-06 17:36 昊子
下载了5.21版

提个建议,可以把你做得那些接口做成标准COM接口吧,现在在IDE里面看不到新加的接口

还有个问题,Post上来的东西怎么获取?asp.net取得的form.count是0,files.count还是0  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-06 18:33 昊子
廖家远说的似乎有道理

只是拼好了字节流,但是没有设置enctype,不然asp.net应该能读标准HTTP协议。
麻烦昨日看看。  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-08 08:55 小温
我怎么上传不上去
用Save()出错;
下面的不明白什么意思
document.all.FramerControl1.HttpInit();
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");
能否给一个实例代码,我的邮箱wenyuefei@163.com
非常感谢  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-08 15:19 小温
----MULTI-PARTS-FORM-DATA-BOUNDARY
Content-Disposition: form-data; name="RecordID"

20060102200
----MULTI-PARTS-FORM-DATA-BOUNDARY
Content-Disposition: form-data; name="UserID"

李局长
----MULTI-PARTS-FORM-DATA-BOUNDARY
Content-Disposition: form-data; name="FileData"; filename="C:\DOCUME~1\WYF\LOCALS~1\Temp\DSOWebOffice\bbb.doc"
Content-Type: application/msword


我把Request的Stream写成文件如上,不知到怎么分析相应name,怎么获取文件  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-09 10:43 Linco
源码好象缺少XMLHttpClient.cpp文件。  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-09 15:56 廖家远
@Linco
把HttpPostDat.lib加到工程中就行了。  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-10 10:07 初学者
# 咦,在IE分帧的情况下刷新是不是有问题 2006-05-26 17:21 廖家远
咦,在IE分帧的情况下刷新是不是有问题,好象没有刷新。并且还挡在最前面。 回复
+++++++++++++++++++++++++++++++++++++++++++++++

笨笨与昨日:

这个问题,似乎是我用了框架的原因,如何解决这个问题?
似乎直接加在一个独立的页面,控件刷新正常,但用框架会出现与笨笨的一样的问题。

问题之二:

该控件,在offce2003下,关闭打印预览后,却也同时把文档关了,且该控件类似于死锁的状态。

请笨笨与昨日兄弟  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-10 10:07 初学者
# 咦,在IE分帧的情况下刷新是不是有问题 2006-05-26 17:21 廖家远
咦,在IE分帧的情况下刷新是不是有问题,好象没有刷新。并且还挡在最前面。 回复
+++++++++++++++++++++++++++++++++++++++++++++++

笨笨与昨日:

这个问题,似乎是我用了框架的原因,如何解决这个问题?
似乎直接加在一个独立的页面,控件刷新正常,但用框架会出现与笨笨的一样的问题。以上问题,也请昨日亲自测试一下,谢谢。

问题之二:

该控件,在offce2003下,关闭打印预览后,却也同时把文档关了,且该控件类似于死锁的状态。

请笨笨与昨日兄弟尽可能的在office2003版本下测试,好吗?  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-11 17:29 al
用了框架(网页),Tab页(窗体),控件刷新都不正常  回复  更多评论
  

# re: 2.2版的问题 2006-06-12 10:38 廖家远
DWORD dwPostBufferLength=m_pHttp->AllocMultiPartsFormData(pPostBuffer, "---------------------------7d621451e083c");

pIXMLHTTPRequest->setRequestHeader("Content-Type","multipart/form-data; boundary=--MULTI-PARTS-FORM-DATA-BOUNDARY");

这两个的东东应该对应的,它的意思是用boundary来将上传的数据拆分成表单各项的值。一般应该用随机字符串,要不表单值中刚好存在与boundary的数据相等的值时拆分会出错的。

CDsoFramerControl::FtpConnect方法的lPort提示没有定义。应该少了一个ftp 端口的定义。
  回复  更多评论
  

# DSOFramer 控件怎么用 2006-06-14 08:05 小温
谁有这个控件的WEB应用实例啊,能否给我发一个
我的邮箱wenyuefei@163.com
十万分感谢  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-14 17:51 初学者
发一份源码给我,谢谢!!!
Email:txh_data@sohu.com  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-15 21:37 昨日
@廖家远
是的。Ftp也有问题。哈哈。抱歉。写的仓促。
不过,建议大家不要用FTP,不是很爽。  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-15 21:40 昨日
@廖家远
2.2版的问题 2006-06-12 10:38 廖家远
说的很好。是这个问题。。已经改了。  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-18 10:50 阿磊
我用 document.all.FramerControl1.HttpPost("http://xxxx.com/uploadfile.jsp"); 上传服务器的时候,怎么都解析不了上传的输入流。有没有别的方法可以实现这种功能。麻烦 昨日 看一下  回复  更多评论
  

# 以图片作为印章 2006-06-20 15:58 孤星泪
(1)添加印章
**********************************************
Sub AddSignature()
Dim mImgShape,mInlineShapes,RootUrl,SignName,Url,sTime
On Error Resume Next
sTime=Now()
RootUrl="http://192.168.0.10/ieword/Img/"
SignName="yin.gif"
Url=RootUrl&SignName
Set mInlineShapes = FramerControl.ActiveDocument.ActiveWindow.Selection.InlineShapes.AddPicture (Url,false,true)
Set mImgShape = mInlineShapes.ConvertToShape
mImgShape.ZOrder(5)
mImgShape.Name=SignName ''Set Signature Name
mImgShape.AlternativeText="SignatureName:"&SignName&" SignatureTime:"&sTime&""
mImgShape.PictureFormat.TransparentBackground = true ''Set BackGround Can Transparent
mImgShape.PictureFormat.TransparencyColor = 16777215 ''Set Color=16777215
mImgShape.Fill.Visible = false
mImgShape.WrapFormat.Type = 3
End Sub

********************************************
(2)印章失效(改变印章的颜色)
Sub DeleteSignature()
Dim M,i,SigName
M=FramerControl.ActiveDocument.Shapes.Count
'Msgbox M
For i=1 To M
SigName=FramerControl.ActiveDocument.Shapes(i).Name
'Msgbox SigName
If SigName="yin.gif" Then FramerControl.ActiveDocument.Shapes.Item(i).PictureFormat.ColorType=3
End If
Next
End Sub
***************************************
(3)不断检查文档,看是否被修改,一断修改,印章失效

Sub CheckDocIfEdit()
On Error Resume Next
If FramerControl.IsDirty Then
DeleteSignature()
End If
SetTimeOut "CheckDocIfEdit()",100,"VBScript"
End Sub
  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-22 21:00 NB
NB !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
大爷,谢谢了。  回复  更多评论
  

# 手写功能怎么实现? 2006-06-24 11:03 lemontree
目前也面临楼主的问题,谢谢楼主提供痕迹保留的代码。至于手写可能比较难了,不明白应该是个什么机制  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-26 19:23 bin
看到这儿又研究这个控件的,太兴奋了,给我发份源码好吗?我非常想研究这个。  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-26 19:24 bin
忘了说邮箱了,呵呵,hai3qing@yeah.net  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-26 22:17 李海滨
我加群怎么进不去,是人满了吗?  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-27 17:48 bin
昨日大哥,给加个PPT功能吧.急用.  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-28 07:29 cby
3q,楼主  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-28 07:40 cby
请教个问题,把dsoFramer控件放到asp.net 的aspx页中怎么不行呀,放到aspx页中后,当执行document.all.FramerControl1.CreateNew("Word.Document");时提示:对象不支持此属性或方法,谢谢  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-06-29 23:38 tony
楼主能否给我份源码?tony_hcb@sina.com  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-07-03 07:38 阿Q
BS一下楼上的,开口就要源码,怎么不仔细看看人家作者的文章呢!!!  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-07-03 13:40 bin
@昨日
那个版本是加了ppt上传功能的?  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-07-04 15:08 leo
请问怎么刷新IE后文档不能显示啊?还有我每次只能是第一次下载安装控件时可以正常使用,以后打开网页都不能显示文档内容。  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-07-04 15:34 NB
@bin
到QQ群里面下载。已经加上PPT了。
================================
另:好像跟江西的那一家很相似,
也是打印预览有问题。
靠。都是从微软的改的,
哈哈。就看谁改的好了。
  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-07-10 11:39 Modest
希望楼主把这个功能也加上,然后再发布一份。
http://wallimn.bokee.com/3883039.html  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-07-10 11:39 Modest
希望老大把这个功能也加上,然后再发布一份。
http://wallimn.bokee.com/3883039.html  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-07-11 13:08 cdsnti
我用 dso 控件从服务器上打开一个 word 后,插入一个 activex 控件,当我 POST 数据回服务器时,数据流中只有头信息,没有内容,继续POST好几次,次数不确定,有时候就可以,请问这是怎么回事?  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-07-12 18:59 昨日
@cdsnti
你最好跟踪一下。应该是文档没有保存下来。  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-08-01 15:38 天佑米兰
朋友Word.Document、Excel.Sheet分别打开Word和Excel,那InfoPath应该怎么用呢?能告知下么?谢谢拉!~
  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-08-07 00:32 呆呆
请教一下各位大哥:如何加入红头文件啊?谢谢!
我的qq:664615902
email:hmchen.master@gmail.com
  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-08-07 16:44 SpbDev
2.2版我编译不过去.不会VC。希望能一并提供编译好的OCX文件。  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-08-08 14:28 昨日
@天佑米兰
你可以调用New,他会弹出对话框,。。。
建议加入群讨论。  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-08-08 15:02 着火
今天这群怎么满了  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-08-08 17:25 无人
能不能加个函数, 可以调用当前文档中 书签列表, 或者窗体域列表
  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-08-18 17:44 Niyazi Toros (niyazi_toros@yahoo.co.uk)
Hi,

Please forgive my ignorance but I cannot read Chinese. Do you have any English version of documantation for your article DSOFramer 控件修改成功 .

Is it possible to send to me the English version of the documentation. My email: niyazi_toros@yahoo.co.uk

Thank you for your kind understanding.

Rgds,
Niyazi

  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-08-22 09:09 西边客
你好:
为何我下载后编译无法通过呢:7errors 42warnings

—————————————————————————————————
F:\Downloads\DSOFramer_Open_V2.0\utilities.h(146) : warning C4005: 'ASSERT' : macro redefinition
C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE\afx.h(226) : see previous definition of 'ASSERT'
F:\Downloads\DSOFramer_Open_V2.0\utilities.h(152) : warning C4005: 'TRACE1' : macro redefinition
C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE\afx.h(235) : see previous definition of 'TRACE1'
F:\Downloads\DSOFramer_Open_V2.0\utilities.h(157) : warning C4005: 'TRACE2' : macro redefinition
C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE\afx.h(236) : see previous definition of 'TRACE2'
.............
—————————————————————————————————  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-08-31 11:34 昨日1
@Niyazi Toros (niyazi_toros@yahoo.co.uk)
赫赫。没有E文的,
哥们。uk 也是中文吗。
将就一下吧。  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-09-01 15:48 小唐
请问版主如何在dsoframer中加入模态或非模态对话框,用此对话框来加入手写签名板?创建对话框时返回失败,为何?  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-09-11 17:45 shishi
@kukukuan

你的demo可以给我一份吗?谢谢。jxzts@126.com
  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-09-14 19:22 大家好,问个弱智的问题
各位大侠,这个东东如何在vc里面调用???
  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-09-15 11:48 xuandme
给了原代码也不会编译啊,还没有用过c++呢
要是楼主能把最新的版本编译出来就好了,
  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-09-22 20:43 rockren#tom.com
我尝试也加一个 类似 NotifyCtlReady的事件,但没有成功。
我的顺序是:
1。在event接口中添加一个函数,
2。定义一个dispid
3。在函数中加入一个dsodisp××函数的调用
4。在测试的html中添加处理函数

是不是还要添加做其他的工作,我搞了一天也没有搞清楚呀!!

谢谢先  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-09-24 10:32 很好
很好啊,能给一个印章插件吗?  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-09-24 10:33 很好
能不能把菜单去掉?  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-09-24 11:39 很好
菜单已经取消了,哈哈  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-09-25 14:28 小唐
如何加入对话框,怎没人回答?我加进后就不能显示出来,请问各位大虾如何做?  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-09-29 23:04 rockren#tom。com
我在国庆期间也会发布一个dsoframer的扩展版本dsoframerex,其中包括了可以手写签名的功能、通过http协议保存到服务器,利用ftp上传下载文件、在本地创建删除多层目录,如果成功的话还可能实现发布为mht文件保存到服务器上,及其一个domino的演示程序,大家看看还有什么需求。  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-09-30 17:32 小唐
@rockren#tom。com
小弟等待大哥的杰作,请问是否也是开源?在这里先谢了。
  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-10-01 14:15 grand_zou
楼主,非常感谢您能将此项目开源,但由于我们现在的office版本都是较高,原想在国庆期间研究一下您的杰作,但苦于找不到您项目中引用的office 2000的类型库,因此我敬请楼主公开所有代码,包括所需资源,在此我代表所有研究DSOFramer的人员对您表示感谢  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-10-08 11:23 阿Q
不知道楼上何意,不是已经公开了吗?

难道你不会自己去找你的Office库?  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-10-08 13:36 很好
to @rockren#tom。com

怎么调用手写签名功能  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-10-09 10:02
为何Save到服务器时提示文件正在使用,文件名换成别的也不行,然后文件长度就成0了?  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-10-09 11:04
打开服务器上的文件,保存提示"另一个程序正在使用此文件,进程无法访问",有哪位兄弟解决了  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-10-11 15:42 昨日
@辉
不可能  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-10-14 12:29 grand_zou
@阿Q

office 库我都找到了了,但在编译时还是出错,不能通过
  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-10-23 14:40 Wendy
你的控件好强,能给我提供一份源码+ocx的文件吗?万分感谢  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-10-23 15:30 Wendy
上面激动的忘了说我的油箱地址了
我的油箱是:wushigang@163.com
  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-10-26 16:12 悄悄的
为什麽使用了上面的保存到WEB功能,WEB頁面提示:對象不支持此屬性或方法呢?

錯誤位置:document.all.FramerControl1.HttpInit();

請幫忙,謝謝!

QQ:47207454 電郵:yil9999@126.com  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-10-28 15:50 你好
为什麽使用了上面的保存到WEB功能,WEB頁面提示:對象不支持此屬性或方法呢?

錯誤位置:document.all.FramerControl1.HttpInit();

請幫忙,謝謝!
  回复  更多评论
  

# re: DSOFramer 控件修改成功 2006-10-29 16:55 scutwukai
@你好
如果你机上装了低版本的dsoframer.ocx的,请先解除注册,方法是找到你机上低版本dsoframer.ocx所在的目录,在cmd模式下输入regsvr32 /u dsoframer.ocx  回复  更多评论
  

评论共3页: 1 2 3 

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理