Einzelnen Beitrag anzeigen

JustVoodoo

Registriert seit: 18. Nov 2010
2 Beiträge
 
#1

Wie kann ich beim Ausrucken von Outlook ContactItems den Drucker auswählen?

  Alt 18. Nov 2010, 10:58
Hi,

ich habe ein kleines Problem und nach langer Suche noch keine Lösung gefunden.

Ich will ein frisch erstelltes (Outlook) ContactItem ausdrucken. Das geht auch problemlos, nur wird immer auf dem Standartdrucker gedruckt.

Hier dann noch ein paar Infos zum Background.

Windows 7 (64 bit)
Delphi 2007

Hier dann noch die renevanten Codeteile:

Delphi-Quellcode:
procedure TvbCONTACT.ToolButton11Click(Sender: TObject);
var
  oaOutlook : Variant; //OutlookApplication;
  nsOutlookNamespace : Variant; //Namespace;
  ciContact : Variant; //ContactItem;
begin
  // Login
  oaOutlook := CoOutlookapplication.create;
  nsOutlookNamespace := oaOutlook.getnamespace('MAPI');
  nsOutlookNamespace.Logon('', '', False, True);

  // Create ContactItem and fill contact information
  ciContact := oaOutlook.CreateItem(olContactItem);
  ciContact.FullName := 'TestName';
  
if PrinterSetupDialog1.Execute then
    ciContact.PrintOut;

end;

Ich habe häufig die Typen der Variablen oaOutlook, ciContact, etc. geändert um andere Lösungen zu testen. Ursprünglich habe ich die Typen OutlookApplication, Namespace und ContactItem benutzt.

Meine bisherigen Lösungsversuche:

1) printDialogSetup1.execute
Dialog wird angezeigt, ich kann alles einstellen, aber Contact.PrintOut nutzt diese Einstellungen nicht. Hab gelesen, dass printDialogSetup nur für die Delphianwendung gilt und nicht für die meisten OLEs.

2) Hab bei einem Beispiel für Excel gelesen dass man mit "Excel.Application.ActivePrinter" (Excel ist dabei vom Typ Variant gewesen) den Drucker einstellen kann. Wenn ich allerdings mein Outlook als Variant benutze, dann bekomme ich keine Methode .Application.ActivePrinter, sondern nur eine Liste von ca 10 Templates (wie z.B. '(*', '{', 'check', ... , 'summary' )

Die anderen Lösungensversuche fallen mir gerade nicht mehr ein

Nochmal kurz zum schluss. Ziel ist es, das ContactItem über einem beliebigen Drucker zu drucken.
  Mit Zitat antworten Zitat