🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Markos bei Kommandozeile
Markos bei Kommandozeile
So. Neu im Forum und gleich eine Frage:
Ich versuche den Ausdruck von calc Tabellen von der Kommandozeile hinzubekommen. Soweit kein Problem:
scalc -pt Druckername test.ods tut was es soll. ABER: die Anzeigemakros werden nicht ausgeführt, d.h. in allen Zellen, wo ich ein Makro hinterlegt habe erscheint auf dem
Ausdruck nur '#Wert'.
Weiss jemand, wie man LO dazu bewegen kann, die Makros vor dem Ausdruck auszuführen ?
Danke im Vorraus
Mathias
Ich versuche den Ausdruck von calc Tabellen von der Kommandozeile hinzubekommen. Soweit kein Problem:
scalc -pt Druckername test.ods tut was es soll. ABER: die Anzeigemakros werden nicht ausgeführt, d.h. in allen Zellen, wo ich ein Makro hinterlegt habe erscheint auf dem
Ausdruck nur '#Wert'.
Weiss jemand, wie man LO dazu bewegen kann, die Makros vor dem Ausdruck auszuführen ?
Danke im Vorraus
Mathias
Re: Markos bei Kommandozeile
Hallo Hecky
Du kannst die Makros vorher von der Shell aus ausführen.
Wie das geht, findest du hier:
http://www.starbasicfaq.de/KannmaneinMa ... ml#Zweig57
Gruß Frieder
Du kannst die Makros vorher von der Shell aus ausführen.
Wie das geht, findest du hier:
http://www.starbasicfaq.de/KannmaneinMa ... ml#Zweig57
Gruß Frieder
Re: Markos bei Kommandozeile
Hallo Frieder.
Danke für die schnelle Antwort.
Leider möchte ich nicht ein einzelnes Makro ausführen, sondern habe mehrere Zellen, in denen über ein Makro die Anzuzeigenden Werte berechnet werden. Wenn man das Dokument öffnet und dann ausdruckt, klappt das auch problemlos.
Von der Kommandozeile mit direktem Druck allerdings nicht ...
Hast Du da eine Idee?
Gruß
Hecky
Danke für die schnelle Antwort.
Leider möchte ich nicht ein einzelnes Makro ausführen, sondern habe mehrere Zellen, in denen über ein Makro die Anzuzeigenden Werte berechnet werden. Wenn man das Dokument öffnet und dann ausdruckt, klappt das auch problemlos.
Von der Kommandozeile mit direktem Druck allerdings nicht ...
Hast Du da eine Idee?
Gruß
Hecky
Re: Markos bei Kommandozeile
Hallo Hecky
Du könntest ein Makro von der Kommandozeile aus starten, dass das Dokument versteckt öffnet, Druckt, und dann wieder schließt.(mit erzwungenem Makro-Ausführungs-Modus)
dem Makro kann z.B. auch der Pfad des zu druckenden Dokuments als Parameter von der Shell aus übergeben werden.
Dadurch kann das Makro für alle Dokumente verwendet werden.
Wenn du dazu Hilfe brauchst, kann ich dir gerne morgen ein solches Makro schreiben.
Gruß Frieder
Du könntest ein Makro von der Kommandozeile aus starten, dass das Dokument versteckt öffnet, Druckt, und dann wieder schließt.(mit erzwungenem Makro-Ausführungs-Modus)
dem Makro kann z.B. auch der Pfad des zu druckenden Dokuments als Parameter von der Shell aus übergeben werden.
Dadurch kann das Makro für alle Dokumente verwendet werden.
Wenn du dazu Hilfe brauchst, kann ich dir gerne morgen ein solches Makro schreiben.
Gruß Frieder
Re: Markos bei Kommandozeile
Hallo Hecky
Ich habe gerade dein Makro fertig.
Es benutzt einfach den Standard-Drucker.
Wenn du einen anderen Drucker nehmen willst, so kannst du natürlich vorher einen anderen Drucker in dem Makro festlegen.
Siehe : http://www.starbasicfaq.de/Drucken.html#Zweig134
Hier ein Beispiel-Aufruf aus der Windows Shell: (musst du noch anpassen)
I:\Program Files (x86)\LibreOffice 3\program>soffice.exe macro:///standard.module3.print_Document("C:\Users\Nansen\Documents\Unbenannt3.ods")
(Du solltest den Code in ein Module in der Bibliothek "Standard" unter "Meine Makros" kopieren, damit er lauffähig ist.)
Bei Größeren Dokumenten kann es sein, dass die Wartezeit von jeweils einer Sekunde nach Laden und Drucken zu kurz ist.
das merkst du daran, wenn es einfach nicht gedruckt wird.
Ich habe das Makro mit einer Calc-Tabelle ausprobiert,
in der eine Makro-Funktion das aktuelle Datum mit Zeit in eine Celle schreibt,
dort funktioniert alles einwandfrei.
Falls deine Makro-Funktionen länger zum laufen brauchen,
solltest du die Wartezeit nach dem Laden großzügig so bemessen,
dass alle Berechnungen vor dem Drucken fertig sind.
Hier der Code:
ich wünsche dir viel Erfolg.
Gruß Frieder
Ich habe gerade dein Makro fertig.
Es benutzt einfach den Standard-Drucker.
Wenn du einen anderen Drucker nehmen willst, so kannst du natürlich vorher einen anderen Drucker in dem Makro festlegen.
Siehe : http://www.starbasicfaq.de/Drucken.html#Zweig134
Hier ein Beispiel-Aufruf aus der Windows Shell: (musst du noch anpassen)
I:\Program Files (x86)\LibreOffice 3\program>soffice.exe macro:///standard.module3.print_Document("C:\Users\Nansen\Documents\Unbenannt3.ods")
(Du solltest den Code in ein Module in der Bibliothek "Standard" unter "Meine Makros" kopieren, damit er lauffähig ist.)
Bei Größeren Dokumenten kann es sein, dass die Wartezeit von jeweils einer Sekunde nach Laden und Drucken zu kurz ist.
das merkst du daran, wenn es einfach nicht gedruckt wird.
Ich habe das Makro mit einer Calc-Tabelle ausprobiert,
in der eine Makro-Funktion das aktuelle Datum mit Zeit in eine Celle schreibt,
dort funktioniert alles einwandfrei.
Falls deine Makro-Funktionen länger zum laufen brauchen,
solltest du die Wartezeit nach dem Laden großzügig so bemessen,
dass alle Berechnungen vor dem Drucken fertig sind.
Hier der Code:
Code: Alles auswählen
Sub print_Document(sPath As String)
dim sURL As String
Dim oPrintDocument As Object
dim args() as new com.sun.star.beans.PropertyValue
Dim myProp(1) as new com.sun.star.beans.PropertyValue
'Richtiges format umwandeln
On error goto errorhandler
sURL=converttourl(sPath)
myProp(0).name="MacroExecutionMode"
myProp(0).value = 4 'Makros ohne nachfragen ausführen
myProp(1).name = "Hidden"
myProp(1).value = True 'Versteckt öffnen
oPrintDocument = StarDesktop.loadComponentFromURL(sURL,"_blank",0,myProp())
'1 Sekunde warten bis geöffnet(bei größeren Dockumenten eventuell längeer einstellen)
Wait 1000
'Drucken
oPrintDocument.Print(args())
'1 Sekunde warten bis gedruckt(bei größeren Dockumenten eventuell längeer einstellen)
Wait 1000
'Schließen
oPrintDocument.close( True )
MsgBox "Das Dokument " & Chr(10) & sPath & Chr(10) & "Wurde erfolgreich gedruckt.",64,"ERFOLG"
Exit Sub
errorhandler:
MsgBox "Es ist ein Fehler aufgetreten.",48,"FEHLER"
end Sub
ich wünsche dir viel Erfolg.
Gruß Frieder
Re: Markos bei Kommandozeile
Hallo Frieder.
Bin leider erst heute dazu gekommen, Dein Makro auszuprobieren.
Klappt einwandfrei!
Vielen Dank !
Hecky.
Bin leider erst heute dazu gekommen, Dein Makro auszuprobieren.
Klappt einwandfrei!
Vielen Dank !
Hecky.
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.