Создать новую страницу в документе Writer через UNO

Автор lutermaks, 30 апреля 2025, 09:40

0 Пользователи и 1 гость просматривают эту тему.

lutermaks

Добрый день.
Не могу найти рабочие примеры.

DeepSeek предложил такой вариант

# Добавление текста и разрыва страницы
  text = document.Text
  cursor = text.createTextCursor()
  text.insertString(cursor, "Пример текста перед новой страницей.", 0)

# Добавление разрыва страницы
  break_page = document.createInstance("com.sun.star.text.PageNumber")
  break_page.Type = 1  # SW_BREAK_TYPE_PAGE
  text.insertTextContent(text.getEnd(), break_page, False)

Но сервис com.sun.star.text.PageNumber не найден в LO 7.6.7.2

Нашел еще пример, но кажется не то

oLCurs = oText.CreateTextCursorByRange(oSel)
oLCurs.gotoStartOfParagraph(false)
oLCurs.gotoEndOfParagraph(true)
REM  Оставляем предыдущий стиль страницы!
oLCurs.PageDescName = oLCurs.PageStyleName
oLCurs.PageNumberOffset = 7

Подскажите пожалуйста, куда копать?
Возможно через стили документа?

bigor

Поддержать наш форум можно здесь

lutermaks

text = self._document.Text
text_cursor = self._document.CurrentController.getViewCursor()
text_cursor.gotoEnd(False)       
text_cursor.BreakType = PAGE_BEFORE
text.insertControlCharacter(text_cursor, PARAGRAPH_BREAK, False)

Как-то криво работает.
Вставляет две страницы, либо вообще не вставляет, если в документе просто слово Привет