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

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

LeshikSan

15 лет на форуме
Сообщения
266
Реакции
185
Ответ: InWash под CS4? Как оживить?

AirGraph, спасибо! разобрался. Собственно была задача для папки библиотеки 'include' указать каталог текущего скрипта или общий каталог 'Scripts Panel':

#includepath File($.fileName).parent.fsName + '/include'
#includepath File($.fileName).fsName.replace( /^(.+[\\/]Scripts[\\/]Scripts Panel).+$/,'$1') + '/include'

Кстати, кто какими библиотеками пользуется?
Например, подборка на creativescripting.net
 

LeshikSan

15 лет на форуме
Сообщения
266
Реакции
185
Ответ: InWash под CS4? Как оживить?

вот ведь незадача! дома #includepath работает, а на рабочем компе - нивкакую! :(
 

Tint

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

Приветствую коллеги. Подскажите можно ли как-то реализовать экспорта текста из Индюка CS4 в кодировке DOS?
 

FlintOFF

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

Добрый день. Есть небольшая задача.

Я написал скрипт по анализу текста, он его разбивает на семь частей по ключевым словам (я считал что ето самое тяжелое), но оказалось самое тяжелое ето его експортнуть в RTF. Пробовал через myText.exportFile(myFormat, myFile); но он ругается, говорит что myText не подходит (в нем хранится чистый текст без фреймов).

Я решил по другому пути пойти, выделять нужные фрагменты текста поочередно (так как через выделение myText.exportFile(myFormat, myFile); работает нормально) через
app.select(app.activeDocument.selection[0].parentTextFrames[0].paragraphs[5]);
И тут у меня проблема в том что я не могу несколько параграфов выделить, и не знаю как снять выделение.

Помогите рахобратся с app.select(); как выделить несколько параграфов и как снять выделение.

Спасибо!
 

dik973

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

Обратите внимание на констаны (это второй параметр в select(..., SelectionOptions).
SelectionOptions.ADD_TO
SelectionOptions.REMOVE_FROM
SelectionOptions.REPLACE_WITH
 

FlintOFF

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

Спасибо, очень помогло, теперь все замечательно работает благодаря dik973!
Еще раз спасибо dik973!
 

FlintOFF

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

Снова прошу помощи. Пишу другой скрипт для поджимания в телепередаче параграфов в которых больше 1 строки. Все уже написал, остановился только на одной загвоздке, Я могу прописать tracking линии и абзацу, но выделенному тексту или просто тексту никак не выходит.
Вот то что я уже написал, может когото подтолкен к новым открытиям в скриптах индизайна

PHP:
var mySel = app.selection[0];
var myStory = mySel.parentStory;
var myDocument=app.activeDocument;
var style_podgonka=myDocument.paragraphStyles.item("программа1_подгонка");
var style_programma=myDocument.paragraphStyles.item("программа1");

num=my_frame.paragraphs.length;
for(j=0;j<num;j++)
{
	var my_paragraph=my_frame.paragraphs[j];
	var stroki_Start=my_paragraph.lines.length;
	var my_content=my_paragraph.contents.split("\t")[1];
	
	if (stroki_Start>1)
	{
		//так не работает когда обращаюся к тексту
		//my_content.tracking=(-20);
		//alert(my_content.tracking);
		//а так работает когда обращаюся к параграфу
		my_paragraph.tracking=(-20);
		alert(my_paragraph.tracking);
	}
	
	if (stroki_Start==my_paragraph.lines.length)my_paragraph.applyParagraphStyle(style_programma);
}

Вот пример строк:
06.00 Х/ф „Тайна „Волчьей пасти“
08.00 Х/ф „Садовник“
10.00 Х/ф „История любви, или Новогодний розыгрыш“

Последний абзац "10.00 Х/ф „История любви, или Новогодний розыгрыш“" становится во фрейме в две строки, вот его как раз хочу ужать крекингом до -20, а потом идет проверка если не ужал то возвращает параграф в исходное состояние и пробует дальше ужимать.

Заранее Вам благодарен ЛЮДИ! :)
 

FlintOFF

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

Добрый день. Сам сегодня утром над задачей разобрался, применил itemByRange, и все заработало. Вот пример рабочего кода.
PHP:
var myStory = app.selection[0].parentStory;
var mySelect= app.activeDocument.selection[0].parentTextFrames[0];
num=mySelect.paragraphs.length;
for(j=0;j<num;j++)
{
	var my_paragraph=mySelect.paragraphs[j];
	var stroki_Start=my_paragraph.lines.length;
	
	if (stroki_Start>1)
	{
		
		app.select (my_paragraph.characters.itemByRange(6, -1));
		//ужимаем трекингом до -10
		app.selection[0].tracking=(-10);
		//если не количество строк в параграфе не изменилося то ужимаем трекингом до -20
		if (stroki_Start==my_paragraph.lines.length)app.selection[0].tracking=(-20);
		//если не количество строк в параграфе не изменилося то ужимаем трекингом до -30
		if (stroki_Start==my_paragraph.lines.length)app.selection[0].tracking=(-30);
		//если не количество строк в параграфе не изменилося то ужимаем трекингом до -40
		if (stroki_Start==my_paragraph.lines.length)app.selection[0].tracking=(-40);
		//если не количество строк в параграфе не изменилося даже при -40 то возвращаем все обратно
		if (stroki_Start==my_paragraph.lines.length)app.selection[0].tracking=(0);		
	}
}

Всем удачи!
 

Eugenyus

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

К теме "Выделение всех вытесненных (переполненных) текстовых ячеек в таблице."
Вот скрипт:
PHP:
var myTable = app.activeDocument.selection[0];
for (var i=0; i<myTable.cells.length; i++){
	while (myTable.cells[i].overflows){
		myTable.cells[i].texts[0].pointSize -= 0.5;
                      //alert(String(i) + ":   " + myTable.cells[i].texts[0].pointSize);
		}
	}
А вот проблема. Уменьшение кегля происходит с 12 до 6-ти, иногда до 4-х, хотя реально достаточно уменьшить до 11. Причем если включить строку "alert(String....);" (она сейчас отключена) - всё работает, как ни странно, нормально. А почему без неё уменьшает до ужаса так как не надо???
 

Skvoznyak

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

наверное, текст не успевает перекомпозироваться. можно попробовать сделать это принудительно методом recompose()
 

Eugenyus

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

Skvoznyak сказал(а):
наверное, текст не успевает перекомпозироваться. можно попробовать сделать это принудительно методом recompose()

Сработало, спасибо
 

FlintOFF

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

Друзья может кто то подскажет как при запуске одного скрипта автоматически с ним запускался и другой, например как в PHP include

Хочется автоматизировать обработку текста сразу несколькими скриптами которые поместить в один скрипт нецелеособразно.
 

Skvoznyak

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

app.doscript("имя_скрипта");
 

FlintOFF

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

Спасибо, только сразу не сработало так как нужно app.doScript("имя"); но за подсказку плюс к репе :)
 

FlintOFF

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

Привет гуру индизайновских скриптов. Прошу опять помощи.
Как через скрипты в Индизайне зайти на FTP (скачать файл, нужно ввести логин и пароль) и вобще возможно ли такое на javaScript?
 

Art®

Индюкатор
15 лет на форуме
Сообщения
538
Реакции
53
Ответ: Если есть вопросы по скриптам

FlintOFF сказал(а):
Как через скрипты в Индизайне зайти на FTP...
Простите, а какать вы тоже "через скрипты в Индизайне" ходите?
 

FlintOFF

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

Мне сказали что можно такое через Bridge сделать, в книге по скриптам индизайна я нашел небольшую заметочку про "msxml2.xmlhttp" типа через него можно по инету ходить, но больше я про него ничего не нашел в гугле в словосочетании indesign msxml2.xmlhttp.
Вот потому к вам и обратился. Передомной стоит задача забирать файлы скриптом лутше через ftp но можно http
 

Art®

Индюкатор
15 лет на форуме
Сообщения
538
Реакции
53
Ответ: Если есть вопросы по скриптам

Прошу прощения за предыдущий комментарий, но неужели не проще скачать с фтп файлы?
 

FlintOFF

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

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

Вот я нашел пример реализации FTP для явоскрипта но он для браузеров, но можно его по аналогии на индезе запустить если заставить его с инетом работать
Код:
function Login(form) {
    var username = form.username.value;
    var password = form.password.value;
    var server = form.server.value;
    var local = form.local.value;
    if (username && password && server && local) {
            window.open(local, '_blank', 
              'toolbar=yes,location=yes,status=yes,' + 
              'scrollbars=auto,copyhistory=no,menubar=no,width=' 
              + ((screen.AvailWidth/2)-12) + ',height=' + 
              (screen.AvailHeight-124) +',left=0,top=0,resizable=yes');
            window.open("ftp://" + username + ":" + 
              password + "@" + server, '_blank', 
              'toolbar=yes,location=yes,status=yes,' + 
              'scrollbars=auto,copyhistory=no,menubar=no,width=' 
              + ((screen.AvailWidth/2)-12) + ',height=' 
              + (screen.AvailHeight-124) +',left=' + ((screen.AvailWidth/2)) 
              + '),top=0,resizable=yes');
            }
        else {
            alert("NO BLANK FIELDS!");
            }
    }
 
Статус
Закрыто для дальнейших ответов.