Python - Writer - Macro - string_style

Автор EvgeX, 12 января 2012, 09:50

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

EvgeX

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

"""""""""""""""
PythonWriterRUS
string_style.py
18.01.12  EvgeX
"""""""""""""""

def strStyle():
    doc = XSCRIPTCONTEXT.getDocument()
    text = doc.Text
    cursor = text.createTextCursor()
# подключаемые библиотеки
    import locale, time, datetime
# русский язык для названия месяца и дня недели в Windows
    locale.setlocale(locale.LC_TIME, 'RUS')
# текущее время и дата
    now = datetime.datetime.now()
# если фрагмент кода повторяется более двух раз, то
# имеет смысл создать переменную, когда это возможно

    tis = text.insertString; sft = now.strftime
# для указания стиля не требуется подключать библиотеку
    cursor.ParaStyleName = "Заголовок 1"; tis( cursor, sft("Сегодня - %d.%m.%Y г.\r"), 0)
    cursor.ParaStyleName = "Заголовок 2"; tis( cursor, sft("Месяц по-русски - %B\r"), 0)
    cursor.ParaStyleName = "Заголовок 10"; tis( cursor, sft("Месяц сокращенно - %b\r"), 0)
    cursor.ParaStyleName = "Базовый"; tis( cursor, sft("Номер дня года - %j\r"), 0)
    cursor.ParaStyleName = "Standard"; tis( cursor, sft("Номер недели года - %W\r"), 0)
    cursor.ParaStyleName = "Heading 10"; tis( cursor, sft("День недели сокращенно - %a\r"), 0)
    cursor.ParaStyleName = "Heading 2"; tis( cursor, sft("День недели по-русски - %A\r"), 0)
    cursor.ParaStyleName = "Heading 1"; tis( cursor, sft("Время - %X\r"), 0)
   
'''http://www.macro-doc.narod.ru'''   

EvgeX

#1
# КОПИРУЙТЕ ОТ СИХ
'''Макрос вставляет текст в положение курсора.'''
"""""""""""""""
PythonWriterRUS
string_style.py
29.01.12  EvgeX
"""""""""""""""

def string_style():
  # подключаемые библиотеки
    import locale, time, datetime
# русский язык для названия месяца и дня недели в Windows
    locale.setlocale(locale.LC_TIME, 'RUS')
  # текущее время и дата
    now = datetime.datetime.now(); sft = now.strftime
  # текст написан с помощью шести функций
    _h1("\r Шесть видов текста на Python\r")
    _sr("\t Перед скобками пишем имя функции,\n"
    "внутри скобок можно размещать не только текст,\n"
    "но и другие функции, в этом примере функции даты.\r")
    _sb("Cтроку и все знаки заключаем в кавычки,\n"
    "в начале строки ставим знаки табуляции (отступы),\n"
    "а в конце строки обязательный знак перевода каретки.\r")
    _h2(sft("Сегодня - %d.%m.%Y г.\r"))
    _h1(sft("Месяц по-русски - %B\r"))
    _hb(sft("Месяц сокращенно - %b\r "))
    _hb(" Номер дня года - "); _ha(sft("%j"))             # два цвета
    _hb("\t Номер недели года - "); _ha(sft("%W\r"))  # одного стиля
    _ha(sft("День недели сокращенно - %a\r"))
    _h1(sft("День недели по-русски - %A\r"))
    _h2(sft("Время - %X\r"))

# Далее шесть похожих функций, создают шесть различных видов текста,
# настраивайте одинаковое количество параметров во всех функциях,
# с помощью имеющихся параметров, можно создать строки любого вида.
# Имена функций основываются на названиях стилей и цвете текста.


def _h1(Text): # Heading 1
    doc = XSCRIPTCONTEXT.getDocument().getCurrentController().getSelection().getByIndex(0)
    text = doc.Text.getText(); cursor = text.createTextCursorByRange(doc)
    cursor.ParaStyleName = "Heading 1"
# дополнительное форматирование текста можно закомментировать полностью или частично
    cursor.setPropertyValue("ParaAdjust", 3)                     # 0-Left; 1-Right; 3-Center 
    cursor.setPropertyValue("CharColor", 0x800000)            # цвет текста
    cursor.setPropertyValue("CharHeight", 18)                    # высота букв
    cursor.setPropertyValue("CharWeight", 150)                  # тонкий - 50% или жирный - 200%
    cursor.setPropertyValue("CharPosture", 0)                    # обычный - 0, курсив  - 2
    cursor.setPropertyValue("CharFontName", "Segoe Print") # имя шрифта
    cursor.setPropertyValue("CharContoured", True)            # обычный - False, контур  - True
    cursor.setPropertyValue("CharShadowed", True)            # обычный - False, с тенью - True
    cursor.setString(Text)                                              # эта строка всегда последняя
   
def _h2(Text): # Heading 2
    doc = XSCRIPTCONTEXT.getDocument().getCurrentController().getSelection().getByIndex(0)
    text = doc.Text.getText(); cursor = text.createTextCursorByRange(doc)
    cursor.ParaStyleName = "Heading 2"
# дополнительное форматирование текста можно закомментировать полностью или частично
    cursor.setPropertyValue("ParaAdjust", 3)
    cursor.setPropertyValue("CharColor", 0x999900 )
    cursor.setPropertyValue("CharHeight", 16)
    cursor.setPropertyValue("CharWeight", 120)
    cursor.setPropertyValue("CharPosture", 2)
    cursor.setPropertyValue("CharFontName", "Constantia")
    cursor.setPropertyValue("CharContoured", False)
    cursor.setPropertyValue("CharShadowed", False)
    cursor.setString(Text)
   
def _ha(Text): # Heading 10
    doc = XSCRIPTCONTEXT.getDocument().getCurrentController().getSelection().getByIndex(0)
    text = doc.Text.getText(); cursor = text.createTextCursorByRange(doc)
    cursor.ParaStyleName = "Heading 10";
# дополнительное форматирование текста можно закомментировать полностью или частично
    cursor.setPropertyValue("ParaAdjust", 3)
    cursor.setPropertyValue("CharColor", 0x990099 )
    cursor.setPropertyValue("CharHeight", 14)
    cursor.setPropertyValue("CharWeight", 120)
    cursor.setPropertyValue("CharPosture", 0)
    cursor.setPropertyValue("CharFontName", "Segoe Print")
    cursor.setPropertyValue("CharContoured", True)
    cursor.setPropertyValue("CharShadowed", True)
    cursor.setString(Text)
   
def _hb(Text): # _ha blue
    doc = XSCRIPTCONTEXT.getDocument().getCurrentController().getSelection().getByIndex(0)
    text = doc.Text.getText(); cursor = text.createTextCursorByRange(doc)
    cursor.ParaStyleName = "Heading 10";
# дополнительное форматирование текста можно закомментировать полностью или частично
    cursor.setPropertyValue("ParaAdjust", 3)
    cursor.setPropertyValue("CharColor", 0x000080 )
    cursor.setPropertyValue("CharHeight", 14)
    cursor.setPropertyValue("CharWeight", 120)
    cursor.setPropertyValue("CharPosture", 0)
    cursor.setPropertyValue("CharFontName", "Segoe Print")
    cursor.setPropertyValue("CharContoured", False)
    cursor.setPropertyValue("CharShadowed", False)
    cursor.setString(Text)
   
def _sr(Text): # Standard red
    doc = XSCRIPTCONTEXT.getDocument().getCurrentController().getSelection().getByIndex(0)
    text = doc.Text.getText(); cursor = text.createTextCursorByRange(doc)
    cursor.ParaStyleName = "Standard"
# дополнительное форматирование текста можно закомментировать полностью или частично
    cursor.setPropertyValue("ParaAdjust", 0)
    cursor.setPropertyValue("CharColor", 0xF00000 )
    cursor.setPropertyValue("CharHeight", 12)
    cursor.setPropertyValue("CharWeight", 100)
    cursor.setPropertyValue("CharPosture", 0)
    cursor.setPropertyValue("CharFontName", "Constantia")
    cursor.setPropertyValue("CharContoured", False)
    cursor.setPropertyValue("CharShadowed", True)
    cursor.setString(Text)
   
def _sb(Text): # Standard blue
    doc = XSCRIPTCONTEXT.getDocument().getCurrentController().getSelection().getByIndex(0)
    text = doc.Text.getText(); cursor = text.createTextCursorByRange(doc)
    cursor.ParaStyleName = "Standard"
  # дополнительное форматирование текста можно закомментировать полностью или частично
    cursor.setPropertyValue("ParaAdjust", 1)
    cursor.setPropertyValue("CharColor", 0x000080 )
    cursor.setPropertyValue("CharHeight", 12)
    cursor.setPropertyValue("CharWeight", 100)
    cursor.setPropertyValue("CharPosture", 2)
    cursor.setPropertyValue("CharFontName", "Constantia")
    cursor.setPropertyValue("CharContoured", True)
    cursor.setPropertyValue("CharShadowed", True)
    cursor.setString(Text)
   
g_exportedScripts = string_style, # название только этой функции увидим в "Моих макросах"

# И ДО СИХ, ПОЛНОСТЬЮ.

'''http://www.macro-doc.narod.ru'''