Seite 1 von 1
Druckerkassette (Papierzufuhr) auswählen
Verfasst: Di, 29.05.2012 15:16
von msxport
Hallo,
habe aus verschiedenen Forumseinträgen und mit Hilfe von Dannenhöfer folgendes Makro zusammengestellt:
(AOO 3.4 Calc)
Code: Alles auswählen
Sub Drucken()
Dim oDoc As Object
oDoc = ThisComponent
'Druckerschacht wechseln
Dim oStyleFamilies As Object
Dim oPageStyles As Object
Dim oDefPage As Object
oStyleFamilies = oDoc.StyleFamilies
oPageStyles = oStyleFamilies.getByName("PageStyles")
oDefPage = oPageStyles.getByName("Standard")
oDefPage.PrinterPaperTray = "Kassette 3"
'Auf Rechnungsdrucker wechseln
Dim oMyPrinter As Object
oMyPrinter = oDoc.getprinter
msgbox oMyPrinter(0).value
dim arg(0) as New com.sun.star.beans.PropertyValue
arg(0).name="Name"
arg(0).value="\\Server1\Kyocera FS-4000DN"
oDoc.setPrinter(arg())
oMyPrinter = oDoc.getprinter
msgbox oMyPrinter(0).value
'Ausdrucken
Dim printProp(0) as New com.sun.star.beans.PropertyValue
oDoc.Print(printProp())
End Sub
Das Makro soll das angegebene Papierfach (Druckerkassette) einstellen, den angegebenen Drucker auswählen und dann unter Einhaltung dieser Angaben drucken. Der Drucker wird richtig angewählt. Unter Format/Seite/Seite ist nach Durchlauf des Makros die Papierzufuhr auf "Kassette 3" eingestellt, jedoch wird immer aus der ersten und nicht aus der dritten Kassette gedruckt.
Was mache ich falsch?
MfG
Markus
Re: Druckerkassette (Papierzufuhr) auswählen
Verfasst: Di, 29.05.2012 18:02
von komma4
Wahrscheinlich der Name des Papierfachs falsch...
Du druckst ein Writer-Dokument?
Was stehen unter Format>Seite...>Seite>Papierzufuhr für verfügbare Namen?
Re: Druckerkassette (Papierzufuhr) auswählen
Verfasst: Mi, 30.05.2012 07:51
von msxport
Ich drucke aus Calc.
Unter Format / Seite / Seite / Papierzufuhr steht unter anderem auch "Kassette 3" wie im Makro angegeben. Nach Durchlauf des Makros ist die Papierzufuhr ja auch von "[Aus Druckereinstellungen]" auf "Kassette 3" umgestellt. Das Papier wird jedoch immer aus der ersten Kassette gezogen.
MfG
Markus
Re: Druckerkassette (Papierzufuhr) auswählen
Verfasst: Mi, 30.05.2012 08:11
von Stephan
überprüfe oib überhaupt ein manuelles Umstellen des Papierfachs, und anschließendes Drucken möglich ist. Falls ja erstelle zwei identische SEitenvorlagen, welche sich nur hinsichtlich der Papierfacheinstellung unterscheiden, und weise jeweils die komplette Seitenvorlage im Makro zu.
was überhaupt soll:
Code: Alles auswählen
'Ausdrucken
Dim printProp(0) as New com.sun.star.beans.PropertyValue
oDoc.Print(printProp())
bewirken?
Ich weiß momentan nicht ob das Probleme macht, sinnlos ist es auf jeden Fall, denn es wird ein Array mit einer 'leeren' PropertyValue übergeben. Keine PropertyValue würde man hingegen üblicherweise mit z.B.:
übergeben.
Gruß
Stephan
Re: Druckerkassette (Papierzufuhr) auswählen
Verfasst: Do, 31.05.2012 16:25
von msxport
Hallo,
ich habe unter Format / Seite / Seite / Papierzufuhr manuell auf eine andere Kassette umgestellt und manuell den Druckdialog aufgerufen. Auch hier druckt er nur von der ersten Kassette. Nur bei Einstellung im Druckdialog Eigenschaften / Papier/Qualität / Papierquelle auf z.B. "Kassette 3" wird auch aus Kassette 3 gedruckt. Scheinbar werden die Einstellungen in OpenOffice unter Format / Seite / Seite / Papierzufuhr ignoriert.
Gibt es eine Möglichkeit die Einstellungen im Druckdialog per Makro zu ändern?
MfG
Markus
Re: Druckerkassette (Papierzufuhr) auswählen
Verfasst: Do, 31.05.2012 21:51
von Stephan
Gibt es eine Möglichkeit die Einstellungen im Druckdialog per Makro zu ändern?
Naja, das ist hier nicht so ganz der Kern des Themas.
Erstens weiß ich aus dem Hut garnicht wie man Einstellungen "im Druckdialog" (also doch sichtbar zum Zeitpunkt der Anzeige des Dialogs?) per Makro anpasst, sondern man würde diese Einstellungen eher per Makro direkt setzen ohne den Dialog anzuzeigen.
Wichtiger ist aber das es hier doch garnicht um den eigentlichen OOo-Druckdialog geht denn der UNterdialog der mit KLick auf:
Einstellung im Druckdialog Eigenschaften
aufgerufen wird ist ein Dialog der aus dem Druckertreiber 'resultiert' und der inhaltlich, je nach konkretem Drucker bzw, Treiber, anders aussieht. Ich weiß nicht wie man in diesem Dialog per Makro Einstellungen verstellt.
Es bietet sich aber (zumindest funktioniert das unter Windows) ein anderer Weg an, nämlich denselben Drucker (bzw. dessen Treiber) zweimal zu installieren und beiden Installationen einen anderen DRucker-Namen zuzuweisen. Dann kann man für einen DRucker das Default-Papierfach anders festlegen als für den Anderen und alle sonstigen Einstellungen gleich und nutzt dann per Makro einmal den Einen und einmal den anderen DRucker - das sollte gehen.
das zweimalige Installieren des Druckers/Treibers geht eigentlich ganz normal wie bei einmaliger iNstallation, falls Du bisher die DRuckerinstallation jedoch per Herstellersoftware und nicht im Windows-DRuckerordner gemacht hast mußt Du Dich mal irgendwo im Internet genauer informieren wie man aus dem DRuckerordner heraus einen DRucker installiert.
Hinweise zum späteren Makro sollten sich in der Starbasic-FAQ finden.
Gruß
Stephan
Re: Druckerkassette (Papierzufuhr) auswählen
Verfasst: Fr, 01.06.2012 09:45
von msxport
Hallo,
kann es sein, dass das ignorieren der Einstellung unter Format / Seite / Seite / Papierzufuhr ein Bug von Calc (AOO 3.4) ist? Ich habe die Einstellung für die Papierzufuhr in Writer umgestellt, und hier wird von der gewählten Kassette gedruckt.
MfG
Markus
Re: Druckerkassette (Papierzufuhr) auswählen
Verfasst: Fr, 01.06.2012 09:53
von Stephan
kann es sein, dass das ignorieren der Einstellung unter Format / Seite / Seite / Papierzufuhr ein Bug von Calc (AOO 3.4) ist?
Ja das kann natürlich sein. Es kann in diesem Falle auch sein das bereits eine Fehlermeldung dafür beim AOO-Projekt vorliegt.
Ich habe das nicht geprüft und bin über diese Dinge somit leider nicht im Detail informiert.
Gruß
Stephan