Ist es möglich zu bestimmen, wann ein Bookmark
einen TextTable
enthält? Ich dachte über Objekte XTextRange
nach, aber die Dokumentation gibt nichts über das Vergleichen von Bereichen an.Wie überprüft man, ob ein Lesezeichen eine Tabelle enthält?
Antwort
mit dem folgenden Code So starten:
XBookmarksSupplier xBookmarksSupplier =
(XBookmarksSupplier)UnoRuntime.queryInterface(
XBookmarksSupplier.class, xComponent);
XNameAccess xNamedBookmarks = xBookmarksSupplier.getBookmarks();
Object bookmark = xNamedBookmarks.getByName("TextAndTable");
XTextContent xBookmarkContent = (XTextContent)UnoRuntime.queryInterface(
XTextContent.class, bookmark);
XTextRange xTextRange = xBookmarkContent.getAnchor();
Es klingt wie Sie, wie Sie fragen, ob es eine oder mehrere Texttabellen sind, die innerhalb des Bereichs von xTextRange
angegeben befinden.
Um dies zu tun, verwende ich normalerweise View Cursor. Es ist langsam, aber ein normaler Textcursor ist nicht in der Lage, verschiedene Textobjekte zu durchlaufen, so dass es fehlschlägt, wenn Texttabellen oder andere Objekte innerhalb des Bereichs liegen.
Hier ist meine Python-Klasse, die Sie vielleicht auf Java anpassen können:
def differentPlaces(oCurs1, oCurs2):
"""Test using compareRegion to see if two cursors are in different places.
If compareRegion fails, such as after a nested table, return False.
"""
try:
oText = oCurs1.getText()
return oText.compareRegionEnds(oCurs1, oCurs2) != 0
except IllegalArgumentException:
logger.info("Could not compare region.")
return False
class RangeCompare:
"""Compare the viewcursor to a text range (a location).
Can be useful when traversing a cursor over a range.
The range is expected not to be modified.
"""
def __init__(self, rangeEnd, viewCursor):
self.oVC = viewCursor
self.rangeEnd = rangeEnd
self.endX = -1
self.endY = -1
def getCoords(self):
if self.endY > -1:
return
# remember where we were, because we'll need to use the viewcursor
originalVC = self.oVC.getText().createTextCursorByRange(self.oVC)
self.oVC.gotoRange(self.rangeEnd, False)
self.endX = self.oVC.getPosition().X
self.endY = self.oVC.getPosition().Y
self.oVC.gotoRange(originalVC, False)
def compareVC(self):
"""Compare the viewcursor to the range.
Assume we are travelling with the viewcursor.
See if it is up to the end yet or not.
The comparison is done by checking the physical position of the cursor.
Returns -1 if the VC location is less than self.rangeEnd, 0 if it is
the same, and 1 if it is greater.
Returns -2 if they are on the same line but not in the same spot, and
it's not certain which location is greater.
"""
self.getCoords()
curX = self.oVC.getPosition().X
curY = self.oVC.getPosition().Y
if curY < self.endY:
logger.debug("%d < %d", curY, self.endY)
return -1
elif curY > self.endY:
logger.debug("%d > %d", curY, self.endY)
return 1
elif curY == self.endY:
if curX == self.endX:
if differentPlaces(self.oVC, self.rangeEnd):
# There is probably a word-final diacritic that doesn't
# change the position, so we're not to the end yet.
logger.debug("Including word-final diacritic.")
return -2
# We're at the end.
logger.debug(
"VC same loc as text range (%d, %d).", curX, curY)
return 0
else:
logger.debug("Probably haven't gone far enough.")
return -2
die Klasse mit so etwas wie rangeCompare = RangeCompare(xTextRange.getEnd(), xViewCursor)
instanziiert.
Bewegen Sie den View-Cursor an den Anfang von xTextRange
. Rufen Sie dann weiter xViewCursor.goRight(1, False)
in einer Schleife. Überprüfen Sie jedes Mal, ob sich der Cursor in einer TextTable befindet. Stoppen Sie, wenn rangeCompare.compareVC() > 0
.
Vielen Dank für die Antwort, ich werde es überprüfen, sobald ich kann – soon
- 1. Wie überprüft man, ob ein TextView eine bestimmte Zeichenfolge enthält
- 2. Wie überprüft man, ob ein Element ein spezifisches Klassenattribut enthält
- 3. Wie überprüft man, ob ein String ein int enthält? -Swift
- 4. Wie überprüft man, ob ein String ein bestimmtes Zeichen enthält?
- 5. Wie überprüft man, ob eine Zeichenfolge eine bestimmte Teilzeichenfolge enthält?
- 6. Wie überprüft man, ob eine Zeichenfolge eine E-Mail enthält?
- 7. Wie überprüft man, ob eine Tabelle ein Element in Lua enthält?
- 8. Wie überprüft man, ob ein Objekt einen Wert enthält?
- 9. Winkelmesser - wie überprüft man, ob ein Element Text enthält
- 10. Wie überprüft man, ob eine Zeichenfolge einige Zeichenfolgen enthält
- 11. Wie überprüft man, ob eine Zeichenfolge zwei Sternchen enthält?
- 12. Wie überprüft man, ob eine Zeichenfolge http: // am Anfang enthält
- 13. Ruby: Wie überprüft man, ob eine Zeichenfolge mehrere Elemente enthält?
- 14. Wie überprüft man, ob eine statische Bibliothek Bitcode enthält?
- 15. Javascript - Wie überprüft man, ob eine Zeichenfolge mehrere Teilzeichenfolgen enthält
- 16. Wie überprüft man, ob eine Cassandra-Tabelle existiert
- 17. Wie überprüft man, ob eine Tabelle in Hive existiert?
- 18. Wie überprüft man, ob eine Tabelle doppelte Spalten in js enthält?
- 19. Wie überprüft man, ob ein Diktatwert ein Wort/eine Zeichenfolge enthält?
- 20. Wie überprüft man, ob eine Variable ein JSON-Objekt oder eine Zeichenfolge enthält?
- 21. Wie überprüft man, ob CKEditor etwas Text enthält?
- 22. Wie überprüft man, ob ein Pfad existiert?
- 23. Wie überprüft man, ob ein Registrierungsschlüssel existiert
- 24. Numpy: Wie überprüft man, ob das Array bestimmte Nummern enthält?
- 25. Wie überprüft man, ob Zeichenfolge enthält Zeichenfolge in Pascal
- 26. Wie überprüft man, ob der String-Inhalt HTML enthält?
- 27. Wie überprüft man, ob eine Zeichenfolge eine Zeichenfolge in einer Spalte enthält? MySQL
- 28. Wie überprüft man, ob eine Klasse existiert
- 29. Wie überprüft man, ob die Übergabeschaltfläche die richtige Antwort enthält
- 30. Wie überprüft man, ob text1 text2 mit vb6 enthält?
Fragen Sie nur, ob das Lesezeichen innerhalb * einer TextTabelle liegt? Das wäre leicht zu bestimmen. Ich nehme in meiner Antwort unten an, dass du * contains * meinst, wie es in der Frage heißt, und dass das Lesezeichen sich über eine Reihe von Texten und nicht nur über einen einzelnen Ort erstreckt. –
Nein, ich frage nach einer ** Tabelle ** innerhalb eines ** Lesezeichens **. – soon