Seite 1 von 1

Drucken in schwarz/weiß per Makro

Verfasst: So 15. Mai 2016, 02:01
von scientific
Hi!

Ich such mir die Finger schon wund und die Links, wo in der Dokumentation noch angegeben ist, dass es hier weitergeht zu Grayscale, laufen ins Leere (spricht die Info gibts dort nicht mehr).

Ich kann ich per Makro bei einem Drucker auswählen, ob er in Farbe oder Schwarz/Weiß drucken soll?

Hintergrund:
Ich möchte gerne einen Brief einmal schwarz/weiß und einmal in Farbe ausdrucken. S/W für die Dokumentation, Farbe zum Versand.

Ich kann bei den Druckoptionen "Graustufen", "Farbe" oder "Treibervorgabe" wählen, jedoch finde ich nichts, wie ich das per Makro setzen kann...

lg scientific

Re: Drucken in schwarz/weiß per Makro

Verfasst: Mo 16. Mai 2016, 19:57
von gogo
Das ist nicht ganz so einfach, da ja jeder Drucker einen eigenen Treiber hat.
So weit ich weiss, werden die Druckereinstellungen mit dem letzten Druck im Dokument gespeichert - vllt. bringt es was 2 Berichts-Vorlagen zu haben. Ein anderer Weg wäre den Drucker 2x am System anzumelden und in seinen Eigenschaften 1x Farbe und ein anderes Mal S/W zu wählen.

Re: Drucken in schwarz/weiß per Makro

Verfasst: Mi 18. Mai 2016, 22:16
von scientific
Das klingt jetzt nicht sehr befriedigend...

Ich hab für MS-Office mal eine Lösung gefunden, die ein ziemlich umfangreiches Script erforderte, nur um zwischen schwarz/weiß und farbe umzuschalten... Die funktioniert bei LO natürlich nicht... :)

Naja, vielleicht finde ich ja noch eine Möglichkeit...

lg scientific

Re: Drucken in schwarz/weiß per Makro

Verfasst: Do 19. Mai 2016, 07:44
von gogo
Vielleicht geht's so, Du musst Dich da aber selbst durchhangeln:

Das Objekt ThisComponent.Printer (eines Writer Dokuments) enthält die Druckereinstellungen

Code: Alles auswählen

          Tabelle : T( 0 To 7 ) As object  
 
(0)       | Structure : com.sun.star.beans.PropertyValue --> Name                        "hp_hp_LaserJet_4345_mfp" 
(1)       | Structure : com.sun.star.beans.PropertyValue --> PaperOrientation            0 
(2)       | Structure : com.sun.star.beans.PropertyValue --> PaperFormat                 1 
(3)       | Structure : com.sun.star.beans.PropertyValue --> PaperSize 
(4)       | Structure : com.sun.star.beans.PropertyValue --> IsBusy                      False 
(5)       | Structure : com.sun.star.beans.PropertyValue --> CanSetPaperOrientation      True 
(6)       | Structure : com.sun.star.beans.PropertyValue --> CanSetPaperFormat           False 
(7)       | Structure : com.sun.star.beans.PropertyValue --> CanSetPaperSize             True 
... und zwar als com.sun.star.beans.PropertyValue (s) wie etwa:

Code: Alles auswählen

Handle                    long                                    0   
Name                      string                      "PaperFormat"   
State                     integer                                 0   
Value                     variant                                 1
Bei Farbdruckern gibt's da evtl. eine entsprechende Einstellung, die man vor den Druck per Makro ändern kann, oder man übergibt diese eine Property mit dem ThisComponent.print()-Befehl als Argument - da muss man bloß wissen wie sie heißt ;)

Code: Alles auswählen

Dim printProp(0) as New com.sun.star.beans.PropertyValue
printProp(0).Name = "Pages"
printProp(0).Value = "1"
ThisComponent.print(printProp())
Am besten wird es sein einmal irgendein Beispieldokument zu erstellen und dieses explizit in Farbe bzw. in S/W auszudrucken und nach dem Speichern die ThisComponent.Printer-Eigenschaften anzusehen...

Re: Drucken in schwarz/weiß per Makro

Verfasst: Do 19. Mai 2016, 15:10
von scientific
Diese Printer-Properties habe ich schon gefunden gehabt, aber bin dort nicht wirklich weitergekommen.
Google spuckt noch das eine oder andere Suchergebnis aus, wo man Greyscale auswählen könnte... aber die Seiten der Doku von Openoffice und Libreoffice geben dazu nix mehr her...

Ich hab jetzt noch einmal hier in der Arbeit die verschiedenen Print-Optionen unseres Drucker-Pools durchgeschaut... das scheint echt nicht trivial zu sein... :-(

lg scientific