有没有用WebBrowser打印的好方法(100分)

J

jghuang

Unregistered / Unconfirmed
GUEST, unregistred user!
要求打印HTML文档,有设置,预览。
 
预览用webbrowser就可以了,
设置的话,如果用webbrowser只能有一个选项,在Internet选项中的
那个关于打印的选项,所以你可以通过修改注册表来完成这个选项,至于
具体位置自己找个工具自己查一下(比如regmon等等)
打印部分,你可以看到凡是htm文件都关联有一个print,查一下文件选项里
的关联就知道了。

以上是很弱智的方法,不过要方便可能只有这个方法了,或者,用thtmlview
控件,那个要付钱的玩意!
 
用IE4.0提供的TWebBrowser控件, 其中ExeWB方法可以用来打开,保存,打印...

procedure TWebBrowser.ExecWB(cmdID: OLECMDID;
cmdexecopt: OLECMDEXECOPT;
var pvaIn: OleVariant;
var pvaOut: OleVariant);
begin

ControlInterface.ExecWB(cmdID, cmdexecopt, pvaIn, pvaOut);
end;


应用:
uses SHDocVw_TLB;
procedute PrintHTML;
var eQuery: LongInt;
begin

eQuery := WebBrowser1.QueryStatusWB(OLECMDID_PRINT);
if wQuery and OEMCMDF_Enabled then

WebBrowser1.ExecWB(OLECMDID_PRINT,
OLECMDEXECOPT_PROMPTUSER,
'','')
else

showmessage('Print is Disabled!');
end;


IE4.0 的OCX在 /Windows/System/ShDocVw.dll文件中
 
多谢会长,能不能把关于打印的参数都贴出来,如页面设置...;
如果有WebBrowser的技术文档,能不能美我一份。
jghuang@126.com
 
所有的文档在MSDN中
 
会长:pvaIn,pvaOut两个参数怎么赋?好像''不行啊。
 
procedure TForm1.Button2Click(Sender: TObject);
var a,b: OleVariant;
eQuery: longint;
begin

a:='';
b:='';
eQuery := WebBrowser1.QueryStatusWB(OLECMDID_PRINT);
if (eQuery and OLECMDF_ENABLED) > 0 then

WebBrowser1.ExecWB(OLECMDID_PRINT,
OLECMDEXECOPT_PROMPTUSER,
a, b)
else

showmessage('Print is Disabled!');
end;
 
接受答案了.
 
顶部