Помощ за LibreOffice 25.2
Услугата ScriptForge предоставя съвкупност от методи на LibreOffice Basic за изпълнение в контекст на Python. Методите на услугата Basic възпроизвеждат точния синтаксис и поведение на вградените функции на Basic.
Типичен пример:
   bas.MsgBox('Показване на този текст от скрипт на Python')
  Услугата ScriptForge.Basic е ограничена до скриптове на Python.
Преди да използвате услугата Basic, импортирайте метода CreateScriptService() от модула scriptforge:
    from scriptforge import CreateScriptService
    bas = CreateScriptService("Basic")
  | Име | Само за четене | Тип | Описание | 
|---|---|---|---|
| MB_OK, MB_OKCANCEL, MB_RETRYCANCEL, MB_YESNO, MB_YESNOCANCEL | Да | Integer | Стойности: 0, 1, 5, 4, 3 | 
| MB_ICONEXCLAMATION, MB_ICONINFORMATION, MB_ICONQUESTION, MB_ICONSTOP | Да | Integer | Стойности: 48, 64, 32, 16 | 
| MB_ABORTRETRYIGNORE, MB_DEFBUTTON1, MB_DEFBUTTON2, MB_DEFBUTTON3 | Да | Integer | Стойности: 2, 128, 256, 512 | 
| IDABORT, IDCANCEL, IDIGNORE, IDNO, IDOK, IDRETRY, IDYES | Да | Integer | Стойности: 3, 2, 5, 7, 1, 4, 6 | 
| StarDesktop | Да | UNO | Връща обекта StarDesktop, който представя приложението LibreOffice. | 
| ThisComponent | Да | UNO | Ако текущият компонент съответства на документ на LibreOffice, този метод връща UNO обекта, представящ документа. Това свойство връща None, когато текущият компонент не съответства на документ. | 
| ThisDatabaseDocument | Да | UNO | Ако скриптът се изпълнява от документ на Base или някой от поддокументите му, този метод връща главния компонент на екземпляра на Base. В противен случай това свойство връща None. | 
Преобразува числов израз или низ към вътрешен обект datetime.datetime на Python.
Този метод излага вградената функция на Basic CDate към скриптове на Python.
svc.CDate(expression: any): obj
expression: числов израз или низ, представящ дата.
    d = bas.CDate(1000.25)
    bas.MsgBox(str(d)) # 1902-09-26 06:00:00
    bas.MsgBox(d.year) # 1902
  Преобразува представяне на дата/час на UNO към вътрешен обект datetime.datetime на Python.
svc.CDateFromUnoDateTime(unodate: uno): obj
unodate: обект за дата/час на UNO от някой от следните типове: com.sun.star.util.DateTime, com.sun.star.util.Date или com.sun.star.util.Time.
Следващият пример създава обект от типа com.sun.star.util.DateTime и го преобразува към обект datetime.datetime на Python.
    uno_date = bas.CreateUnoStruct('com.sun.star.util.DateTime')
    uno_date.Year = 1983
    uno_date.Month = 2
    uno_date.Day = 23
    new_date = bas.CDateFromUnoDateTime(uno_date)
    bas.MsgBox(str(new_date)) # 1983-02-23 00:00:00
  Преобразува представяне на дата в обект com.sun.star.util.DateTime.
svc.CDateToUnoDateTime(date: obj): uno
date: обект за дата/час на Python от някой от следните типове: datetime.datetime, datetime.date, datetime.time, float (time.time) или time.struct_time.
    from datetime import datetime
    current_datetime = datetime.now()
    uno_date = bas.CDateToUnoDateTime(current_datetime)
    bas.MsgBox(str(uno_date.Year) + "-" + str(uno_date.Month) + "-" + str(uno_date.Day))
  Връща системен път на файл за дадения URL от тип file:.
svc.ConvertFromUrl(url: str): str
url: абсолютен URL от типа file:.
Системно файлово име с път.
    filename = bas.ConvertFromUrl( "file:///C:/Program%20Files%20(x86)/LibreOffice/News.txt")
    bas.MsgBox(filename)
  Връща URL адрес от типа file: за дадения системен път.
svc.ConvertToUrl(systempath: str): str
systempath: системно име на файл като низ.
URL от типа file: като низ.
    url = bas.ConvertToUrl( 'C:\Program Files(x86)\LibreOffice\News.txt')
    bas.MsgBox(url)
  Връща екземпляр на UNO услуга от ProcessServiceManager.
svc.CreateUnoService(servicename: str): uno
servicename: напълно квалифицирано име на услуга, като com.sun.star.ui.dialogs.FilePicker или com.sun.star.sheet.FunctionAccess.
    dsk = bas.CreateUnoService('com.sun.star.frame.Desktop')
  Връща екземпляр на UNO структура от указания тип.
svc.CreateUnoStruct(unostructure: str): uno
unostructure: напълно квалифицирано име на структура, като com.sun.star.beans.Property или com.sun.star.util.DateTime.
    date_struct = CreateUnoStruct('com.sun.star.util.DateTime')
  Добавя период от дати или часове към дадена дата/час определен брой пъти и връща получената дата.
svc.DateAdd(interval: str, number: num, date: datetime): datetime
interval: низова стойност от долната таблица, задаваща периода от дати или часове.
number: числов израз, задаващ колко пъти да се добави (ако е положителен) или извади (ако е отрицателен) стойността interval.
date: дадена стойност от тип datetime.datetime; стойността interval ще бъде добавена number пъти към тази стойност datetime.datetime.
Стойност от типа datetime.datetime.
    dt = datetime.datetime(2004, 1, 31)
    dt = bas.DateAdd("m", 1, dt)
    print(dt)
  Връща броя периоди от дати или часове между две зададени стойности – дати/часове.
svc.DateDiff(interval: str, date1: datetime, date2: datetime, firstdayofweek = 1, firstweekofyear = 1): int
interval: низов израз, указващ интервала от дати, както е описано по-горе за метода DateAdd.
date1, date2: двете стойности от типа datetime.datetime, които да бъдат сравнени.
Число.
    date1 = datetime.datetime(2005,1, 1)
    date2 = datetime.datetime(2005,12,31)
    diffDays = bas.DateDiff('d', date1, date2)
    print(diffDays)
  Функцията DatePart връща зададена част от дата.
svc.DatePart(interval: str, date: datetime, firstdayofweek = 1, firstweekofyear = 1): int
interval: низов израз, указващ интервала от дати, както е описано по-горе за метода DateAdd.
date: датата/часът, от който трябва да се изчисли резултатът.
firstdayofweek, firstweekofyear: незадължителни параметри, указващи съответно началния ден на седмицата и началната седмица на годината, както е описано по-горе за метода DateDiff.
Извличаната част на дадената дата/час.
    print(bas.DatePart("ww", datetime.datetime(2005,12,31)
    print(bas.DatePart('q', datetime.datetime(1999,12,30)
  Изчислява стойност дата от низ с дата.
svc.DateValue(date: str): datetime
Изчислената дата.
    dt = bas.DateValue("23-02-2011")
    print(dt)
  Преобразува число в низ и го форматира по зададен от вас начин.
svc.Format(expression: any, format = ''): str
    txt = bas.Format(6328.2, '##.##0.00')
    print(txt)
  Връща подразбирания контекст на фабриката за услуги на процеса, ако съществува, и null в противен случай.
GetDefaultContext е алтернатива на метода getComponentContext(), достъпен от глобалната променлива XSCRIPTCONTEXT или модула uno.py.
svc.GetDefaultContext(): uno
Когато се получават екземпляри на услуги от XMultiServiceFactory, се използва подразбираният контекст на компонент. За повече информация вижте главата Professional UNO в ръководството за разработчици (Developer’s Guide) на адрес api.libreoffice.org (на английски).
    ctx = bas.GetDefaultContext()
  Връща числова стойност, която показва вида на графичния потребителски интерфейс. Тази функция се предлага само за съвместимост назад с предишни версии.
Вижте метода system() от модула platform на Python, ако искате да идентифицирате операционната система.
svc.GetGuiType(): int
    n = bas.GetGuiType()
  Връща зависимия от системата разделител за директории, с чиято помощ се задават файлови пътища.
Използвайте os.pathsep от модула os на Python, за да установите какъв е разделителят за пътища.
svc.GetPathSeparator(): str
    sep = bas.GetPathSeparator()
  Връща броя системни тактове, предоставен от операционната система. С помощта на тази функция можете да оптимизирате определени процеси. Използвайте този метод, за да оценявате време в милисекунди:
svc.GetSystemTicks(): int
    ticks_ini = bas.GetSystemTicks()
    time.sleep(1)
    ticks_end = bas.GetSystemTicks()
    bas.MsgBox("{} - {} = {}".format(ticks_end, ticks_ini,ticks_end - ticks_ini))
  Връща UNO обекта, съдържащ всички споделени библиотеки и модули на Basic.
Този метод е еквивалентът в Python на GlobalScope.BasicLibraries в скриптовете на Basic.
svc.GlobalScope.BasicLibraries(): uno
com.sun.star.script.XLibraryContainer
Следващият пример зарежда библиотеката на Basic Gimmicks, ако все още не е заредена.
    libs = bas.GlobalScope.BasicLibraries()
    if not libs.isLibraryLoaded("Gimmicks"):
        libs.loadLibrary("Gimmicks")
  Връща UNO обекта, съдържащ всички споделени библиотеки с диалози.
Този метод е еквивалентът в Python на GlobalScope.DialogLibraries в скриптовете на Basic.
svc.GlobalScope.DialogLibraries(): uno
com.sun.star.comp.sfx2.DialogLibraryContainer
Следващият пример показва диалогов прозорец за съобщение с имената на всички налични библиотеки с диалози.
    dlg_libs = bas.GlobalScope.DialogLibraries()
    lib_names = dlg_libs.getElementNames()
    bas.MsgBox("\n".join(lib_names))
  svc.InputBox(prompt: str, [title: str], [default: str], [xpostwips: int, ypostwips: int]): str
String
    txt = s.InputBox('Моля, въведете фраза:', "Драги потребителю")
    s.MsgBox(txt, s.MB_ICONINFORMATION, "Потвърждение на фразата")
  За подробна информация, моля, вижте Input/Output to Screen with Python в уикито (на английски).
Показва диалогов прозорец, който съдържа съобщение, и връща стойност по желание.
Константите MB_xx ви помагат да изберете типа на диалога, броя и типа на показваните бутони и типа на иконата. Чрез събирането на съответните им стойности се формират шаблони от битове, които определят облика на диалога на MsgBox.
bas.MsgBox(prompt: str, [buttons: int], [title: str])[: int]
Незадължително цяло число, както е описано по-горе за свойствата IDxx.
Връща текущата системна дата и час като вътрешен обект datetime.datetime на Python.
svc.Now(): datetime
    bas.MsgBox(bas.Now(), bas.MB_OK, "Now")
  Връща целочислена стойност за цвят, съставена от червен, зелен и син компонент.
svc.RGB(red:int, green: int, blue: int): int
Integer
    YELLOW = bas.RGB(255,255,0)
  Инспектиране на UNO обекти или променливи.
svc.Xray(obj: any)
obj: променлива или UNO обект.
    bas.Xray(bas.StarDesktop)