LibreOffice 팔레트의 ptyhon 스크립트 만들기
11113 단어 Python3LibreOffice
MSPowerPoint에서 Libre Office Impress로 옮기려는 시도는 몇 가지 불만이 있습니다.
불만 중 하나는 팔레트 제작이 귀찮다는 것이다.
본고는 팔레트가python 스크립트를 만드는 예를 소개했다.
컨디션
그런 다음 팔레트가 가능하므로 LibreOffice에서 호출하여 사용합니다.
get_color_pallete.py
import getpass
import colour # pip install colour
USERNAME = getpass.getuser()
PALLETE_PATH = "/home/"+ USERNAME + "/.config/libreoffice/4/user/config/"
# 出来上がったカラーパレットの置き場所
### xmlのフッター・ヘッター ###
HEADER = """<?xml version="1.0" encoding="UTF-8"?>
<ooo:color-table xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:ooo="http://openoffice.org/2004/office"
>\n"""
FOOTER = "</ooo:color-table>"
### xmlのフッター・ヘッターここまで ###
pallete_name = "mytheme" # office側で表示されるパレット名
color_dir = { # 色をここに記載する
"00_fg_color": "#fefefe",
"01_bg_color": "#303030",
"10_main_bright": "#80F2E8",
"11_main_normal": "#26A69A",
"12_main_dark": "#1A736B",
"20_accent_bright": "#f68880",
"21_accent_normal": "#F44336",
"22_accent_dark": "#612925",
}
def adjust_hue(c_base): # オリジナルの色から明度を調節して6色作って(パワポみたいに)リストを返す
c_list = []
c_luminance = c_base.luminance
for i in range(3, 0, -1):
c_new = colour.Color(c_base.hex)
c_new.luminance = c_luminance + (1. - c_luminance) * (i / 4.)
c_list.append(colour.Color(c_new.hex).hex_l)
for i in range(1, 4):
c_new = colour.Color(c_base.hex)
c_new.luminance = c_luminance - c_luminance * (i / 4.)
c_list.append(colour.Color(c_new.hex).hex_l)
return c_list
def get_color_sequence(c_hex): # オリジナルの色を含む12個分の色のリストを返す
c_base = colour.Color(c_hex)
c_list = [c_base.hex_l]
for i in range(5):
c_list.append(c_base.hex_l)
c_list += adjust_hue(c_base)
return c_list
def pallet_color_setting_in_xml(c_name, c):
return "<draw:color draw:name=\"" + c_name + "\" draw:color=\"" + c + "\"/>\n"
f = open(PALLETE_PATH + pallete_name + ".soc", "w")
f.write(HEADER)
for c_name in sorted(color_dir.keys()):
c_list = get_color_sequence(color_dir[c_name])
for i, c in enumerate(c_list):
f.write(pallet_color_setting_in_xml(c_name + str(i), c))
f.write(FOOTER)
f.close()
참고 자료Reference
이 문제에 관하여(LibreOffice 팔레트의 ptyhon 스크립트 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Kgm1500/items/53f8484c86c6af8ac483텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)