[ID CS4-CS6] как удалить textframe

Статус
Закрыто для дальнейших ответов.

KostyaSA

Участник
Топикстартер
Сообщения
78
Реакции
17
доброго времени суток! давненько меня здесь не было....
Пишу скрипт и решил на определенном этапе удалять текстовые фреймы, но почему-то не выходит. Программа видит textframe, видит contents, видит id, даже делает select в индизайне, но сам textframe удалить не может, конечно можно записать contents = "", но мне уж очень хочется сделать именно remove. Пишу на python через win32com, InDesign 5.5, может кто-нибудь знает как правильно построить строку кода, заранее спасибо!
Код:
def getTypeById(id):
  return app.DoScript('app.activeDocument.pageItems.itemByID(%s).getElements()[0].constructor.name;' % id,1246973031)

app = win32com.client.dynamic.Dispatch('Indesign.Application.CS5.5')
doc = app.ActiveDocument
ti = doc.Pages(1).pageItems
for cti in ti:
        if getTypeById(cti.id) == 'TextFrame':
                print cti.contents
                print cti.id
                print cti.select

# верхняя часть кода работает, а следующая строка нет, пишет что объект cti не имеет атрибута remove, хотя в документации он есть: 
void remove ()
Deletes the TextFrame.
               
                cti.remove
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
все правильно пишет, атрибута такого нет. есть метод
 

Oleg Butrin

20 лет на форуме
Сообщения
1 990
Реакции
1 213
Нет ни такого атрибута, ни такого метода.

Через win32com получаем комплект объектов, свойств и методов, аналогичный VB. Поэтому для удаления объекта надо вызывать:
Код:
cti.Delete()

Сверяться можно здесь: https://www.adobe.com/content/dam/A...esignScripting/InDesign-ScriptingGuide-VB.pdf


Не по теме:
Я сам баловался пристегиванием Питона к InDesign некоторое время назад. Полезно, но в узком диапазоне задач. Например, довольно просто для версий до CS6 включительно сделать сервис, превращающий обычную версию ID в подобие InDesign Server.
 
  • Спасибо
Реакции: KostyaSA

KostyaSA

Участник
Топикстартер
Сообщения
78
Реакции
17

Oleg Butrin
за delete спасибо - работает без скобок ... и за ссылку спасибо!
 
Статус
Закрыто для дальнейших ответов.