2016-06-30 5 views

ответ

0

Вот простой пример, который учитывает все символы в документе.

xText = xTextDocument.getText(); 
XTextCursor xTextCursor = xText.createTextCursorByRange(xText.getStart()); 
int num_chars = 0; 
while (xTextCursor.goRight((short)1, false)) { num_chars++; } 
System.out.println("Found " + num_chars + " characters."); 

Однако, если есть такие объекты, как таблицы или фреймы, то один текстовый курсор не будет работать. Использование view cursor обрабатывает таблицы и фреймы, но намного медленнее. Более подробные примеры см. В разделе 7.14.2 из Andrew Pitonyak's macro document.

Другой подход заключается в перечислении всего текста в документе, как в разделе 7.16.3 документа Андрея. Связанная информация для Java также находится в Dev guide. Затем для каждой текстовой части перебирайте ее, создавая текстовый курсор, который должен быть достаточно быстрым.

+0

с этим кодом У меня есть число слов и пробелов, но не количество символов, как я могу это изменить? – Benjamin

+0

Когда я проверил этот код, он показал количество символов, как ожидалось. Вызов [goRight()] (https://www.openoffice.org/api/docs/common/ref/com/sun/star/text/XTextCursor.html#goRight) идет за символами 'nCount' за раз. Возможно, вы использовали [курсор слова] (https://www.openoffice.org/api/docs/common/ref/com/sun/star/text/XWordCursor.html)? –

+0

Я использую тот же самый код, что и выше (плюс код, который я хочу сделать), и он считает слова и пробелы вместо символов. – Benjamin