WRITER: "Abschrift drucken"
Moderator: Moderatoren
WRITER: "Abschrift drucken"
Hallo Forum,
folgendes Ziel: es soll ein button in OO 4 erstellt werden, über den auf einem Schriftstück im Briefkopf oben rechts ein Rahmen mit dem Inhalt "Abschrift" gedruckt wird. Der Rahmen nebst Inhalt soll also nicht zum Dokument gespeichert werden, sondern nur beim Ausdruck nach Drücken des "Abschriften-buttons".
Am besten wäre es, wenn über einen button "Abschriftendruck" zB ein Original und anschließend auch ein Ausdruck mit "Abschrift" ausgedruckt würde (Hintergrund: das Original des Ausdrucks soll anschließend per Brief verschickt werden, die Abschrift ist für die Akte).
Meine Kenntnisse bzgl Makros, verstecktem Text ua sind leider sehr rudimentär und haben mich auch nach längeren Versuchen nicht zum Erfolg geführt.
Könnte mir vielleicht jemand helfen? Danke schon mal.
Moderation,4: verschoben in MAKROS (und allgem. Programmierung)-Unterbereich, wo alle Makro-Fragen hin gehören; Betreff angepasst
folgendes Ziel: es soll ein button in OO 4 erstellt werden, über den auf einem Schriftstück im Briefkopf oben rechts ein Rahmen mit dem Inhalt "Abschrift" gedruckt wird. Der Rahmen nebst Inhalt soll also nicht zum Dokument gespeichert werden, sondern nur beim Ausdruck nach Drücken des "Abschriften-buttons".
Am besten wäre es, wenn über einen button "Abschriftendruck" zB ein Original und anschließend auch ein Ausdruck mit "Abschrift" ausgedruckt würde (Hintergrund: das Original des Ausdrucks soll anschließend per Brief verschickt werden, die Abschrift ist für die Akte).
Meine Kenntnisse bzgl Makros, verstecktem Text ua sind leider sehr rudimentär und haben mich auch nach längeren Versuchen nicht zum Erfolg geführt.
Könnte mir vielleicht jemand helfen? Danke schon mal.
Moderation,4: verschoben in MAKROS (und allgem. Programmierung)-Unterbereich, wo alle Makro-Fragen hin gehören; Betreff angepasst
Re: WRITER: "Abschrift drucken"
Vielleicht dann wenn Du ein Beispieldokument zur Verfügung stellst, woraus ersichtlich ist wie das Ganze genau aussehen soll.Könnte mir vielleicht jemand helfen?
Gruß
Stephan
Re: WRITER: "Abschrift drucken"
Ich habe mal kurz einen Briefkopf nachgestellt und angehängt.
Der Rahmen mit "Abschrift" (oben rechts) soll - wie gesagt - nur bei klick auf einen vorher selbst erstellten button in der Menüleiste gedruckt und nicht zum Originaldokument gespeichert werden.
Optimal wäre es, wenn man einen Druckdialog erstellen könnte, der auch zB die Auswahl von Original, beglaubigter Abschrift und Abschrift für den Druck zulässt.
Der Rahmen mit "Abschrift" (oben rechts) soll - wie gesagt - nur bei klick auf einen vorher selbst erstellten button in der Menüleiste gedruckt und nicht zum Originaldokument gespeichert werden.
Optimal wäre es, wenn man einen Druckdialog erstellen könnte, der auch zB die Auswahl von Original, beglaubigter Abschrift und Abschrift für den Druck zulässt.
- Dateianhänge
-
- Briefkopf_test.odt
- (8.93 KiB) 108-mal heruntergeladen
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: WRITER: "Abschrift drucken"
Ist (eigentlich) ganz einfach
Du legst eine RAHMENVORLAGE in der Vorlage des Dokuments an, namens: _ABSCHRIFT
Die gestaltest Du so, wie sie aussehen soll (Grösse, Position, ggfs. Rahmendicke, Farben, etc.)
Dann erzeugst Du eine Symbolleiste (in der Vorlage!), mit einer Schaltfläche, die auf das Makro (in der Vorlage!, STANDARD - Bibliothek!) verweist.
Code: Alles auswählen
SUB de66021
' 20150713
' Erzeugen eines Textrahmens mit Inhalt "ABSCHRIFT"
' Drucken des Dokuments, dann verwerfen der Änderungen
dok = ThisComponent
' Drucken des Originals
dok.print(Array())
' speichern (für "letztes Druckdatum")
dok.store()
' Rahmen
frame = dok.createInstance("com.sun.star.text.TextFrame")
' interner Name
frame.setName("Abschrift")
' Übernahme eines Stils aus den Rahmen-Vorlagen des Dokuments/der Vorlage
'frame.setPropertyValue("FrameStyleName","_ABSCHRIFT")
' Verankern an der Seite
frame.AnchorType = com.sun.star.text.TextContentAnchorType.AT_PAGE
frame.attach(dok.CurrentController.ViewCursor)
' schreiben des Inhalts
cursor = frame.createTextCursor()
frame.insertString(cursor, "Abschrift!", True)
' Drucken des Dokuments
dok.print(Array())
' Verwerfen der Änderungen
dok.dispose()
END SUB
Die gestaltest Du so, wie sie aussehen soll (Grösse, Position, ggfs. Rahmendicke, Farben, etc.)
Dann erzeugst Du eine Symbolleiste (in der Vorlage!), mit einer Schaltfläche, die auf das Makro (in der Vorlage!, STANDARD - Bibliothek!) verweist.
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)
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)
Re: WRITER: "Abschrift drucken"
Vorweg: SUPER, dass Du mir so schnell hilfst !
Ich bin allerdings offensichtlich ein Textverarbeitungs-DAU, wir haben erst vor kurzem von Word auf OO umgestellt und es lüppt deswegen nicht bzw. ich stelle mich zu blöd an
Der button ist jedenfalls da, gedruckt wird aber nichts.
Was ich gemacht habe:
Extras > Makros > Makros verwalten > OO Basic. Unter "Makros aus": meine Vorlage ausgewählt > Neu > im Editor Dein Skript eingefügt.
Dann klick auf Symbolleisten anpassen > neue Symbolleiste erstellt (Name: Abschriftendruck, gespeichert in: der geöffneten Vorlage).
Symbolleisteninhalt hinzufügen > Bereich: OO Makros > meine geöffnete Vorlage ausgewählt > dort: Abschriftendruck > hinzufügen > alles bestätigt.
Klicke ich nun auf "Abschriftendruck", passiert nichts.
Ich bin allerdings offensichtlich ein Textverarbeitungs-DAU, wir haben erst vor kurzem von Word auf OO umgestellt und es lüppt deswegen nicht bzw. ich stelle mich zu blöd an

Der button ist jedenfalls da, gedruckt wird aber nichts.
Habe ich.Du legst eine RAHMENVORLAGE in der Vorlage des Dokuments an, namens: _ABSCHRIFT
Die gestaltest Du so, wie sie aussehen soll (Grösse, Position, ggfs. Rahmendicke, Farben, etc.)
Das begreife ich offensichtlich nicht richtig.Dann erzeugst Du eine Symbolleiste (in der Vorlage!), mit einer Schaltfläche, die auf das Makro (in der Vorlage!, STANDARD - Bibliothek!) verweist.
Was ich gemacht habe:
Extras > Makros > Makros verwalten > OO Basic. Unter "Makros aus": meine Vorlage ausgewählt > Neu > im Editor Dein Skript eingefügt.
Dann klick auf Symbolleisten anpassen > neue Symbolleiste erstellt (Name: Abschriftendruck, gespeichert in: der geöffneten Vorlage).
Symbolleisteninhalt hinzufügen > Bereich: OO Makros > meine geöffnete Vorlage ausgewählt > dort: Abschriftendruck > hinzufügen > alles bestätigt.
Klicke ich nun auf "Abschriftendruck", passiert nichts.
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: WRITER: "Abschrift drucken"
Füge als vorletzte Zeile mal ein WAIT(2000) ein - das erzeugt eine Wartezeit von 2 Sekunden, damit der Druckauftrag erfolgreich gesendet werden kann.
Dann prüfe, ob in Deiner Vorlage ein Standarddrucker konfiguriert ist.
Ansonsten hast Du alles rictig gemacht, hier funktioniert das Makro so wie es soll.
Dann prüfe, ob in Deiner Vorlage ein Standarddrucker konfiguriert ist.
Ansonsten hast Du alles rictig gemacht, hier funktioniert das Makro so wie es soll.
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)
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)
Re: WRITER: "Abschrift drucken"
Hm, irgendwas scheint hier bei mir nicht zu stimmen.
Nun stürzt Openoffice (unter Mint 17.2) beim Ausführen des Makros mit einem Ausnahmefehler ab: "OpenOffice Fehler. com.sun.star.uno.RuntimeExecption".
Bin gerade etwas ratlos...
P.S.: auch unter Windows 7 stürzt OO mit einem "fatal error" nach Ausführen des Makros ab.
Nun stürzt Openoffice (unter Mint 17.2) beim Ausführen des Makros mit einem Ausnahmefehler ab: "OpenOffice Fehler. com.sun.star.uno.RuntimeExecption".
Bin gerade etwas ratlos...
P.S.: auch unter Windows 7 stürzt OO mit einem "fatal error" nach Ausführen des Makros ab.
Re: WRITER: "Abschrift drucken"
Nun wurde zumindest kurzzeitig unter Windows die genaue Fehlermeldung angezeigt:
- Dateianhänge
-
- Unbenannt.jpg (138.67 KiB) 5246 mal betrachtet
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: WRITER: "Abschrift drucken"
Wie oben schon geschrieben:
einbauen. Das Zusammenstellen und Absenden des Druckauftrages braucht einige Zeit - zu dem Fehler kommt es dann, wenn zu schnell gespeichert / geschlossen wird.
Ggfs. mehr Sekunden Zeit geben!
Code: Alles auswählen
WAIT(2000) '2 sekunden Wartezeit
Ggfs. mehr Sekunden Zeit geben!
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)
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)
Re: WRITER: "Abschrift drucken"
Habe nun die wait-time auf 10000 gesetzt: trotzdem schießt das Makro OO nach dem Ausführen sofort ab (auf einem Windows- und 2 Mint-PCs getestet). 

Re: WRITER: "Abschrift drucken"
Zeigt die Fehlermeldung in meinem Post viewtopic.php?f=18&t=66021&p=257165#p257156 nicht, dass im Makro unter "doc.store()" irgendwas falsch ist?
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: WRITER: "Abschrift drucken"
Nein, es zeigt (i.d.R.), dass beim Speichern was schief gelaufen ist.
Das Dokument wurde bereits einmal gespeichert (d.h.: es hat einen Dateinamen - nicht "Unbenannt 1")?
Irgendwelche Netzwerk-Laufwerke beteiligt?
Das Dokument wurde bereits einmal gespeichert (d.h.: es hat einen Dateinamen - nicht "Unbenannt 1")?
Irgendwelche Netzwerk-Laufwerke beteiligt?
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)
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)
Re: WRITER: "Abschrift drucken"
jakomma4 hat geschrieben: Das Dokument wurde bereits einmal gespeichert (d.h.: es hat einen Dateinamen - nicht "Unbenannt 1")?
neinkomma4 hat geschrieben:
Irgendwelche Netzwerk-Laufwerke beteiligt?
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: WRITER: "Abschrift drucken"
dann versuchen wir mal:
und PRO DRUCKAUFTRAG dann die Zeile
Das sollte auf die Rückmeldung warten, dass der Druckauftrag angenommen wurde. Nun sollte einem Speichern keine Exception mehr im Weg stehen.
Hilft das?
Code: Alles auswählen
DIM PrintOpts(0) AS NEW com.sun.star.beans.PropertyValue
PrintOpts(0).Name = "Wait"
PrintOpts(0).Value = True
Code: Alles auswählen
dok.print(PrintOpts)
Hilft das?
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)
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)
Re: WRITER: "Abschrift drucken"
Leider nein.
Deine Vorschläge sollte ich - nehme ich an - am Ende des Skriptes einfügen, richtig?
Gibt es eigentlich auch ein debug-logging für OO? Im syslog taucht ja nichts zu den Abstürzen auf.
Deine Vorschläge sollte ich - nehme ich an - am Ende des Skriptes einfügen, richtig?
Gibt es eigentlich auch ein debug-logging für OO? Im syslog taucht ja nichts zu den Abstürzen auf.
Code: Alles auswählen
SUB de66021
' 20150713
' Erzeugen eines Textrahmens mit Inhalt "ABSCHRIFT"
' Drucken des Dokuments, dann verwerfen der Änderungen
dok = ThisComponent
' Drucken des Originals
dok.print(Array())
' speichern (für "letztes Druckdatum")
dok.store()
' Rahmen
frame = dok.createInstance("com.sun.star.text.TextFrame")
' interner Name
frame.setName("Abschrift")
' Übernahme eines Stils aus den Rahmen-Vorlagen des Dokuments/der Vorlage
'frame.setPropertyValue("FrameStyleName","_ABSCHRIFT")
' Verankern an der Seite
frame.AnchorType = com.sun.star.text.TextContentAnchorType.AT_PAGE
frame.attach(dok.CurrentController.ViewCursor)
' schreiben des Inhalts
cursor = frame.createTextCursor()
frame.insertString(cursor, "Abschrift!", True)
' Drucken des Dokuments
dok.print(Array())
' Verwerfen der Änderungen
dok.dispose()
DIM PrintOpts(0) AS NEW com.sun.star.beans.PropertyValue
PrintOpts(0).Name = "Wait"
PrintOpts(0).Value = True
END SUB