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

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

Добрый день.

Вопрос по блидам из PDF решен. Всем спасибо.
 
Ответ: Если есть вопросы по скриптам

Подскажите пожалуста как перевести время на 2 часа назад или вперед. Используя для этого функцию GREP т.е. надо получается найденный текст перевести в число добавить значение и снова преобразовать в текст.
Поиск делаю так:
myFV[0] = '(\\d{2})([.]\\d{2})';
получается надо найденное значение $1 объявить числом прибавить 2 и преобразовать обратно в строку.
При этом надо будет сделать проверку на полученное значение если значение меньше 10 то добавить 0 впереди. Ну это через if сделать можно.
 
Ответ: Если есть вопросы по скриптам

как скриптом вставить в текст перенос на другую строку? (и вообще другие непечатные символы)
 
Ответ: Если есть вопросы по скриптам

нашел список, но они не подходят.

если делать app.selection[0].paragraphs[1].texts[0].insertionPoints[0].contents = SpecialCharacters.PARAGRAPH_SYMBOL;
то ставиться сам символ, но нет перевода строки. )

зато заработало:
app.selection[0].paragraphs[1].texts[0].insertionPoints[0].contents = "\r";
 
Ответ: Если есть вопросы по скриптам

если делать app.selection[0].paragraphs[1].texts[0].insertionPoints[0].contents = SpecialCharacters.PARAGRAPH_SYMBOL;
то ставиться сам символ, но нет перевода строки.
Ну в описании-же написано, что:
Код:
SpecialCharacters.PARAGRAPH_SYMBOL — Inserts a paragraph symbol.
И нигде не написано, что вставляется END_OF_PARAGRAPH_SYMBOL. Это как-бы разные вещи и EOP-а нет в перечислении…
 
Ответ: Если есть вопросы по скриптам

Есть вопрос!
Подскажите скрип, который автоматически подгоняет междустрочное расстояние в колонках, чтобы абзацы не разрывались? Без-имени-1.jpg
 
Ответ: Если есть вопросы по скриптам

На приложенном рисунке не вижу разорванных абзацев. Если устроит, попробуйте для фрейма дать полное вертикальное выравнивание, чтоб текст дотягивался до низа.
 
Ответ: Если есть вопросы по скриптам

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

Чтобы абзац не разрывался, поставьте в свойствах стиля Keep Lines Together: All Lines in Paragraph, а затем примените полное вертикальное выравнивание к фрейму. Не вижу необходимости в скрипте,

Не по теме:
хотя писал такой скрипт 2 раза, (но немного для других условий) и 2 раза его потерял
 
Существует ли команда на обновление содержания?

А нет ли какой команды на обновление содержания? В библиотеке команд не увидел - только TOCStyle(s), TOCEntry(ies)
Типа TOCUpdate или что-то такого?
 
Ответ: Существует ли команда на обновление содержания?

Через Document.createTOC() можно обновить, там вторая по счёту опция в скобках отвечает за это.
 
Объясните пожалуйста..

Добрый день.
Я чегото не понимаю...
открываю "Object model veiwer" смотрю Tables -> everyItem()
"Tables.everyItem() : Array of Table
Adobe InDesign CS6 (8.0) Object Model
Returns every Table in the collection."
Код:
var docTables = app.activeDocument.stories.everyItem().tables.everyItem(); // при выводе в консоль выводит "[object Table]" вместо того чтоб вывести массив из 3ёх таблиц.
и .length соответственно не выводится тк мне выдало не массив а 1 таблицу, хотя в описании написано массив таблиц выдает...
Код:
var docTables = app.activeDocument.stories.everyItem().tables.everyItem().getElements(); // выводит то что нужно "[object Table],[object Table],[object Table]"
"Table.getElements() : Array of Table
Adobe InDesign CS6 (8.0) Object Model
Resolves the object specifier, creating an array of object references."
я бы сам не догнал что нужно getElements() добавить чтоб получить то что нужно, ибо ожидал увидеть массив на команду раньше. Объясните пожалуйста в чем прикол?
 
Ответ: Объясните пожалуйста..

Подробно о специфике everyItem() можно прочитать здесь:
http://www.indiscripts.com/post/2010/06/on-everyitem-part-1
http://www.indiscripts.com/post/2010/07/on-everyitem-part-2

CS6 ещё не смотрел, может там что-то поменялось, но в CS5 такой код:
Код:
var t = app.activeDocument.stories.everyItem().tables.everyItem();
alert(t.constructor.name);
t.cells[0].texts[0].contents = "Некий текст";
при наличии трёх таблиц в разных story по алерту хоть и пишет "Table", но ячейки заполняет во всех таблицах.
 
Ответ: Объясните пожалуйста..

так и должно быть. если tables - это коллекция таблиц, то everyItem() - это каждая отдельная таблица. поэтому и конструктор - Table.

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

а если так, кстати? (сам не проверял) По логике, на выходе должен быть как раз массив из всех таблиц

Код:
var docTables = app.activeDocument.stories.everyItem().tables
 
Ответ: Объясните пожалуйста..

Да, constructor.name выдаст "Tables". Только возникает хитрая особенность. Теперь, чтобы обратиться к первой таблице, нужно сказать docTables[0], так? На практике же у меня команда:
Код:
docTables[B][0][/B].cells[0].texts[0].contents = "Текст";
всё равно заполняет ячейку в каждой таблице. Думаю, потому что stories.everyItem() даёт сигнал обратиться к каждому материалу.
 
Ответ: Объясните пожалуйста..

непривычно смотреть на такое обращение к таблице
Код:
docTables[B][0][/B].cells[0].texts[0].contents = "Текст";
при использовании
Код:
var docTables = app.activeDocument.stories.everyItem().tables.everyItem().getElements();
docTables[0].cells[0].texts[0].contents = "Текст"; // записывает в ячейку одной из таблиц текст
docTables[0].rows.item(0).cells.item(0).content = "qwe"; // записывает тудаже
только вот.. записывает он во 2ую таблицу из 3ёх, эври итем видимо както хитро выбирает таблицы из документа
но все таки с getElements получается так как надо, массив 3ех таблиц обращаясь к одной, я с одной и работаю

за ссылки спасибо, сейчас ознакомлюсь
 
Ответ: Объясните пожалуйста..

всё равно заполняет ячейку в каждой таблице. Думаю, потому что stories.everyItem() даёт сигнал обратиться к каждому материалу.


Точне: заполняет первую ячейку первой таблицы в каждом story.
 
Ответ: Если есть вопросы по скриптам

Здравствуйте, уважаемые знатоки!

Уже второй день не могу найти способ определить номер страницы, на которой начинается параграф (на джаваскрипте).

То есть сейчас задача такая: есть два параграфа (пусть MyParagraph1 и MyParagraph2). Надо определить, находятся их первые символы на одной и той же странице, или же нет.

Первые символы это MyParagraph1.characters.item(0) и MyParagraph2.characters.item(0). А вот что дальше делать, не знаю. Раскопал только свойство parentTextFrames но оно у меня работает как-то очень странно... Свойство должно возвращать массив, но конструкция MyParagraph1.characters.item(0).parentTextFrames.item(0) вызывает почему-то ошибку (MyParagraph1.characters.item().parentTextFrames.item is not a function). И еще почему-то выполняется условие
Код:
MyParagraph1.characters.item(0).parentTextFrames != MyParagraph1.characters.item(0).parentTextFrames
Т.е. объект, на который ссылается это свойство не равен сам себе 'otbline'
 
Статус
Закрыто для дальнейших ответов.