用OleContainer嵌入WORD,但打印按钮为灰色,如何实现打印功能(还没解决) ( 积分: 300 )

  • 主题发起人 主题发起人 tongdanfeng
  • 开始时间 开始时间
T

tongdanfeng

Unregistered / Unconfirmed
GUEST, unregistred user!
用OleContainer编写一个ocx,实现网页上嵌入WORD的功能,但打印按钮为灰色,如何实现打印功能
 
用OleContainer编写一个ocx,实现网页上嵌入WORD的功能,但打印按钮为灰色,如何实现打印功能
 
是不是没装打印机?
 
不是没装打印机
 
请参阅:
http://www.delphibbs.com/delphibbs/DispQ.asp?LID=1207672
问题:OLE嵌入WORD的打印预览问题[:)]
 
不行,提示“所需视图无效”
 
这个问题我也遇到过,后来偶然重装系统后就OK了,我用的是Win2000 英文版的系统+Delphi7
 
这篇文章《将Excel封装成表格控件》应该对你有帮助
http://www.ccw.com.cn/cio/research/program/htm2003/20030111_157BZ.asp
 
刚才的那个地址,“下一页”无效,这个地址行
http://www.ccw.com.cn/htm/center/prog/02_11_18_2.asp
 
哦!缺少打印和打印预览功能,我给补上:
procedure Texcel_grid.print;
begin
DoVerb(1);
OleObject.printout;
OleObject.application.quit;
open;
end;
procedure Texcel_grid.printpreview;
begin
DoVerb(1);
OleObject.printpreview;
OleObject.application.quit;
open;
end;
 
上面的方法都不行了,有其它办法吗?
 
在OleContainer里,打印和打印预览按钮是不可能激活的!
 
仿照按钮突破专家,做一个[:D]
想法而已,通过Api函数,得到打印和打印预览的按钮,然后EnableButton,自己琢磨的,没有实现过
 
http://www.delphibbs.com/delphibbs/dispq.asp?LID=1877335

procedure TForm1.Button1Click(Sender: TObject);
begin
OleContainer1.CreateObjectFromFile ('c:/aaa.doc', False);
OleContainer1.DoVerb (ovInPlaceActivate);
WordApplication1.ConnectTo(IDISPATCH (OleContainer1.OleObject.Application) as _Application);
end;
我的可以打印,但是不能保存office xp,关注一下,看看谁能给个比较完美的解决方案
 
也想做这方面的功能,学习一下!
 
这个问题几乎是不可能解决的,如果你不放弃使用Container方式的话。因为微软在设计OleContainer的时候就没让它那支持打印和打印预览,这不光在Delphi中是这样,在VB中也是如此。
我也曾经碰到同样的问题,我的一个微软的朋友给我的建议是改造我原有的程序代码,使用non-olecontainer方式来操纵Ms Office。
虽然改造后程序代码比原来复杂了许多,但事实上我所有的问题都得到了解决,包括打印和打印预览。

ps:我也是在web上的ocx应用,只不过我用的是Excel而不是Word,使用non-olecontainer方式实现了完美的打印和打印预览效果。
 
楼上这么操作的,微软官方网站的那个VC代码?
 
TO: younghat
能详细点吗,或者能给个参考代码或参考资料,谢谢。
 
其实并不复杂。估计你大部分的程序已经是通过olecontainer实现了,这都可以保持不变,只是在打印和预览时需要特别处理,如下:
1、在Form上放置你自己的打印和打印预览按扭;
2、在按钮事件中用non-olecontainer方式启动一个新的Excel(或Word)进程,并将原OleContainer中的Excel文件传递给这个新进程;
3、调用新的Excel进程中的打印或预览函数(由于是non-olecontainer方式,因此打印和打印预览函数在这里都是有效的)
4、打印或预览完毕后返回原Form;
这里难点将会在对新的Word进程的控制上,因为你肯定不希望用户在这个Word进程上做一些随意的操作。这一点在Excel上是很容易控制的,Word上我没有试过不太清楚。
 
我在网上搜索 non-olecontainer ,没有什么资料介绍呀,能否给个参考源码了,谢谢!
 
后退
顶部