Button mit Druckerfunktion

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

Moderator: Moderatoren

Prollo
Beiträge: 5
Registriert: Do, 31.03.2022 10:47

Button mit Druckerfunktion

Beitrag von Prollo »

Moderatorenhinweis (Toxitom): Verschoben in den Bereich Makros!!

Hallo,
ich bekomme es einfach nicht hin , habe gefühlt das ganze Forum schon durch.
Meine Aktivitäten im Makro Bereich sind ewig her und wohl einiges an wissen gelöscht in der Birne

Ich möchte einfach nur ein Butten erstellen, wenn ich den mit der Maus drücke das Stg. P ausgeführt wird
aber auch mit Makro aufzeichnen funktioniert bei mir nichts :shock:

kann mir einer helfen ?

so sieht das beim Aufzeichen aus


sub Drucken
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:Print", "", 0, Array())


end sub


sub Drucken01
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:Print", "", 0, Array())
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Button mit Druckerfunktion

Beitrag von Toxitom »

Hey Prollo,

ich denke, den Button und die Verbindung zum Makro bekommst Du hin?

Dein aufgezeichnetes Makro ist schon so weit OK, allerdings ist der Recorder nicht wirklich immer die "Wahl der Dinge";))

Und manchmal (oft) ist sich der Recorder seiner eigenen Sache nicht sicher und daher kommentiert er seine eigenen Aktionen oft aus.... wie hier auch bei Dir.

Code: Alles auswählen

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:Print", "", 0, Array())
Diese Zeilen rufen die eigentliche Print-Funktion auf - eben wie Strg + P
Lösche einfach mal das "rem" vor dem dispacher.executeDispatch() - und schon sollte es funktionieren :)

Also, die Zeilen sollten dann so aussehen:

Code: Alles auswählen

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Print", "", 0, Array())
Die Unsicherheit basiert darauf, dass das eben nicht immer wirklich funktionieren wird - und auch keine Druckparameter angegeben sind (in der REgel auch nicht nötig).

Probiere es einfach mal aus... wenn es passt, perfekt. UNd Ende;)

Wenn nicht, wird es komplizierter;)

Viele Grüße
Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Prollo
Beiträge: 5
Registriert: Do, 31.03.2022 10:47

Re: Button mit Druckerfunktion

Beitrag von Prollo »

Ja so hat es funktioniert

schon einmal Danke dafür.

Jetzt habe ich aber das nächste Problem
im openoffice Writer funktioniert alles

Aber,

wenn ich meine erstellte Vorlage als ausfüllbare PDF Speicher geht der Button nicht mehr.
Haben Sie eine Idee, woran es liegen könnte

Gruß
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Button mit Druckerfunktion

Beitrag von Toxitom »

Hey Prollo,

in einem PDF-Dokument funktionieren keine LO/AOO Makros!! das geht - gott sei Dank - grundsätzlich nicht. Wäre ja sonst eine unendliche Sicherheitslücke....

Dein Makro wird nur in einer LO/AOO Umgebung funktionieren - gespeichert in einem OpenDokument Format!

Wenn Du Dein Dokument als *.txt, *.rtf, *.doc oder so speicherst, funktionieren Deine Makros auch nicht mehr!

Viele Grüße
Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Prollo
Beiträge: 5
Registriert: Do, 31.03.2022 10:47

Re: Button mit Druckerfunktion

Beitrag von Prollo »

Ach so schade

Gibt es denn eine andere Möglichkeit eine Druckerfunktion in ein ausfüllbares PDF einzufügen ?
oder einen Knopf mit E Mal senden

es haben ja nicht alle die LO/AOO Umgebung auf dem PC

Gruß
Karolus
********
Beiträge: 7431
Registriert: Mo, 02.01.2006 19:48

Re: Button mit Druckerfunktion

Beitrag von Karolus »

Prollo hat geschrieben: Fr, 01.04.2022 12:20 Ach so schade

Gibt es denn eine andere Möglichkeit eine Druckerfunktion in ein ausfüllbares PDF einzufügen ?
oder einen Knopf mit E Mal senden

es haben ja nicht alle die LO/AOO Umgebung auf dem PC
Lieber Prollo
Jedes Programm zum Ansehen einer …pdf bietet die Option die Datei auszudrucken.
Und jedes Email-programm hat einen Auswahldialog zum Anhängen von Dokumenten.
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Hiker
******
Beiträge: 590
Registriert: Mo, 08.09.2014 21:34
Wohnort: Berlin

Re: Button mit Druckerfunktion

Beitrag von Hiker »

Prollo hat geschrieben: Fr, 01.04.2022 12:20 Gibt es denn eine andere Möglichkeit eine Druckerfunktion in ein ausfüllbares PDF einzufügen ?
oder einen Knopf mit E Mal senden
Einerseits gibt es die Möglichkeit mit Javascript zu arbeiten, wobei Du aber auf die Hilfe von LibreOffice verzichten musst. Man könnte aber das Formular in LibreOffice entwerfen, dann die Javascript-Macros mit Scribus zufügen. Es gibt nur keine Garantie, das das funktioniert - z.B. in meiner Firma haben alle pdf-viewer ohne Java-Script als Standard um die von Tom angesprochenen Sicherheitsprobleme zu vermeiden.

Auf meinen Android-Geräten funktioniert Drucken generell anders - da führt ein nicht funktionierender Print-Button dann eher zu laufenden Anfragen bei Dir...

Für email könntest Du einen Hyperlink mit einer mailto:-Adresse setzen. Allerdings erinnere ich mich z.B. dass Thunderbird bei Mailto keine Attachments zulässt, weshalb meine LO-Macros anders arbeiten. Bei Anwendern, die nur Webmail nutzen funtioniert auch das meist nicht, weil keine mail-Konfiguration im Betriebssystem bekannt ist. (Dafür geht das auf dem Smartphone, weil die immer eine Mail-Adresse haben, auch wen der Nutzer sie nicht kennt...)

Mfg, J.
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
Antworten