Если есть вопросы по скриптам

  • Автор темы Автор темы Oleg Butrin
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Ответ: Если есть вопросы по скриптам

И как в таком случае должен выглядеть код?
 
Ответ: Если есть вопросы по скриптам

PHP:
selText = ... // ссылка на выделенный текст
targetTF = ... // целевой текстовый фрейм, получаете ссылку на него или создаете 
selText.move(LocationOptions.atBeginning, targetTF.insertionPoints.item(0)); // в начало фрейма
// или перед последней строкой вычислить нужную insertionPoints
 
Ответ: Если есть вопросы по скриптам


Не по теме:
CODE, учту
 
Ответ: Если есть вопросы по скриптам

вопрос: можно ли сохранить каждую страницу документа в отдельный файл?
 
Ответ: Если есть вопросы по скриптам

Доброго дня. Помогите пожалуйста. Нужен очень простой скрипт "выравнивания относительно margins".
Задача:
выровнять объект относительно левой нижней границы margins со смещением 4мм влево и 4мм вниз (рис. см. ниже)

primer.PNG
 
Ответ: Если есть вопросы по скриптам

Можн о.
Можн о -2.

спасибо!
(примечание :скрипы работают на cs4 , если кому тоже понадоится)


вопрос 2: есть задача. нужно поместить обьект(в кривых) в конце каждой строки таблицы.
поэтому вопросы такие:
как сделать копию обьекта и поместит в определенном месте.
и как узнать координаты ячейки таблицы.
(в документации почему то ненашел таких "параметров координат" ни у таблицы, ни у ячейки.. или не там искал )
 
Ответ: Если есть вопросы по скриптам

Поместить объект в конце каждой строки таблицы - не ясно, в колонку таблицы помещается объект, или нет.
Как сделать копию объекта - смотрите метод dublicate.
Координаты ячейки таблицы можно узнать через координаты insertionPoints[0] в ячейке.
 
Ответ: Если есть вопросы по скриптам

Поместить объект в конце каждой строки таблицы - не ясно, в колонку таблицы помещается объект, или нет.
Как сделать копию объекта - смотрите метод dublicate.
Координаты ячейки таблицы можно узнать через координаты insertionPoints[0] в ячейке.

почти уже начинаю разбираться, скрипт сделал.
нашел сам dublicate.координаты вычислял через родителя таблицы - текстового фрейма. (у него есть geometricBounds) хотя наверно не всегда поможет когда есть две таблицы внутри текстового фрейма.

вопрос еще вот какой. можно ли как то узнать какой странице принадлежит обьект
(если идти вниз по parent то приходим к какому то Spread а не к page...)
 
Ответ: Если есть вопросы по скриптам

Для InDesign CS4 Harbs приводил такую ф-цию
Код:
function findPage(theObj) { 
    var thePage = theObj; 
    if (thePage.hasOwnProperty("baseline")) { 
      thePage = thePage.parentTextFrames[0]; 
    } 
    while (thePage.constructor.name != "Page") { 
      var whatIsIt = thePage.constructor.name; 
      switch (whatIsIt) { 
        case "Story" : 
          thePage = thePage.textFrames[-1].parent; 
          break; 
        case  "Character" : 
          thePage = thePage.parentTextFrames[0]; 
          break; 
        case "Cell" : 
          try { 
            thePage = thePage.insertionPoints[0].parentTextFrames[0]; 
            break; 
          } catch (e) { 
            // must be overset, so ignore 
            return null; 
          } 
        case "Application" : 
          // must be off page, so ignore 
          return null; 
      } 
      thePage = thePage.parent; 
    } 
    return thePage 
  }
В CS5 поменялась иерархия объектов и это вряд ли будет работать. Существует версия этой ф-ции и для CS5, надо поискать. Или, разобравшись, подправить эту. Товарищи спрашивающие! Всегда пишите какая у вас версия Индизайна! Это важно!
 
Ответ: Если есть вопросы по скриптам

вопрос еще вот какой. можно ли как то узнать какой странице принадлежит обьект
(если идти вниз по parent то приходим к какому то Spread а не к page...)

Код:
app.selection[0].parentPage.name

Подойдет?
 
Ответ: Если есть вопросы по скриптам

Код:
app.selection[0].parentPage.name

Подойдет?

подходит.

но я пошел от обратного ) и стал проверять этот spread (оказалось, что spread это развороты)
myTable.parent.parent.id == app.activeWindow.activeSpread.id

продолжаю изучение.
хочу трансформировать прямоугольник (с фото внутри) но geometricBounds почему то не работает на нем...
transform вроде как только scale делает и точные величины ввести нельзя...
как задать точные размеры прямоугольнику?
 
Ответ: Если есть вопросы по скриптам

geometricBounds почему то не работает на нем...
Должен сработать ))
Если бы Вы показали пример, как Вы это делали, разговор был бы более предметным, а так — один из вариантов:
Код:
var myGB = myRectangle.geometricBounds;
myRectangle.geometricBounds = [myGB[0], myGB[1], myGB[0]+myHeight, myGB[1]+myWidth];
где myHeight — высота прямоугольника;
myWidth — ширина.
Обратите внимание, что при таком задании параметров поменяются размеры только прямоугольника. Содержимое размеры не поменяет.
 
Ответ: Если есть вопросы по скриптам

да. работает.. странно, видимо был глюк.
я писал так app.selection[0].geometricBounds =[10,20,30,40];
ошибка была чтото типо "не может определить рамку".
---
использую русский cs5
 
Ответ: Если есть вопросы по скриптам

пытаюсь автоматизировать сохранение в pdf всех файлов из папки. как узнать имя файла (без расширения!) и текущую папку что бы сохранилось в ту же что и сам файл.
 
Ответ: Если есть вопросы по скриптам

Да хоть бы и так:
Код:
app.activeDocument.filePath

var myDocName = app.activeDocument.name;
var myDocOnlyName = myDocName.substr(0,myDocName.length-5);
 
Ответ: Если есть вопросы по скриптам

мда. чем дальше изучаю скрипты, тем больше понимаю, что сделано все не для людей) приходится все чтото выдумывать
 
Ответ: Если есть вопросы по скриптам

еще довольно необычный вопрос. есть прямоугольник. в окне видно только его часть. можно ли как то узнать какие вершины показываются, а какие за краями окна(те которые невидно).
 
Ответ: Если есть вопросы по скриптам

Всем добрый день!

Совсем недавно начал разбираться со скриптами, поэтому прошу проявить снисхождение, если вопрос окажется глупым. Но я уже три дня не могу найти на него ответ.

Есть задача: нужно создать MultiState об"ект, имеющий два состояния, в каждом - один и тот же фрейм с картинкой, но в разном масштабе. Переключаться состояния должны нажатием на саму картинку. В ИнДизайне всё делается очень просто и красиво, но таких об"ектов ожидается несколько сотен.

Написал скрипт (JavaScript), который создаёт документ, импортирует изображение, создает MultiState, подгоняет размеры фреймов и их взаимное расположение. Проблема с кнопками. Подскажите, пожалуйста, как сделать уже существующие фреймы кнопками для переключения между состояниями? Версия InDesign CS5.5.
 
Статус
Закрыто для дальнейших ответов.