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

См. мою статью о фонтах на Интернет-сайте

http://www.pitonyak.org/AndrewFontMacro.odt

Этот документ просматривает по очереди все фонты и печатает сведения о каждом с примерами.

    1. Установка фонта по умолчанию с использованием ConfigurationProvider

Чтобы изменить фонт по умолчанию, выполните следующий макрос и перезапустите OOo.

Листинг 5.5.1:Установка фонта по умолчанию с использованием ConfigurationProvider.

Author: Christian Junker

Sub DefaultFont_Change()

Dim nodeArgs(0) As New com.sun.star.beans.PropertyValue

Dim s$

REM Properties

nodeArgs(0).Name = "nodePath"

nodeArgs(0).Value = "org.openoffice.Office.Writer/DefaultFont"

nodeArgs(0).State = com.sun.star.beans.PropertyState.DEFAULT_VALUE

nodeArgs(0).Handle = -1 'no handle!

REM the required Config Services

s = "com.sun.star.comp.configuration.ConfigurationProvider"

Provider = createUnoService(s)

s = "com.sun.star.configuration.ConfigurationUpdateAccess"

UpdateAccess = Provider.createInstanceWithArguments(s, nodeArgs())

REM set your DefaultFont now..

UpdateAccess.Standard = "Arial"

UpdateAccess.Heading = "Arial"

UpdateAccess.List = "Arial"

UpdateAccess.Caption = "Arial"

UpdateAccess.Index = "Arial"

UpdateAccess.commitChanges()

End Sub

    1. Печать текущего документа

Листинг 5.6.1:Печать текущего документа.

'Author: Andrew Pitonyak

'email: andrew@pitonyak.org

Sub PrintCurrentDocument

Dim mPrintopts1(), x as Variant

'Dimensioned at 0, if you set any other properties,

'be certain to set this to a higher value....

Dim mPrintopts2(0) As New com.sun.star.beans.PropertyValue

Dim oDoc As Object, oPrinter As Object

oDoc = ThisComponent

'***********************************

'Do you want to choose a certain printer

'Dim mPrinter(0) As New com.sun.star.beans.PropertyValue

'mPrinter(0).Name="Name"

'mPrinter(0).value="Other printer"

'oDoc.Printer = mPrinter()

'***********************************

'To simply print the document do the following:

'oDoc.Print(mPrintopts1())

'***********************************

'To print pages 1-3, 7, and 9

'mPrintopts2(0).Name="Pages"

'mPrintopts2(0).Value="1-3; 7; 9"

'oDoc.Printer.PaperFormat=com.sun.star.view.PaperFormat.LETTER

'DisplayMethods(oDoc, "propr")

'DisplayMethods(oDoc, "")

oPrinter = oDoc.getPrinter()

MsgBox "Printers " & LBound(oPrinter) & " to " & UBound(oPrinter)

sMsg = ""

For n = LBound(oPrinter) To UBound(oPrinter)

sMsg = sMsg + oPrinter(n).Name + Chr(13)

Next n

MsgBox sMsg,0,"Print Settings"

'DisplayMethods(oPrinter, "propr")

'DisplayMethods(oPrinter, "")

'mPrintopts2(0).Name="PaperFormat"

'mPrintopts2(0).Value=com.sun.star.view.PaperFormat.LETTER

'oDoc.Print(mPrintopts2())

End Sub

      1. Печать текущей страницы

Листинг 5.6.1.1:Печатается только текущая страница.

Dim aPrintOps(0) As New com.sun.star.beans.PropertyValue

oDoc = ThisComponent

oVCurs = oDoc.CurrentController.getViewCursor()

aPrintOps(0).Name = "Pages"

aPrintOps(0).Value = trim(str(oVCurs.getPage()))

oDoc.print(aPrintOps())

      1. Другие параметны печати

Другой заслуживающий рассмотрения параметр - параметр Wait, значение которого устанавливается равным True. Это вызывает синхронную печать и выход из процедуры не происходит до тех пор, пока печать не закончена. Это устраняет необходимость перехватывать события конца печати; предполагается, что Вы хотели бы все же использовать такой перехватчик (listener) события. Заметьте, что имя Вашего принтера может потребоваться заключить в угловые скобки < > , а может и не потребоваться. Кажется, это было связано с сетевыми принтерами, но с тех пор могло измениться.

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