Hallo zusammen,
gibt es eine Möglichkeit, die "logische" Seitenzahl einer Seite auszulesen? Unter logischer Seitezahl meine ich die Seitenzahl, die man bei einem manuellen Seitenumbruch der neuen Seitenvolage zuordnen kann. Also nicht die Seitenzahl, die man mit der getpage()-Methode erhält. Wenn das direkt nicht möglich sein sollte, könnte man dann evtl. ein Textfeld mit der Seitenzahl ansteuern und den Inhalt abfragen?
Vielen Dank im Vorraus.
"logische" Seitenzahl auslesen
Moderator: Moderatoren
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: "logische" Seitenzahl auslesen
ich verstehe die Frage nicht:
Das ist es nicht?
Code: Alles auswählen
print ThisComponent.getCurrentController.getViewCursor().getPage()
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: "logische" Seitenzahl auslesen
Nein, genau das ist es nicht. Es gibt in OpenOffice Writer die Möglichkeit, bei einem manuellen Seitenumbruch für die nächste Seite eine neue Formatvorlage festzulegen. Dabei kann ebenfalls die Seitennummer geändert werden. Diese dort angegebene neue Seitenummer lässt sich nicht über getpage()-Methode auslesen. Hier wird die tatsächliche Seite im Dokument zurückgegeben, ich benötige aber eben die neu festgelegte "logische" Seitennummer.
Wenn man auf der neuen Seite den Feldbefehl "Seitennummer" einfügt, wird die festgelegte "logische" Nr. angezeigt. Die erscheint bei mir in der Fußzeile innerhalb einer Tabelle. Z.z. lese ich einfach die entsprechende Zelle der Tabelle aus. Das Problem dabei ist nur, dass ich dabei nur die logische Seitenummer der letzten Seite erhalte (eben weil die Seitenummer in der Fußzeile steht). Dann rechne ich das ganze über PageCount und getpage() auf die jeweilige Seite zurück. Dieses Verfahren funktioniert jedoch nicht, wenn mehrere manuelle Seitenumbrüche mit verschiedenen Seitenummern innerhalb eines Dokuments verwendet werden.
Demenstprechend wollte ich fragen, ob es die Möglichkeit gibt, die logische Seitennummer für jede Seite direkt auszulesen?
Wenn man auf der neuen Seite den Feldbefehl "Seitennummer" einfügt, wird die festgelegte "logische" Nr. angezeigt. Die erscheint bei mir in der Fußzeile innerhalb einer Tabelle. Z.z. lese ich einfach die entsprechende Zelle der Tabelle aus. Das Problem dabei ist nur, dass ich dabei nur die logische Seitenummer der letzten Seite erhalte (eben weil die Seitenummer in der Fußzeile steht). Dann rechne ich das ganze über PageCount und getpage() auf die jeweilige Seite zurück. Dieses Verfahren funktioniert jedoch nicht, wenn mehrere manuelle Seitenumbrüche mit verschiedenen Seitenummern innerhalb eines Dokuments verwendet werden.
Demenstprechend wollte ich fragen, ob es die Möglichkeit gibt, die logische Seitennummer für jede Seite direkt auszulesen?
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: "logische" Seitenzahl auslesen
jetzt habe ich die Frage verstanden.
untested: der manuelle Umbruch (ControlCharacter PAGEBREAK) müsste auf der Seite zu finden sein - und dort müsste die Eigenschaft stehen.
Andrew hat dieses Beispiel in seinem Makrodokument - versuch's mal...
Listing 7.34: Find and remove page breaks.
untested: der manuelle Umbruch (ControlCharacter PAGEBREAK) müsste auf der Seite zu finden sein - und dort müsste die Eigenschaft stehen.
Andrew hat dieses Beispiel in seinem Makrodokument - versuch's mal...
Listing 7.34: Find and remove page breaks.
Code: Alles auswählen
Sub FindPageBreaks
REM Author: Andrew Pitonyak
Dim iCnt As Long
Dim oCursor as Variant
Dim oText As Variant
Dim s As String
oText = ThisComponent.Text
oCursor = oText.CreateTextCursor()
oCursor.GoToStart(False)
Do
If NOT oCursor.gotoEndOfParagraph(True) Then Exit Do
iCnt = iCnt + 1
If NOT IsEmpty(oCursor.PageDescName) Then
s = s & "Paragraph " & iCnt & " has a new page to style " & _
oCursor.PageDescName & CHR$(10)
oCursor.PageDescName = ""
End If
If oCursor.BreakType <> com.sun.star.style.BreakType.NONE Then
s = s & "Paragraph " & iCnt & " has a page break" & CHR$(10)
oCursor.BreakType = com.sun.star.style.BreakType.NONE
End If
Loop Until NOT oCursor.gotoNextParagraph(False)
MsgBox s
End Sub
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: "logische" Seitenzahl auslesen
Hallo nochmal,
vielen Dank für deine Hilfe, hast mir sehr geholfen.
Die Seitenzahl lässt sich ganz einfach über die Eigenschaft:
auslesen.
vielen Dank für deine Hilfe, hast mir sehr geholfen.
Die Seitenzahl lässt sich ganz einfach über die Eigenschaft:
Code: Alles auswählen
oCursor.PageNumberOffset