Помощь - Поиск - Пользователи - Календарь
Полная версия: Как в скрипте получить корректный результат по iCount = font
ProDTP > Графика и препресс > Скриптинг
Alex78
Доброго времени суток!!!

Подскажите, что не так.
Мой скрипт в документ перед выводом на принтер , должен подставлять  информацию о файле. Очень хочется это делать определенным шрифтом.
Но iCount = fonts.length; или sFontNames = fonts.name; выдает ошибку.
Как это сделать правильно?

зы: в заголовке ai или eps файла есть строчка:
      %%For: (имя компютера) (домен)
      Как с помощю скрипта получить эту информацию?  :-?

[i]Это сообщение было отредактировано:  alex78, 20 Июл, 2004 - 19:16
vd
Цитата
Доброго времени суток!!!

Подскажите, что не так.
Мой скрипт в документ перед выводом на принтер , должен подставлять  информацию о файле. Очень хочется это делать определенным шрифтом.
Но iCount = fonts.length; или sFontNames = fonts.name; выдает ошибку.
Как это сделать правильно?

да все нормально, все ты правильно делаешь!  8-)
это от безалаберности людей пишущих документацию (Adobe fareva! :-P )
(я тоже не в восторге от адобового референса. см. трабл с резолюшеном в Layers As PSD )

короче, я немного покопал и нашел что они НЕМНОГО перепутали fonts c textFonts (метод тыка фарева :evil: )

теперь вид примера из референса будет такой:
Код
 

var docRef = documents.add();

var sFontNames = \\\"\\\";

var x = 30;

var y = (docRef.height - 30);

var iCount = textFonts.length;

for(var i=0; i
{

    sFontNames = textFonts[i].name;

    sFontNames += \\\" \\\";

    sFontNames += textFonts[i].style;

    var textRef = docRef.textFrames.add();

    textRef.textRange.characterAttributes.size = 8;

    textRef.contents = sFontNames;

    textRef.top = (y);

    textRef.left = x;

    redraw();

    if( (y-=(textRef.height)) <= 30 )

    {

 y = (docRef.height - 30);

 x += 150;

    }

}





помогло?


если делаешь интересный скрипт, будем рады на него взглянуть (join our AI JS community  ;-) )

Цитата

зы: в заголовке ai или eps файла есть строчка:
     %%For: (имя компютера) (домен)
     Как с помощю скрипта получить эту информацию?  :-?


может если открыть этот документ и прочитать...  (не знаю есть ли другой способ)
знаешь как сделать? (если нет - могу показать, но сначала посмотри объект File)


[i]Это сообщение было отредактировано:  vd, 20 Июл, 2004 - 19:39
Alex78
Когда скрипт доведу до ума обязательно поделюсь, но боюсь никому, кроме нашей конторы, он нужен не будет.
Если коротко, то все это необходимо вот для чего. Для некого издания мы делаем рекламные модули. У модуля есть название (имя файла), тип (цветность), дата изготовления (изменения), автор и в каком издании это будет печататься. Другими словами готовая работа должна быть напечатана на бланке установленного образца. Модулей много и случаются ошибки. Ошибки это в лучшем случае потеря времени, в худшем попадание на деньги. Скрипт позволит избежать ошибок и облегчить жизнь дизайнерам издательства.
Осталась решить последнюю задачу, выяснить на какой машине делался модуль...

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

зы: зы: Спасибо, все работает, :-) что б этих абобевцев...  :-x
Alex78
Цитата
>>
может если открыть этот документ и прочитать...  (не знаю есть ли другой способ)
знаешь как сделать? (если нет - могу показать, но сначала посмотри объект File)
i>


vd
Ты обладаешь, видимо, какими-то сакральными знаниями. :roll:
В документации значится:

File — Properties
...
creator      R/O      string        The Macintosh file creator as a four-character string.
                                              For Windows, the return value is “????”

:-?

Подскажи, как дальше жить?
vd
Цитата

vd
Ты обладаешь, видимо, какими-то сакральными знаниями. :roll:  
В документации значится:

File — Properties
...
creator       R/O       string        The Macintosh file creator as a four-character string.  
                                             For Windows, the return value is “????”

:-?

Подскажи, как дальше жить?


не совсем понял, что у тебя за проблема?
vd
в принципе, говоря про объект File я имел ввиду - открыть файл и покопаться в хедере...
вот например так:
Код
 

var f = activeDocument.fullName;



if(f.open(\"read\")) {

    flow = true;

    while(flow) {

 str = f.readln();

 if( str.indexOf(\"%%For\") >= 0 ) {

     val = str.split(\": \",2)

     flow = false;

 }

    }

    alert(\"For: \" + val[1]);

}



попробуй на открытом уже сохраненном доке.
Alex78
Большое спасибо за подсказку!!!
С этим как-то можно работать...  :-)

Копаясь мануале нашел как вызывать дебагер в Illustrator CS.

То, что написано на стр. 17 типа $.bp(); полная ботва.

А нужно так:
$.level = 1; debugger;

зы: Неделю назад я искал ответ на вопрос о дебагере для CS в разных форумах.
Ничего не нашел. Так если об этом мало кто знает может отдельным топиком такую радость повесить?

Это сообщение было отредактировано:  alex78, 22 Июл, 2004 - 19:05
arhip
Цитата
Так если об этом мало кто знает может отдельным топиком такую радость повесить?

На этот счет я хотел бы посоветоваться с Владом, как с активно участвующим в этой теме - стоит ли? и как?
Например, это можно оформить в виде отдельного топика с условным именем: "AI scripting tips". Топик этот можно будет закрыть для комментирования и размещать там только реальную, проверенную и полезную информацию - это смогу делать я или 2-3 выделенных человека, которые "в теме". Либо - другой вариант - использовать для этих целей FAQ сайта. Остается только создать там соответствующий раздел, а это просто. Вопрос не только к Владу, но и ко всем заинтересованным в теме скриптования: какой вариант более оправдан? будет ли наполнение у такого топика или раздела FAQ? может быть, никакой вариант не годится и, действительно, надо просто вывесить отдельным топиком: "Как вызвать дебаггер в AI CS" - и всё?

PS. Кстати, недавно аналогичный вопрос у меня всплыл по всем разделам FAQ вообще, но это мы обсудим отдельно.  Поэтому прошу здесь эту тему (tips) не развивать, а заглянуть в этот топик.
vd
извините ребята, но надо внимательней читать референс (все там есть).

хотя я вызываю дебаггер так
$.level = 1; // или 2
$.bp();

и узнал я об этом из референса (из той же 17 страницы)





Это сообщение было отредактировано:  vd, 22 Июл, 2004 - 20:46
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2012 Invision Power Services, Inc.

Реклама

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