manueller seitenumbruch
Moderator: Moderatoren
manueller seitenumbruch
Wo, wie finde ich den Code für manueller Seitenumbruch?
im Netz habe ich nur den für Handarbeit gefunden.
So fügen Sie einen manuellen Seitenumbruch ein:
Klicken Sie in Ihrem Dokument an die Stelle, an der die neue Seite anfangen soll.
Drücken Sie (Strg)(Eingabetaste).
Wo aber ist der/die Befehl(e) dafür?
Ich habe von so was keine Ahnung.
Ich denke aber, für alles was man von Hand machen kann, muss es letzten Endes auch den Code geben?
Bringt Lo 6.2.2 dafür einen Fortschritt?
Martin
im Netz habe ich nur den für Handarbeit gefunden.
So fügen Sie einen manuellen Seitenumbruch ein:
Klicken Sie in Ihrem Dokument an die Stelle, an der die neue Seite anfangen soll.
Drücken Sie (Strg)(Eingabetaste).
Wo aber ist der/die Befehl(e) dafür?
Ich habe von so was keine Ahnung.
Ich denke aber, für alles was man von Hand machen kann, muss es letzten Endes auch den Code geben?
Bringt Lo 6.2.2 dafür einen Fortschritt?
Martin
Re: manueller seitenumbruch
z.B. per Makrorekorder aufzeichnen:Wo aber ist der/die Befehl(e) dafür?
Code: Alles auswählen
sub Main
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 ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:InsertPagebreak", "", 0, Array())
end Sub
Code: Alles auswählen
Sub Seitenumbruch_einfuegen
v_cur = ThisComponent.currentController.viewCursor
v_cur.BreakType = com.sun.star.style.BreakType.PAGE_BEFORE
End Sub
ich wüsste nicht welchen Fortschritt es dazu geben kann, Makros laufen seit OOo 1.0.0 und ein Seitenumbruch hat auch schon damals funktioniert.Bringt Lo 6.2.2 dafür einen Fortschritt?
Gruß
Stephan
Re: manueller seitenumbruch
Hallo Stephan,
Du hast das Sub für den Code als Seitenumbruch bezeichnet.
Ergibt der wirklich einen manuellen Seitenumbruch?
Wenn ja, darf ich das Sub umbenennen?
Martin
Du hast das Sub für den Code als Seitenumbruch bezeichnet.
Ergibt der wirklich einen manuellen Seitenumbruch?
Wenn ja, darf ich das Sub umbenennen?
Martin
Re: manueller seitenumbruch
ich verstehe nicht was das meintDu hast das Sub für den Code als Seitenumbruch bezeichnet.
(es gibt kein Sub "für" den Code, sondern "Sub" ist ein Schlüsselwort innerhalb des Codes)
Ja. Möglicherweise dann nicht erkennbar wenn Du den Code in einem völlig leerren Dokument anwendest, denn im Gegensatz zu dem anderen Makro wird nicht automatisch ein zusätzlicher Absatz bzw. Absatzumbruch eingefügt.Ergibt der wirklich einen manuellen Seitenumbruch?
Du kannst das benennen wie Du willst.Wenn ja, darf ich das Sub umbenennen?
Gruß
Stephan
Re: manueller seitenumbruch
Martin, was ist denn für Dich ein manueller Seitenumbruch?
Per Makro-Code kannst Du nur einen Seitenumbruch einfügen - das ist dann das selbe, was Du per UI (also über die Oberfläche) über den Befehl Einfügen - manueller Umbruch -> Seite (oft auch genannt "manueller Seitenumbruch") durchführen kannst.
Der Code von Stephan setzt aber immer voraus, dass Du ein aktives Dokument besitzt und dort den Cursor passend an der gewünschten Stelle plaziert hast. Wenn das aber der Fall ist, brauchst Du eigentlich keinen Makro-Code - dann kannst Du das ja auch direkt über den Menübefehl erledigen.
Ansonsten hilft Dir der Code nur dann etwas, wenn Du dein Dokument per Makro erzeugst und den Textcursor passend per Code platziert hast. Ist das so?
Vielleicht postest Du eher mal den Gesamtcode mit dem Hinweis, wo Du den Seitenumbruch einfügen möchtest.
Dann kann Dir sicher besser geholfen werden als mit den Code-Schnipseln, die Dir im Grunde nicht weiterhelfen, wenn Du den Gesamtzusammenhang nicht kennst.
VG
Tom
Per Makro-Code kannst Du nur einen Seitenumbruch einfügen - das ist dann das selbe, was Du per UI (also über die Oberfläche) über den Befehl Einfügen - manueller Umbruch -> Seite (oft auch genannt "manueller Seitenumbruch") durchführen kannst.
Der Code von Stephan setzt aber immer voraus, dass Du ein aktives Dokument besitzt und dort den Cursor passend an der gewünschten Stelle plaziert hast. Wenn das aber der Fall ist, brauchst Du eigentlich keinen Makro-Code - dann kannst Du das ja auch direkt über den Menübefehl erledigen.
Ansonsten hilft Dir der Code nur dann etwas, wenn Du dein Dokument per Makro erzeugst und den Textcursor passend per Code platziert hast. Ist das so?
Vielleicht postest Du eher mal den Gesamtcode mit dem Hinweis, wo Du den Seitenumbruch einfügen möchtest.
Dann kann Dir sicher besser geholfen werden als mit den Code-Schnipseln, die Dir im Grunde nicht weiterhelfen, wenn Du den Gesamtzusammenhang nicht kennst.
VG
Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Re: manueller seitenumbruch
Ein manueller Seitenumbruch ist:
Geh auf das Zeichen oder das Absatzende an dem der Seitenumbruch eingefügt werden soll.
Ist an dem Zeichen kein Absatzende, füge den ein.
Dort gehe zu Einfügen manueller Seitenumbruch.
Dann entsteht auf der nächste Seite oben ein leerer Absatz.
Um den geht es eigentlich.
Denn dort kann ich mit einem anderen Makro eine komplizierte Kopfzeile einfügen.
Die will ich unbedingt haben.
Martin
Übrigens bei alle unterstützen Dateiformate gibt es nicht bas.
Geh auf das Zeichen oder das Absatzende an dem der Seitenumbruch eingefügt werden soll.
Ist an dem Zeichen kein Absatzende, füge den ein.
Dort gehe zu Einfügen manueller Seitenumbruch.
Dann entsteht auf der nächste Seite oben ein leerer Absatz.
Um den geht es eigentlich.
Denn dort kann ich mit einem anderen Makro eine komplizierte Kopfzeile einfügen.
Die will ich unbedingt haben.
Code: Alles auswählen
REM ***** BASIC *****
REM Das Programm führt einen Cursorsprung durch.
REM Der Cursor springt von der aktuellen Seite,
REM direkt in die erste Zeile der nächsten Seite
Sub SpringeAufNaechsteSeite
oDocC=thisComponent
oVC=oDocC.GetCurrentController. ViewCursor
With oVC
.jumpToNextPage(false)
.jumpToStartOfPage(false)
.screenDown(True)
End With
oVC.jumpToStartOfPage(false)
Sub insert_PageBreak_at_Position
oViewCursor = thisComponent.CurrentController.ViewCursor
oText = thisComponent.Text
oTextCursor = oText.createTextCursor
oTextCursor.gotoRange(oViewCursor, false)
oTextCursor.BreakType = com.sun.star.style.BreakType.PAGE_AFTER
oTextCursor.gotoEndOfParagraph(false)
oText.insertControlCharacter(oTextCursor, 0,false)
End Sub
Übrigens bei alle unterstützen Dateiformate gibt es nicht bas.
Re: manueller seitenumbruch
Hey Martin,
das alles ist sehr verwirrend:
Durch das Einfügen eines Absatzendes (ist in Deinem Code übrigens nirgends vorhanden) könntst Du natürlich auch gleich einen 2. leeren Absatz einfügen - das wäre dann automatisch der erste leere Absatz auf der Folgeseite - ganz ohne manuellen Seitenumbruch.
Kopfzeilen (ob kompliziert oder nicht) sind im übrigen immer Teile der Seitenvorlage und nicht Teil des Fliesstextes - und sollten das auch bleiben. Also auch hier ist das Vorgehen zunächst nicht sinnvoll. Hier wäre es zwar sinnvoll, einen Seitenumbruch einzufügen mit entsprechender Kopfzeile - aber das ist ein anderes Thema.
Dein geposteter Code kann im übrigen nicht funktionieren: Sub innerhalb einer Sub, leerzeichen zwischen "." und "ViewCursor", Viewcursor erneut erzeugt, obwohl schon definiert.... Das ganze erscheint mir zusammenkopierte Codezeilen ohne zu verstehen, was die einzelnen bedeuten und wie ein Textprogramm aufgebaut ist.
Fange langsam an und arbeite Dich Stück für Stück vor... so versteht man die Systematik und evt. Code und kommt zu einem guten Ergebnis:)
VG
Tom
das alles ist sehr verwirrend:
Du willst auf das letzte Zeichen einer Seite gehen und dort, wenn dortk kein Absatzendezeichen ist, eins einfügen? Dadurch zerstörst Du aber den logischen Absatz - als geschlossenen Satz / Gedanke.Ein manueller Seitenumbruch ist:
Geh auf das Zeichen oder das Absatzende an dem der Seitenumbruch eingefügt werden soll.
Ist an dem Zeichen kein Absatzende, füge den ein.
Dort gehe zu Einfügen manueller Seitenumbruch.
Dann entsteht auf der nächste Seite oben ein leerer Absatz.
Um den geht es eigentlich.
Durch das Einfügen eines Absatzendes (ist in Deinem Code übrigens nirgends vorhanden) könntst Du natürlich auch gleich einen 2. leeren Absatz einfügen - das wäre dann automatisch der erste leere Absatz auf der Folgeseite - ganz ohne manuellen Seitenumbruch.
Kopfzeilen (ob kompliziert oder nicht) sind im übrigen immer Teile der Seitenvorlage und nicht Teil des Fliesstextes - und sollten das auch bleiben. Also auch hier ist das Vorgehen zunächst nicht sinnvoll. Hier wäre es zwar sinnvoll, einen Seitenumbruch einzufügen mit entsprechender Kopfzeile - aber das ist ein anderes Thema.
Dein geposteter Code kann im übrigen nicht funktionieren: Sub innerhalb einer Sub, leerzeichen zwischen "." und "ViewCursor", Viewcursor erneut erzeugt, obwohl schon definiert.... Das ganze erscheint mir zusammenkopierte Codezeilen ohne zu verstehen, was die einzelnen bedeuten und wie ein Textprogramm aufgebaut ist.
Fange langsam an und arbeite Dich Stück für Stück vor... so versteht man die Systematik und evt. Code und kommt zu einem guten Ergebnis:)
VG
Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Re: manueller seitenumbruch
z.B. dieses Makro sollte genau das Vorstehende tun (vor/beim Start des Makros muss der Cursor im Fließtext stehen):Ein manueller Seitenumbruch ist:
Geh auf das Zeichen oder das Absatzende an dem der Seitenumbruch eingefügt werden soll.
Ist an dem Zeichen kein Absatzende, füge den ein.
Dort gehe zu Einfügen manueller Seitenumbruch.
Dann entsteht auf der nächste Seite oben ein leerer Absatz.
Um den geht es eigentlich.
Code: Alles auswählen
Sub manueller_Seitenumbruch()
cur = ThisComponent.GetCurrentController.ViewCursor
cur.GoRight(1, True)
x = ASC(cur.String)
cur.collapseToStart()
ThisComponent.Text.insertControlCharacter(cur, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
If NOT(x = 13) Then
ThisComponent.Text.insertControlCharacter(cur, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
cur.GoLeft(1, False)
End If
cur.BreakType = com.sun.star.style.BreakType.PAGE_BEFORE
End Sub
Gruß
Stephan
Re: manueller seitenumbruch
Danke Stephan,
deinen Code werde ich einbinden.
Hallo Toxitom,
Deshalb bin ich auf andere Hilfen angewiesen.
Bald bin ich ja fertig.
Ich danke Euch allen.
Martin
deinen Code werde ich einbinden.
Hallo Toxitom,
- Bezüglich des letzten Absatzes habe ich entschieden, dass es besser ist, dass die Seiten einigermaßen voll sind.
Auf der nächsten Seite schreibe ich dann klein weiter und rücke dessen erste Zeile nicht ein.
- Ganz ohne manuellen Seitenumbruch scheint es, aber nicht möglich zu sein was ich möchte.
Ich habe entsprechende Seitenvorlagen.
- Ich will gleichzeitig aus einer Calc Tabelle die Texte einfügen.
- Der Code läuft aber.
Deshalb bin ich auf andere Hilfen angewiesen.
Bald bin ich ja fertig.
Ich danke Euch allen.
Martin
Re: manueller seitenumbruch
Hallo Martin,
na ja, wenn Du meinst;)
Der Code vom Stephan funktioniert - ja sicher. Er funktioniert immer dann sicher, wenn folgende Voraussetzungen erfüllt sind:
Aber egal... wenn es Dich weiter gebracht hat - perfekt:)
Viel Spass noch bei Deinem Projekt.
VG
Tom
na ja, wenn Du meinst;)
Der Code vom Stephan funktioniert - ja sicher. Er funktioniert immer dann sicher, wenn folgende Voraussetzungen erfüllt sind:
- Du befindest Dich im eigentlichen Text - nicht in einer Tabelle, nicht in einem Rahmen, nicht in einem Textfeld....
- Der Cursor ist vorhanden und sichtbar (also keine Druckansicht oder andere Varianten
- es ist nichts markiert - schon gar keine Mehrfachselektion (wobei: ein markiertes Wort würde dem Code nicht schaden - der Seitenumbruch wird dann davor eingefügt.
- es darf nachträglich zu keiner Änderung des Textflusses kommen - da der automatische Seitenumbruch entfällt und es dann zu wirklich ärgerlichen Phänomenen kommen wird...
- ....
Aber egal... wenn es Dich weiter gebracht hat - perfekt:)
Viel Spass noch bei Deinem Projekt.
VG
Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Re: manueller seitenumbruch
Dein Problem scheint mir leider auch das Du das Ganze falsch angehst.Mein Problem ist, dass mein Freund keine Zeit mehr hat.
Deshalb bin ich auf andere Hilfen angewiesen.
Es gab, hier im Forum, vor einigen Wochen einen Stand der Lösung der beschrieben ist mit:
-das Makro Deines Freundes leistete das Gewünschte, außer auf den Verzeichnisseiten
-mein Makro fürs Verzeichnis funktionierte nur nicht bezüglich der Option "Alphabetische Trennzeichen", ansonsten schon
Du hättest also, der Not gehorchend, bei ein paar Verzeichnisseiten die 'Kopfzeilen' per Hand anpassen können und im Verzeichnis händisch die Buchstaben A-Z reinschreiben. Wie die Verzeichnisseiten zu bearbeiten wären, dazu gab es auch Lösungsvorschläge.
Stattdessen hast Du (augenscheinlich) einen erheblichen Aktionismus entfaltet, bei dem ich teils garnicht verstehe welches konkrete Problem mit welchem der diversen isoliert angefragten Makroschnipsel gelöst werden soll.
Das alles ist Deine Entscheidung, die meine Bereitschaft zum Helfen bei konkret gestellten Fragen nicht mindert, allein kommt mir meine Hilfe hier stellenweise wie Stückwerk vor.
Gruß
Stephan