github:09_graphic.py


 

from appscript import *


indd = app("Adobe InDesign 2022")
doc = indd.make(new=k.document)
page1 = doc.pages[1]

# 長方形フレームツールを追加
rectangle = page1.make(new=k.rectangle,
                       with_properties={
                           k.geometric_bounds: [20, 20, 100, 100],
                           k.stroke_weight: 0.5
                       })
print(rectangle.class_())  # k.rectangle

# 画像パス:フルパスのみ有効
img = "/Users/***/Desktop/test.png"
# img = "/Users/***/Desktop/test.pdf" # pdfもOK

# 画像を配置
# rectangle.place(img)  # Error!
rectangle.place(mactypes.Alias(img))
# rectangle.place(mactypes.File(img))  # OK

# オブジェクトサイズを調整
rectangle.fit(given=k.proportionally) # 内容を縦横比率に応じて合わせる

# 画像の透明度
rectangle.transparency_settings.blending_settings.opacity.set(80)

# フレーム/画像を回転
# rectangle.rotation_angle.set(-45)  # rotate rectangle
# rectangle.graphics[1].rotation_angle.set(-45)  # rotate 1st graphic

# リンク画像のパスを取得:コロン区切り
file_path = rectangle.graphics[1].item_link.file_path.get()
print("file_path: ", file_path)  # Macintosh HD:Users:***:Desktop:test.png

# リンク画像所属のレイヤ名を取得
layer_name = rectangle.graphics[1].item_layer.name.get()
print("layer_name: ", layer_name)  # レイヤー 1/Layer 1


# キャプション(画像パス)を画像の下側に追加
b = rectangle.visible_bounds.get()
bounds = [b[2], b[1], b[2] + 10, b[3]]
page1.make(new=k.text_frame,
           with_properties={
               k.visible_bounds: bounds,
               k.contents: file_path
           })

# QRコードを追加
rectangle2 = page1.make(new=k.rectangle,
                        with_properties={
                            k.geometric_bounds: [20, 120, 50, 150],  # w=h=30
                            k.fill_color: "Paper",
                            k.stroke_color: "None",
                            k.stroke_weight: 0,
                        })
rectangle2.Create_Plain_Text_QR_Code(plain_text="https://www.autodtp.app")