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")