Автоматическое создание якорных объектов

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

Bebs

Топикстартер
20 лет на форуме
Сообщения
466
Реакции
223
Добрый день коллеги.
Нашел один замечательный скрипт, который должен создавать привязанные фреймы с текстом. Впрочем описание от автора здесь.
Однако при работе в CS4 скрипт приводит к ошибке
1.gif
Автор не реагирует. Не возьмется ли кто поправить, да и было бы хорошо его под CS5 (5.5) адаптировать
 
Ответ: Автоматическое создание якорных объектов

поместить в подпапку Version 6.0, и все будет
 
Ответ: Автоматическое создание якорных объектов

У меня не получилось. Это первое, что я попробовал, и не помогло.
 
Ответ: Автоматическое создание якорных объектов

я перепутал, version 5.0 имел в виду - 6.0 это и есть cs4. но автор похоже под cs4 его и писал, так что дело не в этом. а cs5.5 он у меня намертво вешает в любом случае. надо разбираться, в общем
 
Ответ: Автоматическое создание якорных объектов

Намертво вешает и cs5.5 и cs5, а в 4 и 3 выдает ошибку. Писался скрипт, судя по комментариям, действительно для cs4
 
Ответ: Автоматическое создание якорных объектов

То-же самое…
Проблема, на самом деле, в разделителе целой и дробной части. Если принудительно вбить в скрипте вместо переменных "25.4 mm", то все Ок, так-же если использовать целочисленные значения…
Решение таково: Вместо 128 строки, там где создается якорный текстфрейм, вставляем код…
Код:
anchor_height=anchor_height.editContents.replace(/,/,".");
anchor_width=anchor_width.editContents.replace(/,/,".");
        var the_anchored_frame = app.selection[0].textFrames.add({geometricBounds:["0","0",anchor_height,anchor_width],anchoredObjectSettings:{anchoredPosition: AnchorPosition.ANCHORED}});
Пришлось писать в другие переменные так как свойство .editContents запрещено к записи, ну и…
Еще-б автор прибивал конечный знак параграфа… :y)
 
Ответ: Автоматическое создание якорных объектов

у меня отработало нормально в моем варианте, в бесконечный цикл уходило при поиске "^" (непонятно кстати зачем там вообще grep, ну да ладно)

свойство .editContents запрещено к записи

с каких пор? просто нельзя устанавливать одновременно editContents и editValue, а тут editValue изначально установлено в 72
 
Ответ: Автоматическое создание якорных объектов

Ну я диалог плохо знаю, так что решение такое…
Для «прибивания» конечного знака параграфа я вставил в двух местах такой код:
Код:
with (app.selection[0].texts[0].contents)
if (substring(length-1, length).search(/\r/) != -1)
app.selection[0].texts[0].contents=substring(0, length-1);
После "app.selection = found_text;" В строки с номерами 101 и 113…
Хотя такой скрипт мне и не нужен — получите…
 
Ответ: Автоматическое создание якорных объектов


Та же ошибка: 30480
Нет доступных данных требуемого типа
Строка: 130

Вместо 128 строки, там где создается якорный текстфрейм, вставляем код…
тоже не помогло
 
Ответ: Автоматическое создание якорных объектов


Не по теме:
Мда, как всегда, адоба поражает своим умом и сообразительностью. Даже в таких деталях, как скриптинг...
 
Ответ: Автоматическое создание якорных объектов

можно макет тогда, на котором проверяете?
 
Ответ: Автоматическое создание якорных объектов

тоже не помогло
Давай по порядку… Будем считать, что авторские указания выполнены…
Тогда, в диалоговом окне выбираем стиль параграфа (символьный) и стиль объекта. Меняем "2.54 mm" на что-то целочисленное, жмем Ок…
Когда я, ради интереса, скачал и запустил этот скрипт от автора, у меня сразу сработало, при условии целочисленности…
Win 7/64 Rus (в Англ локале), ID 5.5 Eng…
 
Ответ: Автоматическое создание якорных объектов

Чёрт, портить то anchor_height нельзя, вот и вылетает на втором объекте… Я проверял только на одном, а если больше…
Значиццо так… Эти
Код:
height=anchor_height.editContents.replace(/,/,".");
width=anchor_width.editContents.replace(/,/,".");
две строки втыкаем в 61 строку сразу за "the_dialog.show();". В конце аналогичные удаляем и втыкаем эту
Код:
        var the_anchored_frame = app.selection[0].textFrames.add({geometricBounds:["0","0",height,width],anchoredObjectSettings:{anchoredPosition: AnchorPosition.ANCHORED}});
вместо того что было раньше…
 
Ответ: Автоматическое создание якорных объектов

Код:
anchor_height=anchor_height.editContents.replace(/,/,".");
anchor_width=anchor_width.editContents.replace(/,/,".");
Но это не помогает, с твоим файлом у меня уходит на завис в строку поиска " var found_items = the_document.findGrep();", потому пока не понимаю… И там не не бесконечный цикл, а полноценный подвис до снятия задания…
 
Ответ: Автоматическое создание якорных объектов

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

Подвисание только CS5, в CS4 образуется илайновый объект -- текстовый бокс размерами 10х10 рt без применения к нему созданного стиля.

Я его в ближайшее время кардинально переделаю.
Было бы чудесно.
 
Ответ: Автоматическое создание якорных объектов

Тэкс… Проверено на нескольких строках с присвоенными charStyle и paragraphStyle в присланном файле CS5, в котором, кстати, не был заведен стиль объекта, ну да ладно… Если все изменения, которые я советовал проделаны, то строка №85 должна выглядеть так: «app.findGrepPreferences.findWhat = ".+";», тогда ничего не подвисает и вроде как работает как заказывали…
Проверил в CS4 то-же все Ок…
 

Вложения

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