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

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

Alexey_Nik

12 лет на форуме
Сообщения
37
Реакции
41
Ответ: Если есть вопросы по скриптам

Добрый день.

Вопрос по блидам из PDF решен. Всем спасибо.
 

victort

10 лет на форуме
Сообщения
55
Реакции
0
Ответ: Если есть вопросы по скриптам

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

zx230

Участник
Сообщения
69
Реакции
0
Ответ: Если есть вопросы по скриптам

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

zx230

Участник
Сообщения
69
Реакции
0
Ответ: Если есть вопросы по скриптам

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

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

зато заработало:
app.selection[0].paragraphs[1].texts[0].insertionPoints[0].contents = "\r";
 

Elsynor

Tesseract
12 лет на форуме
Сообщения
1 282
Реакции
1 377
Ответ: Если есть вопросы по скриптам

если делать 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-а нет в перечислении…
 

Iksland

Участник
Сообщения
17
Реакции
0
Ответ: Если есть вопросы по скриптам

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

boriskasmoscow

15 лет на форуме
Сообщения
343
Реакции
410
Ответ: Если есть вопросы по скриптам

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

Iksland

Участник
Сообщения
17
Реакции
0
Ответ: Если есть вопросы по скриптам

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

boriskasmoscow

15 лет на форуме
Сообщения
343
Реакции
410
Ответ: Если есть вопросы по скриптам

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

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

hulk1776

15 лет на форуме
Сообщения
735
Реакции
21
Существует ли команда на обновление содержания?

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

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
Ответ: Существует ли команда на обновление содержания?

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

Genusatplay

Участник
Сообщения
73
Реакции
156
Объясните пожалуйста..

Добрый день.
Я чегото не понимаю...
открываю "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() добавить чтоб получить то что нужно, ибо ожидал увидеть массив на команду раньше. Объясните пожалуйста в чем прикол?
 

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
Ответ: Объясните пожалуйста..

Подробно о специфике 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", но ячейки заполняет во всех таблицах.
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
Ответ: Объясните пожалуйста..

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

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

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

Код:
var docTables = app.activeDocument.stories.everyItem().tables
 

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
Ответ: Объясните пожалуйста..

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

Genusatplay

Участник
Сообщения
73
Реакции
156
Ответ: Объясните пожалуйста..

непривычно смотреть на такое обращение к таблице
Код:
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ех таблиц обращаясь к одной, я с одной и работаю

за ссылки спасибо, сейчас ознакомлюсь
 

pirate-party

Участник
Сообщения
42
Реакции
150
Ответ: Объясните пожалуйста..

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


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

Ambassadore

Участник
Сообщения
2
Реакции
0
Ответ: Если есть вопросы по скриптам

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

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

То есть сейчас задача такая: есть два параграфа (пусть 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'
 
Статус
Закрыто для дальнейших ответов.