|
|
Drucker von Duplex auf Einzelseitendruck umstellen
Carsten posted on Saturday, February 13, 2010 12:57 PM
Hallo,
ich habe einen duplexf??higen Drucker (Brother HL-5340D), mit dem ich aber
bei Einzelseiten die Duplexeinheit nicht belasten will.
Ich habe daf??r folgenden Makro:
Sub EinzelSeitenDrucken()
'
ActivePrinter = "Brother HL-5340D Simplex"
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="",
PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True,
PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
ActivePrinter = "Brother HL-5340D Duplex"
End Sub
Das funktioniert, hat aber einen Haken: der Computer (ein Core i5 750, 2MB
RAM)braucht eeeewig bis die Seite gedruckt wird. Benutze ich den
Duplex-(Standard)-Drucker beginnt der Druck sofort. Kann man da etwas ??ndern?
F??r Vorschl??ge bin ich wie immer empf??nglich :-)
BS: WIN XP mit allen Updates und SPs
MfG Carsten |
|
|
|
|
Hallo Carsten,das ist relativ einfach zu erreichen, wenn f??
Dr. Friedrich Höglmeier replied to Carsten on Sunday, February 14, 2010 11:48 AM
Hallo Carsten,
das ist relativ einfach zu erreichen, wenn f??r jeden Computer, der auf
diesen Drucker zugreifen soll, der Drucker(treiber) zweimal
installiert wird: Einmal mit der Einstellung Duplexdruck (in meinem
Beispiel Kyocera FS-1800 D) und einmal f??r einseitigen Druck (in
meinem Beispiel Kyocera FS-1800), wobei hier der Duplexdruck
ausgeschaltet wird.
Dann kannst Du entweder zwei Icons in die Symbolleiste aufnehmen, die
dem jeweiligen Druckertreiber zugeordnet sind oder ein Icon, dem das
folgende VBA-Makro zugeordnet ist:
Sub DruckKyocera()
'
' Druckt einseitig auf FS-1800, mehrseitig auf FS-1800 D
'
' vorher eingestellten Drucker speichern:
Dim strPrinterOld As String
strPrinterOld = Application.ActivePrinter
' Wahl des Druckertreibers je nach Seitenzahl:
If ActiveDocument.ComputeStatistics(wdStatisticPages) = 1 Then
Application.ActivePrinter = "Kyocera FS-1800"
Else
Application.ActivePrinter = "Kyocera FS-1800 D"
End If
' Ausdruck (mit einer Vielzahl von optionalen Parametern)
Application.PrintOut
' Drucker wieder zur??cksetzen
Application.ActivePrinter = strPrinterOld
End Sub
Makro einfach kopieren und die Druckernamen entsprechend den
Druckernamen in der Systemsteuerung w??hlen.
--
Gru??
hoe = Friedrich H??glmeier
Etwaige Tippfehler d??rfen ignoriert werden! |
|
Hallo Friedrich!
Carsten replied to Dr. Friedrich Höglmeier on Monday, February 15, 2010 4:22 AM
Hallo Friedrich!
Der Makro funktioniert suuuper :-) damit habe ich in der bei mir ohnehin
??berf??llten Symbolleiste auch noch ein bisschen mehr Platz! Danke f??r die
schnelle Antwort!
MfG Carsten |
|
Hallo CarstenHallo FriedrichIch frage mich ob deine Sorge "[...
Thomas Gahler replied to Carsten on Saturday, February 20, 2010 4:31 PM
Hallo Carsten
Hallo Friedrich
Ich frage mich ob deine Sorge "[...] braucht eeeewig bis die Seite gedruckt
wird [...]" wirklich gel??st ist, denn daqs Makro macht das Gleiche wie dein
Makro.
Egal, trotzdem zwei Hinweise...
Das ??ndern des Druckers w??rde ich nicht so machen, denn damit wird der
Standarddrucker ge??ndert und das hat Auswirkungen auf alle anderen laufenden
Programme. Darum hier lesen
- Changing the selected (current) printer in Word without changing the
system default printer
http://word.mvps.org/faqs/macrosvba/ChangeCurPrinter.htm
Die .PrintOut-Methode sollte innerhalb eines Makro immer mit dem Argument
- .PrintOut Background:=False
--
Thomas Gahler
Co-Autor von ??Microsoft Word-Programmierung.
Das Handbuch?? (MS Press)
- Windows Vista (SP2), Office 2007 (SP2) |
|
Hallo Thomas,ja, das Drucken dauert noch immer so lange, aber ich dachte,
Carsten replied to Thomas Gahler on Sunday, February 21, 2010 1:22 PM
Hallo Thomas,
ja, das Drucken dauert noch immer so lange, aber ich dachte, daran kann man
nichts ??ndern :-)
Ich werde Deinen Hinweisen mal nachgehen bzw. lesen und mich wieder melden.
Ein sch??nes Rest-Wochenende!
Carsten |
|
Hallo CarstenIch w??
Thomas Gahler replied to Carsten on Sunday, February 21, 2010 1:30 PM
Hallo Carsten
Ich w??rde mal die Unterschiede zwischen deinen "beiden" Druckern suchen.
Eigentlich sollte nur die Einstellung 'Duplexer aktiv' unterschiedlich sein.
Vielleicht findest du ja auf diesem Wege dein Bremser.
Oder desaktiviere bei deinem "Brother HL-5340D Duplex" mal den Duplexer,
wird er jetzt langsam? Wohl kaum, oder.
--
Thomas Gahler
Co-Autor von ??Microsoft Word-Programmierung.
Das Handbuch?? (MS Press)
- Windows Vista (SP2), Office 2007 (SP2) |
|
Hallo Thomas,ich habe mal ein bisschen herumprobiert und folgendes ist
Carsten replied to Thomas Gahler on Wednesday, February 24, 2010 1:17 PM
Hallo Thomas,
ich habe mal ein bisschen herumprobiert und folgendes ist dabei
herausgekommen:
Sub DruckMakro()
' Drucken per Makro automatisch Simplex oder Duplex
' Einstellen der Druckereinstellungen je nach Seitenzahl:
If ActiveDocument.ComputeStatistics(wdStatisticPages) = 1 Then
Application.PrintOut ManualDuplexPrint:=False
Else
Application.PrintOut ManualDuplexPrint:=True
End If
End Sub
Druckt in beiden Varianten gleich (richtig) schnell. Nur wei?? ich nicht, ob
ich das von Dir angesprochene ...Background:=False noch brauche!? Das
funktionierte n??mlich nicht hinter den "ManualDuplexPrint"s.
MfG Carsten |
|
Hallo CarstenWenn das dein ganzes makro ist, dann benötiigst du 'Background'
Thomas Gahler replied to Carsten on Thursday, February 25, 2010 1:07 AM
Hallo Carsten
Wenn das dein ganzes makro ist, dann benötiigst du 'Background' nicht
unbedingt. ich empfehle den Einsatz grundsätzlich, denn selten sind die
Makros so kurz und wenn dann paralell gedruckt wird anstelle von
sequenziell, dann werden fehler gesucht, die eigentlich keine sind.
(bestes Beispiel ist immer drucken in einer Schleife mit nummerierten
Dukumenten ab mit Background:=true werden diese auf dem Drucker der Reihe
nach ausgegeben, mit Background:=false da macht der Spooler was er will,
weil das Betriebssystem einfach viele Druckausfträge ausgeben muss)
Du zeigst jedoch nicht, dass denn nihct mehr geht. Schade.
Und mit deinem ManualDuplexPrint bearbeitest du ein ursprüngliches Problem
(Duplex ja /nein nicht). Ich dachte du hättest einen echten Duplexdrucker.
Apropos, es gibt auch ein API zum den Duplexer ein-/auszuschalten.
--
Thomas Gahler
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)
- Windows XP (SP3), Office XP (SP3) |
|
Hallo,Den Satz verstehe ich nicht.
Carsten replied to Thomas Gahler on Thursday, February 25, 2010 5:41 AM
Hallo,
Den Satz verstehe ich nicht. Meiner Meinung nach funktioniert ja jetzt
alles...
Dachte ich auch: einen Brother HL-5340D.
K??nntest Du mir sagen, wo ich das herbekomme incl. einer
Danke f??r die geduldige Hilfe,
Carsten |
|
Hallo CarstenDu hast geschrieben «[...] Background:=False noch brauche!?
Thomas Gahler replied to Carsten on Thursday, February 25, 2010 8:21 AM
Hallo Carsten
Du hast geschrieben «[...] Background:=False noch brauche!? Das
funktionierte nämlich nicht hinter den "ManualDuplexPrint"s. [...]» Du hast
aber nicht geschrieben zu welchem Fehler es kommt oder was nicht mehr
funktioniert. Das meine ich...
Dann verstehe ich nicht weshalb du an dieser Eigenschaft manipulierst.
In der Hilfe steht
ManualDuplexPrint Variant optional. True, um ein beidseitig bedrucktes
Dokument auf einem Drucker ohne Kit für doppelseitiges Drucken zu drucken.
Wenn dieses Argument den WertTrue hat, werden die Eigenschaften
PrintBackground und PrintReverse ignoriert. Steuern Sie die Ausgabe während
des manuellen doppelseitigen Druckens mithilfe der Eigenschaften
PrintOddPagesInAscendingOrder und PrintEvenPagesInAscendingOrder. Je nach
ausgewählter bzw. installierter Sprachunterstützung, wie z. B. Deutsch
(Standard), ist dieses Argument möglicherweise nicht verfügbar.
Zum Beispiel hier...
http://support.microsoft.com/kb/q230743/
--
Thomas Gahler
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)
- Windows XP (SP3), Office XP (SP3) |
|
|
|
|
Didn't Find The Answer You Were Looking For? |
| EggHeadCafe has experts online right now that may know the answer to your question. We pay them a bonus for answering as many questions as they can. So, why not help them and yourself by becoming a member (free) and ask them your question right now? |
| Create Account & Ask Question In Live Forum |
|
|
|
|
|
|
|
|