Скрипт для нумерации строк

  • Автор темы Автор темы SergHos
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

SergHos

Топикстартер
20 лет на форуме
Сообщения
221
Реакции
34
Не возьмется ли кто из уважаемых скриптописателей создать скрипт (или доработать существующий), позволяющий нумеровать строки?
ТЗ такое:
1. Нумероваться должны строки в заданном интервале (например, в пределах главы или в выделенном фрагменте, но обязательно многостраничном).
2. Желательна возможность выбора местарасположения нумерации: по внешнему, левому или правому полю.
3. Очень желательна опция нумерации только каждой пятой строки.
4. Возможность задавать стиль цифрам нумерации.
 
Ответ: Скрипт для нумерации строк

"доработать" не выйдет, по ссылке - скомпилированный скрипт.
 
Ответ: Скрипт для нумерации строк

Еще вариант нашел, кажется, поинтереснее:
http://www.freelancebookdesign.com/?page_id=232
Правда, платный, но $20 за такое добро, право, не жалко отдать.
Не понял только, в какой версии он работает: демка в CS3 у меня не запустилась почему-то.
 
Ответ: Скрипт для нумерации строк

Работает в CS4, но все равно не то, что нужно: заново начинает нумерацию на каждой странице и не позволяет выбрать стиль абзаца для нумерации.
А мне нужно, чтобы нумеровал строки с первой по последнюю в рамках главы, включая заголовок.
 
Ответ: Скрипт для нумерации строк

а чем интереснее ?
в описании не нашел соответствия 2, 3 и 4 пунктам ваших требований.
и да, демка под CS3 вылетает с ошибкой.
 
Ответ: Скрипт для нумерации строк

Пункты 2 и 4 решаются путем редактирования объектного стиля.

Пункт 3 можно (временно, пока не будет программного решения) решить грепом:
ищем [1-4] , включая абзацный стиль нумерации; в замене пусто.

Стоп. Или там каждая пятая строка должна нумероваться последовательно (1,2,3...)?

По первому пункту пока мыслей нет.

ЗЫ. Нет. Греп не сработает, это я недодумал, извиняюсь
 
Ответ: Скрипт для нумерации строк

Пункт 3 можно (временно, пока не будет программного решения) решить грепом:
ищем [1-4] , включая абзацный стиль нумерации; в замене пусто.
Это действительно решается поиском-заменой, но несколько сложнее. Сперва нужно пометить все цифры, заканчивающиеся на 0 и на 5, а потом удалить остальные.
По первому пункту пока мыслей нет.
А вот этот пункт самый важный.
 
Ответ: Скрипт для нумерации строк

Пункты 2 и 4 решаются путем редактирования объектного стиля.
не совсем понял - к чему объектный стиль советуете применять?

Пункт 3 можно (временно, пока не будет программного решения) решить грепом:
ищем [1-4] , включая абзацный стиль нумерации; в замене пусто.
Стоп. Или там каждая пятая строка должна нумероваться последовательно (1,2,3...)?
Я понял, что нужно так:
1 text
text
text
text
5 text
text
text
text
text
10 text
...
Вообще, как я понял, SergHos ищет решение для регулярного использования.
Я бы взялся, но не за 20$, конечно :)
 
Ответ: Скрипт для нумерации строк

к чему объектный стиль советуете применять?
Скрипт создает объектый стиль для фреймов, в которые загоняется нумерация. Эти фреймы заякорены к строкам. Для нумерации этот скрипт создает абзацный стиль, который записывает в объектный стиль. Пара несложных движений в параметрах стиля - и у Вас нумерация хоть справа, хоть с внешней стороны...

Я понял, что нужно так:
Я тоже уже понял и дописал извинений в своем посте :)
 
Ответ: Скрипт для нумерации строк

Если совсем конкретно, то нужно так, как на странице во вложении.
Обратите внимание, что заголовок "Глава XXX" идет без номера, счет в новой главе идет с первой строки заглавия, минуя номер главы.

Я бы взялся, но не за 20$, конечно :)

Конечно, это коммерческое использование, поскольку скрипт нужен мне для работы. С другой стороны, это разовый заказ с такими требованиями, и встретится ли аналогичная работа в будущем - я не знаю.
В общем, обсуждаемо.
 

Вложения

  • mvc.pdf
    mvc.pdf
    36.9 КБ · Просм.: 633
Ответ: Скрипт для нумерации строк

Скрипт создает объектый стиль для фреймов, в которые загоняется нумерация.
не заметил сразу, вижу уже )
кстати заменами наверное можно так, без всяких предвварительных пометок:
\d*[12346789]\Z менять на "пусто"
 
Ответ: Скрипт для нумерации строк

Обратите внимание, что заголовок "Глава XXX" идет без номера, счет в новой главе идет с первой строки заглавия, минуя номер главы.

и у заглавия свой стиль. так?
 
Ответ: Скрипт для нумерации строк

В общем так. Делать универсальный скрипт - песня довольно долгая, поэтому пока накидал под Ваш случай.
Надеюсь тем скриптом Вы уже воспользовались, а значит нужный объектный стиль в Вашей работе уже создан. Теперь надо выделить кусок текста с первой строки, которая должна участвовать в нумерации, до конца главы или где Вам надо нумерацию остановить.
Скрипт пронумерует каждую пятую строку.

Не по теме:
В файловый архив не выкладываю, т.к. случай сильно уж частный.

Пробуйте на копии файла.
 

Вложения

Ответ: Скрипт для нумерации строк

Пробуйте на копии файла.

А под какую он версию?
У меня в CS3 и 4 при выделенном тексте или фрейме выскакивает error 45, недопустимый объект, а без выделений error 21.
 
Ответ: Скрипт для нумерации строк

error 45, недопустимый объект
Значит у Вас не создан нужный объектный стиль. Создайте какой-нибудь "левый" текстовый фрейм, залейте Placeholder Text, прогоните скриптом, который Вы просили доработать в первом посте — у Вас будет создан этот объектный стиль. После этого всё должно заработать.
 
Ответ: Скрипт для нумерации строк

Спасибо огромное, Eugenyus, все классно работает, кроме одного: трехзначные цифры не помещаются в создаваемом фрейме.

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

Еще раз, спасибо!!!
 
Ответ: Скрипт для нумерации строк

трехзначные цифры не помещаются
В тексте скрипта найдите строку:
Код:
var myTF = app.activeDocument.textFrames.add({geometricBounds:[0,0,String(myPonitSize)+" pt",String(myPonitSize)+" pt"],label:"StrNum",appliedObjectStyle:myObjStyle});
geometricBounds задается в формате [Y1, X1, Y2, X2].
Собственно, длина и высота фрейма там сейчас равны кеглю абзацного стиля.
Можно отрегулирувать под себя, задав значение, вместо последнего значения String(myPonitSize)+" pt", например "16 pt" (в кавычках!) или сколько там реально нужно.
 
Ответ: Скрипт для нумерации строк

А редактировать можно просто в блокноте?
 
Статус
Закрыто для дальнейших ответов.