Помощь - Поиск - Пользователи - Календарь
Полная версия: Тестирование скрипта Load Variables From CSV
ProDTP > Графика и препресс > Скриптинг
arhip
История вопроса. Влад Дегрярёв, автор скрипта для создания календаря, упомянул как-то о том, что среди его разработок был скрипт для извлечения данных из файлов CSV (проще говоря, это формат простой базы данных, где записи разделены абзацами, а поля - запятыми, если я ничего не перепутал в терминах). Сохранить в этот формат можно, например, таблицу Excel с фамилиями, адресами и телефонами для визиток. Влад создавал такой скрипт для своих целей, а я поинтересовался, можно ли сделать подобную штуку для более широкого использования. Влад сделал.
Но теперь в наших с вами интересах потестировать этот скрипт.
Скачать можно здесь: Load Variables From CSV (предварительная версия, последнюю см. в Файловом архиве).
Вопросы, любые предложения и проч. - в этом топике или Владу на мыло ai-js(at)mail.ru.
Evgen
Влад! а что должно происходить после того, как в диалоге указан файл.csv ?
Cудя по коду, файл на чтение у меня открылся нормально и как-будто все условия выполняются, а вот "docRef.dataSets[0].display();" ничего не отображает...
А может, я ошибаюсь и этот оператор и не должен ничего не отображать?
В общем, после открытия файла ничего не меняется.
Где и что искать? или ожидать?

Это сообщение было отредактировано:  Evgen, 02 Июл, 2004 - 20:16
vd
Цитата

В общем, после открытия файла ничего не меняется.
Где и что искать? или ожидать?


Я думал что из названия скрипта все будет понятно...  :-)
(кто-то знает зачем в иллюстраторе окно Variables?)

Ну тут все просто:
- создали csv файлик, содержание например такое (в экселе это колонки просто):

Петя;Футболист;Пиво
Федя;Программист;Водка
Вася;Дизайнер;Коньяк

:-D

- делаем нью документ
- вставляем туда 3 текстовых объекта
- запускаем скрипт (открываем наш файлик)
- открываем окно Window->Variables
- теперь по очереди связываем все наши текстоые блоки с переменными (выделяем текстовый блок, выделяем переменную в окне Variables (Variable1 соответсвует первой колонке, Variable2 - второй и т.д.), жмем кнопку Make Text Dynamic в этом же окошке)
- теперь меняем "Data Set 1" на "Data Set 2" и т.д (в этом же окошке)

Изучаем разделы хелпа найденные по запросу batch...  :roll:



+
--------------------------------------------------------------------------------
About data-driven graphics


Data-driven graphics make it possible to produce multiple versions of artwork quickly and accurately. Let's say, for example, that you need to produce 500 different Web banners based on the same template. In the past, you had to manually populate the template with data (images, text, and so on). With data-driven graphics, you can use a script referencing a database to generate the Web banners for you.

In Illustrator, you can turn any piece of artwork into a template for data-driven graphics. All you need to do is define which objects on the artboard are dynamic (changeable) using variables. (See About variables.) You use variables to change text strings, linked images, graph data, and the visibility setting of objects in your artwork. In addition, you can create different sets of variable data in order to easily view what your template will look like when it is rendered. (See Using data sets.)

Templates provide a means of collaboration between designers, developers, and production staff:

If you're a designer, creating a template gives you control over the dynamic elements of your design. When you hand your template over for production, you can be sure that only the variable data will change.
If you're a developer, you can code variables and data sets directly into an XML file. The designer can then import the variables and data sets into an Illustrator file to create a design based on your specifications.
If you're responsible for production, you can use scripts within Illustrator, the Batch command, or a Web production tool such as Adobe GoLive 6.0 to render the final graphics. You can also use a dynamic imaging server such as Adobe® Graphics Server to further automate the rendering process. (See Using scripts and Batch-processing files.)

:evil:

Это сообщение было отредактировано:  vd, 02 Июл, 2004 - 22:57
Evgen
Цитата
Я думал что из названия скрипта все будет понятно...   :-)  
(кто-то знает зачем в иллюстраторе окно Variables?)

Я не знал и не пользовался. Теперь знаю. Спасибо.
Цитата
- создали csv файлик, содержание например такое (в экселе это колонки просто):
Петя;Футболист;Пиво
Федя;Программист;Водка
Вася;Дизайнер;Коньяк

Дык файлик-то был создан, только с другими данными: Иванов, Петров да Сидоров...
Может, поэтому фокус не получился? laugh.gif laugh.gif laugh.gif
Шютка-шютка...
german
Попробовал на маке. Очень долго читает содержимое диска при открытии файлика. Никаких переменных в Variables не появляется.  :-?
Evgen
Цитата
Попробовал на маке. Очень долго читает содержимое диска при открытии файлика.

В теле скрипта написано: "Version 0.2 (quickly tested on PC with AI CS)"
Может, это что-то значит?
Ждем Влада.
vd
Цитата
Попробовал на маке. Очень долго читает содержимое диска при открытии файлика. Никаких переменных в Variables не появляется.  :-?


да, там есть проблема. у меня мака нет (и доступа к нему тоже) поэтому для теста на маке я отсылал скрипт Вольфгангу Ретзелю, там та же лажа... причина говорит в том что строчка:

if(dataBase.open("read")) {

не проходит

может если поменять ее на

if(dataBase.open("read","TEXT","AI")) {

то пройдет...


А под Виндовс глюки есть? (я уже один знаю, хотя это скорее не глюк а особенность)

Это сообщение было отредактировано:  vd, 03 Июл, 2004 - 15:24
german
К сожалению, ничего не изменилось  :-(
vd
попробуйте такой вариант на маке
http://ill-files.narod.ru/LoadFromCSV.zip
german
Вот, сейчас все заработало smile.gif
Но, обращение к диску при выборе файла csv все-равно очень долго происходит. А пока, буду тестировать дальше.
Спасибо, скрипт очень-очень интересный smile.gif
vd
Цитата

Но, обращение к диску при выборе файла csv все-равно очень долго происходит.


хм... ну не знаю, на писюке под виндовс даже достаточно крупный файл обрабатывается достаточно быстро
(вот у меня 16килобайт 552 сета по 5 переменных обрабатывается около 7-8 секунд, в принципе приемлимо, по моему)

вот недостаток скрипта - это неспособность обрабатывать многострочные ячейки
(а нужно ли?)

Это сообщение было отредактировано:  vd, 07 Июл, 2004 - 11:39
arhip
Надо так понимать, что основной период тестирования пройден и скрипт пора размещать в Файловом архиве?
Влад, это будет архив с двумя скриптами - мак и писи? Какую версию мне положить в архив - ту, на которую я дал ссылку выше + ту, что для мака? Или это будет один скрипт на обе платформы?
Evgen
Цитата
Влад, это будет архив с двумя скриптами - мак и писи? Какую версию мне положить в архив - ту, на которую я дал ссылку выше + ту, что для мака? Или это будет один скрипт на обе платформы?

Алексей, если Влад не создавал отдельных версий, то всё было в одном скрипте.
Там есть анализ платформы. :-)
valerra
Прошу прощения, может не по теме, но начинать новую тему ради моего вопроса не хочется, Так вот: скрипт создания календаря у меня в Иллюстраторе 10 почему-то не работает, помогите понять почему.
Выдает он вот что:
Ошибка.
"prompt is undefined
Line: 28
->"
Evgen
Цитата
скрипт создания календаря у меня в Иллюстраторе 10 почему-то не работает
Выдает он вот что:  
Ошибка.  
\"prompt is undefined
Line: 28
->\"

Правильно, у меня то же самое выдает.
Это потому, что скрипт Calendar Premaker (for Adobe Illustrator CS)
vd
этот скрипт, по идее, работоает на пк и на маках  :roll:

-
еще немного доделал скрипт (http://ill-files.narod.ru/LoadFromCSV-021.zip)

теперь типа есть поддержка многострочности одной ячейки (правда немного кривая)...
надо просто ставить разделитель n перед каждой новой сточкой.

если у вас экселевский файл с многосточными ячейками, просто сделайте замену всех символов x0A на сочетание "n"
(в окне замены в "Найти" введите -> Alt+0010, а в "Замените на" -> "n", потом жмите "Заменить все")

вот и все, можно сохранять

-
calendar premaker, да как и все мои скрипты работает только под CS  :evil:
arhip
Цитата
еще немного доделал скрипт (http://ill-files.narod.ru/LoadFromCSV-021.zip)

ОК, значит в таком виде он и пойдет в архив. Т.е. уже ушел. Влад, принимаю замечания по описанию работы скрипта. Может, ты за меня это на англ. переведешь? smile.gif) У тебя же с этим порядок лучше, вроде..
2Evgen
Цитата
если Влад не создавал отдельных версий, то всё было в одном скрипте. Там есть анализ платформы.

Не успеваю я смотреть все это sad.gif( Работы сейчас много.
arhip
На ProDTP недавно размещена документация что называется "в тему", в том числе руководство по написанию скриптов под Adobe Illustrator CS (с примерами). В формате PDF. На английском.
Наверняка все это доступно и на адобовском сайте, но так все под рукой и искать долго не надо. Ссылку на этот раздел ProDTP размещу в полезных линках > документация.
german
Цитата
хм... ну не знаю, на писюке под виндовс даже достаточно крупный файл обрабатывается достаточно быстро


Нет-нет, не обработка, а обращение к диску. Когда выскакивает окно Open, он очень долго начинает думать, пока показывает список доступных файлов. Долго, это примерно секунд 40. Я точно не считал.
vd
Цитата

Нет-нет, не обработка, а обращение к диску. Когда выскакивает окно Open, он очень долго начинает думать, пока показывает список доступных файлов. Долго, это примерно секунд 40. Я точно не считал.


открытие диалога взято с адобоского примера... так шта это не ко мне...

-
на счет руководства, так поддерживаю (если кто-то занимался программированием, а еще и знаком с JavaScript, то сделать скрипт самому не очень то сложно, а иногда и полезно)

-
из описания...

> # Создать новый документ в Adobe Illustrator

а можно открыть готовый

> # Создать в нем текстовые объекты по числу полей БД (для нашего примера - 3)

не обязательно, создавать их можно по мере, так сказать, необходимости....

-
> перевести на английский...

эээ.... та что-то сегодня влажность повышена... а я по и по русски хорошо понимаю  :-D

Это сообщение было отредактировано:  vd, 08 Июл, 2004 - 11:50
vd
кстати, кто-нибудь пробовал Calendar Premaker на Маке?

-
немного оффтоп, но не хочется подымать новую тему
german
Цитата
кстати, кто-нибудь пробовал Calendar Premaker на Маке?

Попробовал версию 0.3.1 us и ru. Обаработают. Но, в русском с кодировкой не все хорошо. Невозможно результат отобразить по русски - кракозябры. И еще, в меню русские буквы - тоже кракозябрами.
vd
Цитата
Невозможно результат отобразить по русски - кракозябры. И еще, в меню русские буквы - тоже кракозябрами.


может утилитка по типу Stirlitz`а может помочь (тут где-то в файловом архиве)... если применить к скрипту и поменять виндовую кодировку на маковую, мож получится, но я не пробовал
arhip
Цитата
если у вас экселевский файл с многосточными ячейками, просто сделайте замену всех символов x0A на сочетание \"n\"
(в окне замены в \"Найти\" введите -> Alt+0010, а в \"Замените на\" -> \"n\", потом жмите \"Заменить все\")

Ломал я тут недавно голову над тем, а что ты собственно имеешь в виду под многострочными ячейками в Экселе... да так и не выяснил. Просвети. Это объединенные ячейки? Или те, в которых слова переносятся по формату? Насколько знаю Эксель, там нет такой вещи как принудительный разрыв строки в ячейке (кроме переноса по формату - но тут строка не образуется).
vd
Цитата

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


ну... многострочные ячейки...  (А-А-А-А!)  :-D

(наверное я как-то не совсем корректно выражаюсь)

тогда-так: ячейки с принудительно разорванными строками... :-P

Цитата

Насколько знаю Эксель, там нет такой вещи как принудительный разрыв строки в ячейке (кроме переноса по формату - но тут строка не образуется).


вообще-то есть...  попробуй Alt+Enter  :-) 


Отрывок из хелпа:
Совет

Чтобы начать новую строку с определенного места, щелкните в этой позиции, а затем нажмите клавиши ALT+ENTER.



-
хотя для использования скрипта об можно не парится, просто рисовать n где нужно и все... (но мне кажется альт-йентерь быстрее, да и нагляднее при редактировании)
arhip
Цитата
вообще-то есть...  попробуй Alt+Enter  :-)  

Хм.. ты прав. Нашел и на маке - Control+Option+Enter.
Или не знал, или забыл... или и то, и другое. smile.gif  Спасибо.
А вокруг /n должны быть пробелы? Или пофиг как их рисовать? Потому что я пробовал в текстовом редакторе вписать эти разрывы (просто тестировал) - так они у меня и в иллюстраторе появлялись. Хотя... врать не буду, может я с обратным слэшем писал с дуру.. Забудь. Надо еще проверить.
arhip
Цитата
может я с обратным слэшем писал... Надо еще проверить.

Так и есть. Проверил - у меня был не тот слэш. Теперь работает.
german
Цитата
если применить к скрипту и поменять виндовую кодировку на маковую, мож получится, но я не пробовал


Не помогает.  :-(
vd
Цитата

Не помогает.  :-(


короче так, посмотрим стоит ли овчинка выделки...

если вот этот скрипт в одну строчку

Код
 

alert(\"u041fu0440u0438u0432u0435u0442\");



...на маке пройдет (покажет русское слово)
то тогда посмотим, что можно сделать
german
Сработало smile.gif
Он написал мне "Привет"
arhip
Цитата
Сработало smile.gif

german, ты в 9-ке работаешь? у меня под десяткой ничего не вышло - одни знаки вопроса. возможно, надо попробовать тестовый скрипт в разных кодировках сохранять. Десятка же юникодная все-таки, должно работать.
german
Как раз в 10-ке и получилось. В 9-ке не пробовал, просто мне уже не актально в ней. Иль - ЦС
arhip
Хм... а почему же у меня такая ерунда... правда, илл 10-ка, но для простого сообщения (алерта) это не должно быть проблемой. Ладно, попробую еще.
Ты чем текстовый файл сделал? Я имею в виду сам скрипт. Я в Text Editor-е его сохранил как plain text. Кодировку пробовал и МакКириллик, и Вин, и кои-8... Хотя вообще-то не знаю, играет ли это роль для юникод-кодов.
vd
ладно, в лом мне изучать еще и проги какие-то там для перекода для ваших любимых маков...  писанул скрипток-перекодировщик побыраму, с помощью которого поправил уже скрипты примейкера  :roll:

короче ушло на мыло архипу (версию не менял, так и осталась 0.3.1)

поменял русскиую и украинскую версию, так шта, как архип выложит так и проверяйте (земляки можуть перевірити, чи не занадто я там мову попамплюжив в українському варіанті, бо я можу  ;-)  )
arhip
Цитата
короче ушло на мыло архипу

За тобой, брат, не угонишься.  ;-)
Уже обновил, см. архив.
PS. Оффтоп. Кстати, с подачи Влада поправил ссылку на Штирлиц 4-й версии. Сорри, если кому не удавалось скачать.  А могли бы мне и раньше мне пожаловаться на битую ссылку. Щательнее надо, товарищи, щательнее... не стесняйтесь.  :roll:
german
Цитата
Ты чем текстовый файл сделал? Я имею в виду сам скрипт. Я в Text Editor-е его сохранил как plain text. Кодировку пробовал и МакКириллик, и Вин, и кои-8... Хотя вообще-то не знаю, играет ли это роль для юникод-кодов.

Я сохранил в юникодовском формате UTF-8. Все остальные форматы как-то не прокатывают - буквы в нечитаемые превращаются.
german
Все, новый скрипт прекрасно работает  :-)
arhip
Цитата
Я сохранил в юникодовском формате UTF-8. Все остальные форматы как-то не прокатывают - буквы в нечитаемые превращаются.

У меня и этот формат не проходит. Но я в AI 10 проверял...
Зато русский (обычный, не в юникод-символах) в скрипте прекрасно прочитался, когда я изменил одну настройку в системных префах, а именно - International > Language > в списке предпочтений для меню и диалогов Русский поднял выше English.
Ну, и еще, конечно, для использования win-текста в скриптах придется конвертировать его в мак-кириллик. Через Clipboard Converter это дело одной секунды.
german
Цитата
У меня и этот формат не проходит. Но я в AI 10 проверял...  

А может, 10-й иль просто не знает юникода?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2012 Invision Power Services, Inc.

Реклама

   Rambler's Top100    Яндекс цитирования