A megoldás nem túl bonyolult, ha tudjuk, hogy a WebBrowser komponens ExecWB metódusával különböző parancsokat futtathatunk.

ExecWB
Osztály: TWebBrowser
procedure ExecWB(
cmdID: OLECMDID;
cmdexecopt: OLECMDEXECOPT;
var pvaIn: OleVariant;
var pvaOut: OleVariant
); overload;
Ezzel az eljárással különböző parancsokat futtathatunk. Az eljárásnak háromféle változata is van, amelyek csak a paraméterek számában térnek el egymástól:
procedure ExecWB(cmdID: OLECMDID; cmdexecopt: OLECMDEXECOPT); overload;
procedure ExecWB(cmdID: OLECMDID; cmdexecopt: OLECMDEXECOPT; var pvaIn: OleVariant); overload;
procedure ExecWB(cmdID: OLECMDID; cmdexecopt: OLECMDEXECOPT; var pvaIn: OleVariant;
var pvaOut: OleVariant); overload;
Paraméterek
cmdID: OLECMDID
Ebben a paraméterben adhatjuk meg a futtatandó parancs kódját. Minden kódhoz tartozik egy-egy konstans, a nyomtatáshoz és a nyomtatási kép megjelenítéséhez az alábbiak:
- OLECMDID_PRINT: a megnyitott HTML fájl (vagy weboldal) nyomtatása;
- OLECMDID_PRINTPREVIEW: az oldal nyomtatási képének megjelenítése egy külön ablakban.
cmdexecopt: OLECMDEXECOPT
Ebben a paraméterben megadhatjuk, hogy a parancsot felhasználó beavatkozással, vagy anélkül kívánjuk-e végrehajtani. Például nyomtatásnál megadhatjuk, hogy megjelenjen-e a Nyomtatás dialógus ablak. A használható konstansok a következők:
- OLECMDEXECOPT_DODEFAULT: az alapértelmezés szerinti végrehajtás;
- OLECMDEXECOPT_PROMPTUSER: felhasználói beavatkozás szükséges (pl. Nyomtatás dialógus ablakban megadni a szükséges paramétereket, kiválasztani a nyomtatót, stb.)
- OLECMDEXECOPT_DONTPROMPTUSER: nem szükséges felhasználói beavatkozás, az alapértelmezett értékeket használja;
- OLECMDEXECOPT_SHOWHELP: megjeleníti a megadott parancshoz tartozó súgót (ha van), de nem futtatja a parancsot.
var pvaIn: OleVariant
Ebben a paraméterben egy Variant tömböt adhatunk meg, amely az adott parancshoz tartozó paramétereket tartalmazza. Ez a paraméter elhagyható, ha nincsenek ilyen paraméterek.
var pvaOut: OleVariant
Ha a parancsnak van visszatérési értéke, akkor azt ebben a paraméterben kapjuk meg. Ellenkező esetben el is hagyhatjuk.
A megnyitott oldal nyomtatását tehát legegyszerűbben az alábbi parancssorral oldhatjuk meg:
A nyomtatási kép ehhez hasonló módon, de természetesen más parancskód megadásával történhet: