WRITER: "Abschrift drucken"
Moderator: Moderatoren
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: WRITER: "Abschrift drucken"
Das DIM gehört an den Anfang - und dann die .print() Zeilen austauschen
Wenn Du Meldungen loggen willst, dann starte soffice von der Kommandozeile und leite um
soffice > log.txt
Es sei noch angemerkt: hier funktioniert das Makro (mit einem PDF-Drucker), eingerichtet über Vorlage, mit Symbolleiste ohne Probleme.
Versuche es doch mal mit einem neuen Benutzer (oder: gesichertem und dann gelöschtem OOo-Benutzerverzeichnis)
Wenn Du Meldungen loggen willst, dann starte soffice von der Kommandozeile und leite um
soffice > log.txt
Es sei noch angemerkt: hier funktioniert das Makro (mit einem PDF-Drucker), eingerichtet über Vorlage, mit Symbolleiste ohne Probleme.
Versuche es doch mal mit einem neuen Benutzer (oder: gesichertem und dann gelöschtem OOo-Benutzerverzeichnis)
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"
ok, ich bin nun endlich etwas weiter.
Ein Fehler war, dass im Skript folgende Zeile auskommentiert war:
Ich habe also das ` am Anfang entfernt, nun wird der Rahmen mit Abschrift gedruckt.
Allerdings zerschießt die Zeile
am Ende den Writer, d.h. wenn ich auskommentiere, bleibt OO zwar offen, der Aufdruck "Abschrift" wird aber (natürlich) auch nicht entfernt. Eine Fehler wird hier aber nicht geloggt.
Ein Fehler war, dass im Skript folgende Zeile auskommentiert war:
Code: Alles auswählen
'frame.setPropertyValue("FrameStyleName","_ABSCHRIFT")
Allerdings zerschießt die Zeile
Code: Alles auswählen
dok.dispose()
Re: WRITER: "Abschrift drucken"
Habe gerade über Tante Google gelernt
, dass die Python-Anweisung dok.dispose das Dokument schließt, d.h. der Writer schmiert nicht ab, sondern wird gewollt geschlossen.
So wie ich als Skript-Unkundiger das verstehe, müsste doch also zum Schluss "nur noch" die Anweisung stehen, dass durch das Skript erfolgte Änderungen rückgängig gemacht bzw. nicht gespeichert werden, das Dokument aber geöffnet bleibt.

So wie ich als Skript-Unkundiger das verstehe, müsste doch also zum Schluss "nur noch" die Anweisung stehen, dass durch das Skript erfolgte Änderungen rückgängig gemacht bzw. nicht gespeichert werden, das Dokument aber geöffnet bleibt.
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: WRITER: "Abschrift drucken"
dok.dispose() ist eine StarBasic Anweisung
Zu einer Exception kann es dann (eigentlich) nur kommen, wenn der Druckauftrag noch nicht fertig ist.
Die Funktion entspricht einem Datei>Schliessen>[Nein zum Speichern] - also genau das, was Du Dir vorstellst.SDK /com/sun/star/lang/XComponent.html#dispose hat geschrieben:The owner of an object calls this method to explicitly free all resources kept by this object and thus break cyclic references.
Zu einer Exception kann es dann (eigentlich) nur kommen, wenn der Druckauftrag noch nicht fertig ist.
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"
.dispose ist eine Api-methode und sowohl aus Basic als auch aus Python aufrufbar.komma4 hat geschrieben:dok.dispose() ist eine StarBasic Anweisung
Die Funktion entspricht einem Datei>Schliessen>[Nein zum Speichern] - also genau das, was Du Dir vorstellst.SDK /com/sun/star/lang/XComponent.html#dispose hat geschrieben:The owner of an object calls this method to explicitly free all resources kept by this object and thus break cyclic references.
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: WRITER: "Abschrift drucken"
Ja 
Siehst Du, was hier noch schief laufen könnte?

Siehst Du, was hier noch schief laufen könnte?
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"
komma4 hat geschrieben:
Die Funktion entspricht einem Datei>Schliessen>[Nein zum Speichern] - also genau das, was Du Dir vorstellst.
Da haben wir uns vielleicht falsch verstanden: das Dokument soll geöffnet bleiben und der Abschriftenvermerk nur für den Druck eingesetzt und dann wieder aus dem (noch geöffneten) Dokument gelöscht werden.
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: WRITER: "Abschrift drucken"
peter007 hat geschrieben:das Dokument soll geöffnet bleiben und der Abschriftenvermerk nur für den Druck eingesetzt und dann wieder aus dem (noch geöffneten) Dokument gelöscht werden.
Ok, habe ich falsch verstanden
neue Version:
Code: Alles auswählen
SUB de66021
' 20150713
' Erzeugen eines Textrahmens mit Inhalt "ABSCHRIFT"
' Ankern des Rahmens an jeder Seite des Dokuments
' Drucken des Dokuments, dann verwerfen der Änderungen
' 20150716
' Rücknahme der Änderung, Dokument nicht schliessen
' 20150715
' PrintOpts
DIM PrintOpts(0) AS NEW com.sun.star.beans.PropertyValue
PrintOpts(0).Name = "Wait"
PrintOpts(0).Value = True
dok = ThisComponent
' der Rahmen
frame = dok.createInstance("com.sun.star.text.TextFrame")
' interner Name
frame.setName("Abschrift")
' Verankern an der Seite
frame.AnchorType = com.sun.star.text.TextContentAnchorType.AT_PAGE
frame.attach(dok.CurrentController.ViewCursor)
' Übernahme eines Stils aus den Rahmen-Vorlagen des Dokuments/der Vorlage
frame.setPropertyValue("FrameStyleName","_ABSCHRIFT")
' schreiben des Inhalts
cursor = frame.createTextCursor()
frame.insertString(cursor, "Abschrift!", True)
cursor.gotoStart(FALSE)
cursor.gotoEndOfParagraph(TRUE)
' Drucken des Dokuments
dok.print(PrintOpts)
' Rücknahme der Textbox
frame.dispose()
' "Keine Änderungen am Dokument"
dok.Modified = False
END SUB
Klappt es damit?
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"
Nein, leider wieder nicht. Es erscheint folgender Fehler:
Mit dem folgenden Skript wird zwar der Abschriftenrahmen eingefügt, aber nicht mehr gelöscht:
So langsam verzweifle ich

Mit dem folgenden Skript wird zwar der Abschriftenrahmen eingefügt, aber nicht mehr gelöscht:
Code: Alles auswählen
SUB Abschriftendruck
' 20150713
' Erzeugen eines Textrahmens mit Inhalt "ABSCHRIFT"
' Drucken des Dokuments, dann verwerfen der Änderungen
dok = ThisComponent
' Drucken des Originals
dok.print(Array())
' 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



Re: WRITER: "Abschrift drucken"
Keiner mehr eine Idee?
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: WRITER: "Abschrift drucken"
Zum Verwerfen des Rahmens frame.dispose() verwenden?!
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"
Hat leider auch nichts geändert.
Da wir hier momentan nicht weiterkommen: es ist von Anfang an so, dass der Rahmen in einer Breite von 0,57 cm und mit automatischer Höhe eingefügt wird. Das Ganze sieht dann so aus, obwohl ich in der Rahmenvorlage als feste Breite 4 cm und feste Höhe 0,8 cm vergeben habe:
Da wir hier momentan nicht weiterkommen: es ist von Anfang an so, dass der Rahmen in einer Breite von 0,57 cm und mit automatischer Höhe eingefügt wird. Das Ganze sieht dann so aus, obwohl ich in der Rahmenvorlage als feste Breite 4 cm und feste Höhe 0,8 cm vergeben habe:
- Dateianhänge
-
- Unbenannt.jpg (62.89 KiB) 6329 mal betrachtet
Re: WRITER: "Abschrift drucken"
Eine Lösung ist da !
Ich habe auf OO 3.4.0 "downgegraded und, siehe da, der Abschriftendruck (und das anschließende automatische Löschen des Rahmens im Dokument) lüppt plötzlich.
Es muss also vom Versionssprung von OO 3 auf 4 irgend etwas an der Interpretation der Basic-Befehle geändert worden sein. Sei's drum, wir werden erst mal die 3er Version nehmen, da die für uns wichtigen Funktionen dort auch enthalten zu sein scheinen.
Danke an alle, die geholfen haben !
Ich habe auf OO 3.4.0 "downgegraded und, siehe da, der Abschriftendruck (und das anschließende automatische Löschen des Rahmens im Dokument) lüppt plötzlich.
Es muss also vom Versionssprung von OO 3 auf 4 irgend etwas an der Interpretation der Basic-Befehle geändert worden sein. Sei's drum, wir werden erst mal die 3er Version nehmen, da die für uns wichtigen Funktionen dort auch enthalten zu sein scheinen.
Danke an alle, die geholfen haben !
- Dateianhänge
-
- 11.jpg (6.31 KiB) 6312 mal betrachtet
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: WRITER: "Abschrift drucken"
Ich habe den geposteten Code hier mit AOO 4.1.1 erfolgreich getestet.
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, komisch, kannst Du Dir einen Grund vorstellen, warum das bei mir erst nach dem Downgrade lief?