Druckerkassette (Papierzufuhr) auswählen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

msxport
*
Beiträge: 13
Registriert: Mi, 24.08.2011 11:08

Druckerkassette (Papierzufuhr) auswählen

Beitrag 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
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Druckerkassette (Papierzufuhr) auswählen

Beitrag 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?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
msxport
*
Beiträge: 13
Registriert: Mi, 24.08.2011 11:08

Re: Druckerkassette (Papierzufuhr) auswählen

Beitrag 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
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Druckerkassette (Papierzufuhr) auswählen

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

Code: Alles auswählen

'Ausdrucken
oDoc.Print(Array())
übergeben.


Gruß
Stephan
msxport
*
Beiträge: 13
Registriert: Mi, 24.08.2011 11:08

Re: Druckerkassette (Papierzufuhr) auswählen

Beitrag 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
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Druckerkassette (Papierzufuhr) auswählen

Beitrag 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
msxport
*
Beiträge: 13
Registriert: Mi, 24.08.2011 11:08

Re: Druckerkassette (Papierzufuhr) auswählen

Beitrag 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
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Druckerkassette (Papierzufuhr) auswählen

Beitrag 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
Antworten