Doppelte Fußnoten per Makro löschen - Wie Seitenzahlen ermitteln

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

Moderator: Moderatoren

georg3200
Beiträge: 5
Registriert: Di, 22.04.2008 13:20

Doppelte Fußnoten per Makro löschen - Wie Seitenzahlen ermitteln

Beitrag von georg3200 »

Hi, bin neu bei OpenOffice und soll ein Makro schreiben, welches doppelte Fußnoten löscht.
Bisher kann ich auf die Fußnoten eines Dokumentes zugreifen. Aber wie ermittele ich zu einer Fußnote die Seite auf welcher sie sich befindet?

Dim oFootnotesHere
document = ThisComponent
'Hier kommt ne Schleife zum iterieren
oFootnotesHere = document.Footnotes(0)

Über oFootnotesHere.Label und oFootnotesHere.String komme ich an den Inhalt.

Aber wie komme ich zur Seitenzahl auf welcher diese Fußnote steht. Ich müsste quasi von der Fußnote nach oben zum Page-Objekt (so es denn so etwas gibt hier) und von da zur Seitenzahl.

Sorry für die Newbie-Fragen. Ist alles noch Neuland für mich.
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Doppelte Fußnoten per Makro löschen - Wie Seitenzahlen ermitteln

Beitrag von Stephan »

Du musst den sog. View-Cursor auf den Ankerpunkt der Fußnote setzen und dann die Seitennummer des View-Cursors auslesen:

Code: Alles auswählen

	v_cur = document.CurrentController.viewCursor
	
	'...
	oFootnotesHere = document.Footnotes(0)
	
	v_cur.GotoRange(oFootnotesHere.Anchor, False)
	
	Msgbox "Aktuelle Fußnote auf Seite: " & v_cur.Page
	'...
Falls Du die Ursprungsposition des View-Cursors erhalten musst, musst Du Dir diese merken indem Du den View-Cursor an einen Textcursor übergibst und am Ende den Textcursor wieder an den View-Cursor. Infos hier:
http://www.dannenhoefer.de/faqstarbasic ... ml#cursor2


Gruß
Stephan
georg3200
Beiträge: 5
Registriert: Di, 22.04.2008 13:20

Re: Doppelte Fußnoten per Makro löschen - Wie Seitenzahlen ermitteln

Beitrag von georg3200 »

Hallo ihr beiden,
Danke Euch für den Stups in die offenbar richtige Richtung. Ich probiere mein Glück mit Euren Beispielen :)

Grüße
Georg
Antworten