InDesignのlayerについてのサンプルコード

 github: 05_character.py

from appscript import *


def add_CYMK_color(doc, values: list, name: str):
    # add a CMYK color to document
    return doc.make(new=k.color,
                    with_properties={
                        k.model: k.process,
                        k.space: k.CMYK,
                        k.color_value: values,
                        k.name: name
                    })


indd = app("Adobe InDesign CC 2019")
doc = indd.make(new=k.document)
page = doc.pages[1]
tf = page.make(new=k.text_frame,
               with_properties={
                   k.contents: "DEFGHIJKLMNOPQRSTUVWXYZ",
                   k.geometric_bounds: [20, 20, 40, 85]
               })

# 先頭に文字を追加
tf.insertion_points[1].contents.set("ABC\r")

characters = tf.characters

# 文字サイズを設定
characters[1].point_size.set("20 pt")  # point
characters[2].point_size.set("40 pt")
characters[3].point_size.set("40 Q")  # quarter

# CMYK色を追加
red_color = add_CYMK_color(doc, [0, 100, 100, 0], "red")
orange_color = add_CYMK_color(doc, [0, 80, 100, 0], "orange")
# 既存の色を
cyan_color = doc.swatches["C=100 M=0 Y=0 K=0"]

# 文字に塗り(色)追加
characters[2].fill_color.set(red_color)
characters[3].fill_color.set(orange_color)

# font
fonts = indd.fonts  # list all fonts
# for font in fonts():
#     print(font.name.get())
# フォントを適用
Arial_font = fonts['Arial\tRegular']
characters[2].applied_font.set(Arial_font)

# 長体、平体をかける
characters[2].properties_.set({
    k.horizontal_scale: 80,
    k.vertical_scale: 150
})

# 線、線色を適用
characters[2].stroke_color.set(cyan_color)
characters[2].stroke_weight.set("0.5mm")

# 下線を追加
characters[3].properties_.set({
    k.underline: True,
    k.underline_color: "Black"})

# アウトラインを作成
tf2 = page.make(new=k.text_frame,
                with_properties={
                    k.contents: "test " * 5,
                    k.geometric_bounds: [50, 20, 60, 85]
                })
# textFrame全体をアウトライン化
# tf2.create_outlines(tf2, delete_original=True)
# 6番目の文字のみアウトライン化
tf2.create_outlines(tf2.characters[6], delete_original=True)
# 8-9番目の文字をアウトライン化。space,Tab,改行などの特殊(制御)文字が存在する場合、エラー!
tf2.create_outlines(tf2.characters[8:9], delete_original=True)