AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Wie kann ich beim Ausrucken von Outlook ContactItems den Drucker auswählen?
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von JustVoodoo · begonnen am 18. Nov 2010 · letzter Beitrag vom 19. Nov 2010
Antwort Antwort
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, 11: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
soulies

Registriert seit: 9. Dez 2005
234 Beiträge
 
#2

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

  Alt 18. Nov 2010, 12:35
hoi,

was passiert denn wenn du die reihenfolge deines Codes dahingehend änderst,
das zu erst der PrinterSetup Dialog erscheint.

Es könnte ja sein das beim aufruf von
oaOutlook := CoOutlookapplication.create; der aktuell eingestellte Drucker gespeichert und verwendet wird ...

wenn jetzt der Dialog kommt kann man zwar den Drucker ändern,
aber im Outlook-Objekt steht halt der alte drin ...

Idee:
Delphi-Quellcode:
procedure TvbCONTACT.ToolButton11Click(Sender: TObject);
var
  oaOutlook : Variant; //OutlookApplication;
  nsOutlookNamespace : Variant; //Namespace;
  ciContact : Variant; //ContactItem;
begin
  if PrinterSetupDialog1.Execute then
  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';

    ciContact.PrintOut;
  end;
end;
cya
  Mit Zitat antworten Zitat
JustVoodoo

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

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

  Alt 19. Nov 2010, 09:15
Hi soulies,

die Umstellung hat leider nichts gebracht. Es wird immer noch auf dem Windowsstandarddrucker gedruckt.

Ich habe noch etwas getestet und zwar kann man auch während des laufenden Delphiprogramms den Std-Drucker ändern und wenn ich auf meinen Toolbutton klicke, wird der neue Drucker ausgewählt. Ein möglicher Workarround wäre also, den Std-Drucker von Windows zu ändern, den Contact auszudrucken, und dann wieder den alten Drucker einstellen. Das würde ich aber nur ungerne machen, möglicherweise gibt es dabei ja auch Probleme mit den Rechten, bzw Druckereinstellungen. Ich weiss ja nicht, ob die Einstellungen wieder auf Standard gesetzt werden, wenn man zwischenzeitlich nen anderen Drucker als Std-Drucker hatte. Könnte ich zwar auch mal testen, aber diesen Workarround werde ich erst nutzen wenn es gar nicht anders geht.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz