LibreOffice Macro - Zugriff auf Fußnotentext

370
Paul B.

Ich habe ein Makro in LibreOffice Writer, das den Fall des Worts ändert, in dem sich der Cursor befindet. Es funktioniert hervorragend, es sei denn, der Cursor befindet sich in einer Fußnote, wo er ausfällt. Der Teilcode:

Document = ThisComponent.CurrentController.Frame dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")   oVC = ThisComponent.CurrentController.getViewCursor oTC = ThisComponent.Text.createTextCursorByRange(oVC) ' <-the footnote error ctext = oTC.string ' get selected text 

In der vorletzten Zeile, in der oTC definiert ist, tritt der Fehler auf. Anscheinend enthält die .Text-Spezifikation in dieser Zeile keine Fußnoten, was ich auch beim Lesen von Andrews OOME-Buch finde. Ich konnte jedoch nicht herausfinden, wie das Makro verallgemeinert werden kann, damit es sowohl im Hauptdokument als auch in Fußnoten funktioniert. Jede Hilfe wäre dankbar.

1

1 Antwort auf die Frage

2
Jim K
oTC = oVC.getText().createTextCursorByRange(oVC) 

BEARBEITEN :

Wie funktioniert das? Es erhält das Textobjekt von oVC. In Ihrem Fall unterscheidet sich dies von dem durch ThisComponent, da der Ansichtscursor sich nicht im Hauptteil, sondern im Fußnotenbereich befindet.

Zellen haben auch eigene Textobjekte, die sich vom Hauptteil unterscheiden. oVC.getText()funktioniert auch in Zellen.

Die Eigenschaft ThisComponent.Textund die Methode ThisComponent.getText()machen dasselbe.

Absolut perfekt. Ich habe gesehen, dass Andrew geschrieben hat, getText anstelle von Text für andere Textströme zu verwenden, konnte aber nicht herausfinden, wie er implementiert werden sollte. Meine Fußnoten danken Ihnen und ich danke Ihnen vielmals! Paul B. vor 6 Jahren 0