Zitat von
Wathlon:
Lösung gefunden!
Leider funktioniert diese Lösung bei mir nicht.
doc = nil -> nix passiert
Welche Acrobat Reader Version bzw. welche IE Version verwendest Du ?
Diese Lösung gibt zwar S_OK zurück, aber es gibt keinen DruckDialog, und es druckt auch nicht.
Delphi-Quellcode:
// Quelltext aus Delphi-Source Tipps Sammlung
// [url]http://www.dsdt.info/tipps/?id=171[/url]
// Keine Autoren angegeben
procedure PrintWebBrowser(WB: TWebBrowser);
var
OleCommandTarget: IOleCommandTarget;
Command: TOleCmd;
Success: HResult;
begin
if not Assigned(WB)
then
Exit;
if not Assigned(WB.Document)
then
Exit;
// Referenz auf IOleCommandTarget besorgen
WB.Document.QueryInterface(IOleCommandTarget, OleCommandTarget);
// Prüfen, ob Drucken momentan erlaubt
Command.cmdID:= OLECMDID_PRINT;
if OleCommandTarget.QueryStatus(
Nil, 1, @Command,
Nil) <> S_OK
then
begin
ShowMessage('
Drucken nicht möglich');
Exit;
end;
if (Command.cmdf
and OLECMDF_ENABLED) <> 0
then
begin
// Drucken ausführen
Success:= OleCommandTarget.Exec(
Nil, OLECMDID_PRINT, OLECMDEXECOPT_PROMPTUSER, EmptyParam, EmptyParam);
case Success
of
S_OK: ;
// Alles OK
OLECMDERR_E_CANCELED: ShowMessage('
Abbruch durch User');
else ShowMessage('
Fehler!!!');
end;
end
else
begin
// Drucken momentan nicht erlaubt
ShowMessage('
Drucken nicht möglich');
Exit;
end;
end;