Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Drucker von Duplex auf Einzelseitendruck umstellen

941 views
Skip to first unread message

Carsten

unread,
Feb 13, 2010, 12:57:01 PM2/13/10
to
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

Dr. Friedrich Höglmeier

unread,
Feb 14, 2010, 11:48:08 AM2/14/10
to
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!

Carsten

unread,
Feb 15, 2010, 4:22:01 AM2/15/10
to
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

"Dr. Friedrich Höglmeier" schrieb:

> .
>

Thomas Gahler

unread,
Feb 20, 2010, 4:31:05 PM2/20/10
to
Hallo Carsten
Hallo Friedrich


> Der Makro funktioniert suuuper :-)

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...


> Application.ActivePrinter = "Kyocera FS-1800"
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

> Application.PrintOut
Die .PrintOut-Methode sollte innerhalb eines Makro immer mit dem Argument
"Background:=False" aufgerufen werden.
- .PrintOut Background:=False


--
Thomas Gahler
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows Vista (SP2), Office 2007 (SP2)


Carsten

unread,
Feb 21, 2010, 1:22:01 PM2/21/10
to
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

"Thomas Gahler" schrieb:

> .
>

Thomas Gahler

unread,
Feb 21, 2010, 1:30:49 PM2/21/10
to
Hallo Carsten


> ja, das Drucken dauert noch immer so lange, aber ich dachte, daran kann
> man
> nichts ändern :-)

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.

Carsten

unread,
Feb 24, 2010, 1:17:01 PM2/24/10
to
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

"Thomas Gahler" schrieb:

> .
>

Thomas Gahler

unread,
Feb 25, 2010, 1:07:26 AM2/25/10
to
Hallo Carsten


> Druckt in beiden Varianten gleich (richtig) schnell. Nur wei� ich nicht,

> ob
> ich das von Dir angesprochene ...Background:=False noch brauche!?

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)


Carsten

unread,
Feb 25, 2010, 5:41:01 AM2/25/10
to
Hallo,

> Du zeigst jedoch nicht, dass denn nihct mehr geht. Schade.
Den Satz verstehe ich nicht. Meiner Meinung nach funktioniert ja jetzt
alles...

> Und mit deinem ManualDuplexPrint bearbeitest du ein ursprüngliches Problem
> (Duplex ja /nein nicht). Ich dachte du hättest einen echten Duplexdrucker.
Dachte ich auch: einen Brother HL-5340D.

>Apropos, es gibt auch ein API zum den Duplexer ein-/auszuschalten.

Könntest Du mir sagen, wo ich das herbekomme incl. einer
"Bedienungsanleitung"?

Danke für die geduldige Hilfe,
Carsten

"Thomas Gahler" schrieb:

> Hallo Carsten
>
>
> > Druckt in beiden Varianten gleich (richtig) schnell. Nur weiß ich nicht,

> > ob
> > ich das von Dir angesprochene ...Background:=False noch brauche!?

> 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)
>
>

> .
>

Thomas Gahler

unread,
Feb 25, 2010, 8:21:55 AM2/25/10
to
Hallo Carsten


>> Du zeigst jedoch nicht, dass denn nihct mehr geht. Schade.
> Den Satz verstehe ich nicht. Meiner Meinung nach funktioniert ja jetzt
> alles...

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...

>> Und mit deinem ManualDuplexPrint bearbeitest du ein urspr�ngliches
>> Problem
>> (Duplex ja /nein nicht). Ich dachte du h�ttest einen echten

>> Duplexdrucker.
> Dachte ich auch: einen Brother HL-5340D.

Dann verstehe ich nicht weshalb du an dieser Eigenschaft manipulierst.

In der Hilfe steht
<OnlineHilfe>
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.
</OnlineHilfe>


>>Apropos, es gibt auch ein API zum den Duplexer ein-/auszuschalten.

> K�nntest Du mir sagen, wo ich das herbekomme incl. einer
> "Bedienungsanleitung"?
Zum Beispiel hier...
http://support.microsoft.com/kb/q230743/

0 new messages