Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
94
Добавлен:
11.05.2015
Размер:
616.76 Кб
Скачать
      1. Удаление разрывов страниц

Я не во всем разобрался, но я выполнил несколько экспериментов. Установка свойства PageDescName вызывает разрыв страницы. При этом может также быть установлено свойство BreakType. Следующий макрос находит и удаляет разрывы страниц. Я выполнил только минимальное тестирование. Я не занимался установкой новых параметров страниц.

Листинг 7.8.1.1:Найти и удалить разрывы страниц.

Sub FindPageBreaks

REM Author: Andrew Pitonyak

Dim iCnt As Long

Dim oCursor as Variant

Dim oText As Variant

Dim s As String

oText = ThisComponent.Text

oCursor = oText.CreateTextCursor()

oCursor.GoToStart(False)

Do

If NOT oCursor.gotoEndOfParagraph(True) Then Exit Do

iCnt = iCnt + 1

If NOT IsEmpty(oCursor.PageDescName) Then

s = s & "Paragraph " & iCnt & " has a new page to style " & _

oCursor.PageDescName & CHR$(10)

oCursor.PageDescName = ""

End If

If oCursor.BreakType <> com.sun.star.style.BreakType.NONE Then

s = s & "Paragraph " & iCnt & " has a page break" & CHR$(10)

oCursor.BreakType = com.sun.star.style.BreakType.NONE

End If

Loop Until NOT oCursor.gotoNextParagraph(False)

MsgBox s

End Sub

    1. Установить стиль страницы в документе

Стиль страницы устанавливается при модификации имени Page Description. Это очень просто начать новую страницу.

Листинг 7.9.1:Установить стиль страницы для всего документа.

Sub SetDocumentPageStyle

Dim oCursor As Object

oCursor = ThisComponent.Text.createTextCursor()

oCursor.gotoStart(False)

oCursor.gotoEnd(True)

Print "Current style = " & oCursor.PageStyleName

oCursor.PageDescName = "Wow"

End Sub

    1. Включение и выключение верхних и нижних заголовков

Каждый верхний и нижний заголовок ассоциирован со стилем страницы. Это означает, что включать и выключать верхние и нижние заголовки нужно в стиле страницы. Следующий макрос включает или выключает верхний заголовок страницы по месту нахождения курсора. Таким образом будет включен или выключен верхний заголовок для каждой страницы, использующей этот стиль страницы.

Листинг 7.10.1:Включить или выключить верхний заголовок страницы

Sub HeaderOnAtCursor(oDoc, bHeaderState As boolean)

Dim oVC

Dim sName$

Dim oStyle

REM Получить стиль страницы, используемый по месту нахождения видимого курсора

sName = oDoc.getCurrentController().getViewCursor().PageStyleName

oStyle = oDoc.StyleFamilies.getByName("PageStyles").getByName(sName)

REM Use FooterIsOn to toggle the footer state.

If oStyle.HeaderIsOn <> bHeaderState Then

oStyle.HeaderIsOn = bHeaderState

End If

End Sub

Стиль страницы получен из списка стилей страниц. Атрибут HeaderIsOn ("верхний заголовок включен") переключается. Для переключения нижнего заголвка нужно использовать свойство FooterIsOn.

    1. Вставить ole-объект

Юмор в том, что для версии OpenOffice 1.1 следующий макрос вставит объект OLE в документ OOo Writer. Здесь CLSID может быть внешним OLE-объектом.

Листинг 7.11.1:Вставить объект OLE.

SName = "com.sun.star.text.TextEmbeddedObject"

obj = ThisComponent.createInstance(sName)

obj.CLSID = "47BBB4CB-CE4C-4E80-A591-42D9AE74950F"

obj.attach(ThisComponent.currentController().Selection.getByIndex(0))

Если выбирать встроенный в Writer объект, то можно получить доступ к API так:

oModel = ThisComponent.currentController().Selection.Model

Это предоставляет тот же интерфейс доступа к объекту, как если бы объект был создан путем загрузки документа с помощью loadComponentFromURL

Соседние файлы в папке ooo