Hi Alex,
Thanks for your response!
After further investigation on the web I'm still fairly convinced this is
a
C++ only option, due to the wrapping of COM Variant types - .NET
interop
will, apparently, not support this at all, unless something has changed
as
.of 2.0.
WebBrowser control provide us IWebBrowser2 com-interface and we can use
this interface to control WebBrowser control's operation. IWebBrowser2
is
an IDispatch interface, in a word, this is a dual-interface, so we can use
it in C++ and VB. If your environment is .Net, we could use it with
Interoperability mechanism. I hope the following articles will be
helpful
for you:
Title: Using the WebBrowser control in .NET
URL:
http://www.codeproject.com/csharp/webbrowser.asp
Title: Using MSHTML Advanced Hosting Interfaces
URL:
http://www.codeproject.com/csharp/advhost.asp
Title: Microsoft Web Browser Automation using C#
URL:
http://www.codeproject.com/csharp/mshtml_automation.asp
I hope the above information is helpful for you. If there is anything I
can do for you, please feel free to let me know. Thanks and have a nice
day!
Best Regards,
Terry Fei[MSFT]
Microsoft Community Support
Get Secure!
www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
--------------------
Reply-To: "Alex Clark" <
[email protected]>
From: "Alex Clark" <
[email protected]>
References: <#
[email protected]>
<
[email protected]>
<#
[email protected]>
<
[email protected]>
Subject: Re: WebBrowser Control Printing
Date: Thu, 9 Mar 2006 16:22:23 -0000
Lines: 116
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.2670
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2670
X-RFC2646: Format=Flowed; Response
Message-ID: <
[email protected]>
Newsgroups: microsoft.public.dotnet.languages.vb
NNTP-Posting-Host: host86-134-248-72.range86-134.btcentralplus.com
86.134.248.72
Path: TK2MSFTNGXA03.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP12.phx.gbl
Xref: TK2MSFTNGXA03.phx.gbl microsoft.public.dotnet.languages.vb:321151
X-Tomcat-NG: microsoft.public.dotnet.languages.vb
Hi Colin,
After further investigation on the web I'm still fairly convinced this
is
a
C++ only option, due to the wrapping of COM Variant types - .NET interop
will, apparently, not support this at all, unless something has changed as
of 2.0.
I think you're right about the report-writing avenue however. It's a
shame,
as what I'm trying to do would be ideally suited to generating a quick
HTML
file and printing it, if only I could have slightly more control over
the
printed output :-(
Thanks for your help,
Alex Clark
Alex,
Print Templates are certainly non-trivial, but they do not require
C++.
The key line of code from the example I gave is:
pCmdTarg->Exec(&CGID_MSHTML,
IDM_PRINT,
OLECMDEXECOPT_PROMPTUSER,
&vTemplatePath,
NULL);
Basically, what you would do in .NET is cast your IWebBrowser2 object to
an IOleCommandTarget and call the Exec method (as above) passing in
the
path to your print template (vTemplatePath in the above example.) The
vast majority of the Print Template code will be written in
JavaScript.
Honestly, I think you would be better investing in a report writing tool
(e.g. ActiveReports) The path you are headed down with the WB is not an
easy one.
--
Colin Neller
http://www.colinneller.com/blog
Hi Colin,
These look really useful but the article seems to imply that this is
only
possible when using C++. I know it was written a long time ago (before
.NET) but it doesn't seem as though it could be very VB.NET friendly
:-(
Thanks,
Alex
Alex,
I suggest you look into Print Templates:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnie55/html
/beyondprintpreview.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnie55/html
/printtemplate2.asp?frame=true
--
Colin Neller
http://www.colinneller.com/blog
Greetings,
(.NET 2.0, WinXP Pro/Server 2003, IE6 with latest service packs).
I've decided to take advantage of the layout characteristics of
HTML
documents to simplify my printing tasks, but of course it's thrown up
a
whole host of new issues...
I'm generating a multi page printable document in HTML from my app,
and
displaying it in a WebBrowser control. I've looked into using some
CSS
commands to control pagination, but nothing seems to fit the bill
so
far.
I need to include a custom header/footer (imported from another
HTML
file) on every page that's printed. I also need to draw a border
around each page. The closest I can get to the border is putting all
my print-content inside an HTML table, which looks ugly because it
doesn't close off at the foot of each page - it only draws its
final
horizontal line at the very end of the document.
I tried inheriting from WebBrowser and overriding the OnPrint
event,
but this never seems to get called? I've found an example on the
MSDN
site, but it's all in C++ and seems designed around MFC.
How can I hang on to the snazzy built-in formatting features of HTML,
but still have control over the printed output & pagination? Help!
Thanks in advance,
Alex Clark