Das Browser-Kontextmenü wird von den Karten generell unterdrückt. Diesen Effekt kann man auch auf der
Google Maps Seite überprüfen. Dort wird das Kontextmenü des IE's durch ein eigenes ersetzt.
Das Programm muß sich also selbst darum kümmern, die Karte auszudrucken. Dafür gibt es mehrere Möglichkeiten.
Die einfachste - aber auch schlechteste - Methode ist folgender Aufruf:
Delphi-Quellcode:
var
pvaIn, pvaOut: OleVariant;
begin
[...]
WebBrowser1.ExecWB(OLECMDID_PRINT,
OLECMDEXECOPT_PROMPTUSER, //mit Druckerdialog
{OLECMDEXECOPT_DONTPROMPTUSER,} //ohne Druckerdialog
pvaIn,pvaOut);
[...]
end;
Der IE versucht dann, die Karte formatfüllend (in der Regel A4) zu Papier zu bringen - das Ergebnis ist nicht zu gebrauchen.
Besser ist es, einen Screenshot der Karte als Bitmap anzufertigen und diesen anschließend mit dem eigenen Programm auszudrucken.
Druckerkomponenten gibt es reichlich - denkbar ist auch eine Report-Tool.
Wie ein Screenshot angefertigt werden kann, zeigt die Demo
5 - Async Callbacks aus der Beispielsammlung zur Version 1.x des Frameworks. Siehe dazu auch den
Beitrag zum Beispiel 5.