Render.ru

Почему начали писать на Java?

#21
Виталий Батушев wrote:
>
> Точнее в верстку :) Видимо, в подпольных магазинах :)

А ты внимательнее читай... Я про грипп говорил не в качестве литературной метафоры. Там стиль поправить, то-се...

Кроме того, хочу сказать, что нашел способ сохранения настроек между запусками скрипта. Реализуется, кажется, только на JavaScript, зато дешево, надежно и практично.
 
#22
Насчет прочтения не переживай, почитаю и поправлю.
А вот про сохранение настроек это любопытно. Кстати, не знаешь, можно ли из JS запустить другую программу, например, архиватор?
 
#23
Виталий Батушев wrote:
>
> Насчет прочтения не переживай, почитаю и поправлю.
> А вот про сохранение настроек это любопытно. Кстати, не
> знаешь, можно ли из JS запустить другую программу, например,
> архиватор?

Сохранение настроек, брат, це такое хытрое дило - я его тебе покажу тильки як скрыпт новий напишу. :)

Можно архиватор, почему нельзя?
 
#24
>>не знаешь, можно ли из JS запустить другую программу, например, архиватор?
Да это было бы интересно!

>> краткое описание языка JavaScript
Да и это тоже!

В мануале дофига непонятного, вот сколько не смотрю не воткнусь в систему, хотя с языком особых проблем не возникает, со словарем по крайней мере :)

Вот уже часа четыре не могу добавить страницу в вышеуказанный пример!!!
А ведь еще столько задачь впереди :-( прямо отчаяние какое-то мною овладело!
Захслестывает ощущение собственной тупости, хотя вроде не дурак.
Последний раз со мной такое было в классе 3, когда не мог решить элементарную задачу:
A------50км----->B-----------?км------------->C, A->C = 120 км, В->С = ?.

Обидно! Не хватает отцовского подзатыльника!..
...ВОЗМИТЕ МЕНЯ В СЫНОВЬЯ!!! ^-)
 
#25
Может, у меня филологический подход, конечно. Но я, если что-то не идет, просто откладываю задачу в сторону и начинаю заниматься чем-то совершенно противололожным. Спасибо моему гуманитарному образованию - не дается JS, полистаю Современный русский язык Белошапковой :) На самом деле мозг продолжает работать над задачей, но как бы на другом уровне. Просто вдруг приходит ясное и четкое понимание - как.
А может это у нас, с Бутриным, от холода, мозги так работают... чтобы согреться...
> ...ВОЗМИТЕ МЕНЯ В СЫНОВЬЯ!!!
Пиши заявление. :)

Олег, может, сократить общение с Україной?
А те адже і я незабаром українською мовою заговорю...
 
#26
2Виталий Батушев:
Методом подобного гимора получил следующее:
-----------------------------------------------------------------------------------------------
//создать документ
var myDocument = app.documents.add(app.documentPresets.item("www"))
//определяем текстовый файл
var myFile = new File("/c/project/test.txt");
with(myDocument){
var myPage1 = myDocument.pages.item(0);
with(myPage1){
//добавляем текстовый фрейм на страницу
var myTextFrame = textFrames.add();
//размеры текстового фрейма
myTextFrame.geometricBounds = [ "10mm", "10mm", "287mm", "103mm"];
//помещаем файл
myTextFrame.place (myFile, autoflowing = true);
//создаем следующий фрейм
myNextTextFrame1 = myTextFrame.nextTextFrame = textFrames.add();
with (myNextTextFrame1){
myNextTextFrame1.geometricBounds = [ "10mm", "107mm", "287mm", "200mm"];
}
}
//добавляем страницу 2
myNextPage = pages.add()
with (myNextPage){
//"продлеваем" текстовый фрейм на стр. 2
myNextTextFrame2 = myNextTextFrame1.nextTextFrame = textFrames.add();
myNextTextFrame2.geometricBounds = [ "10mm", "10mm", "287mm", "103mm"];
myNextTextFrame3 = myNextTextFrame2.nextTextFrame = textFrames.add();
myNextTextFrame3.geometricBounds = [ "10mm", "107mm", "287mm", "200mm"];
}
}

//поиск-замена!!!
with(myDocument){
search ("..",false,false,".");
search ("..",false,false,".");
search ("^p^p",false,false,"^p");
}
-----------------------------------------------------------------------------------------------

Все это выложино или выкладено :) не дабы похвастаться, а дабы задать следующий вопрос! Ибо... :)

Не сочтите за наглость, процесс медленно идет, правда пока в нужном направлении.

1. Подскажите плз. как выделить (найти) абзац определенного стиля?
2. Как документ вывести на печать?
PrintOut(myDocument, false, "Default"); - почему-то не работает!

Заранее спасибо!
 
#27
Boyler wrote:

> Не сочтите за наглость, процесс медленно идет, правда пока в
> нужном направлении.
>
> 1. Подскажите плз. как выделить (найти) абзац определенного
> стиля?
> 2. Как документ вывести на печать?
> PrintOut(myDocument, false, "Default"); - почему-то не
> работает!
>
> Заранее спасибо!

for (myCounter = 0; myCounter < myParagraphs.length; myCounter++) {
if(myParagraphs[myCounter].appliedParagraphStyle.name == StyleName) {
делаем что-то;
}
}

Нет такого метода printOut. Есть метод print - его и пользуй. Ошибка в мануале - ниц грознего.

Текст скрипта не проверял.
 
#29
Олег, я надеюсь что ты не назовешь это плагиатом или воровством, но я всетаки "повзаимствовав" сорс скрипта "Ultra Border Maker" решился покаяться и задать очередной вопрос!
Как покрасить ячейку?

with (myTable.cells[0]){
fillColor = "Black" <----?????? Не работает
}

В скрипте все завязано на переменных, а мне хотелось бы указать конкретный цвет ячейки.
В мануале написано:
swatch object or swatch name as string - вроде так и сделал, но не работает!

А делаю вот что:
Скрипт для размещения текста (объявлений в данной случае) с выполнением необходимых замен и рисованием рамок вокруг обзацев определенного стиля.

Дабы меня не обвинили в воровстве сорс прилагается:

//создать документ
var myDocument = app.documents.add(app.documentPresets.item("www"))
//определяем текстовый файл
var myFile = new File("/c/project/test.txt");
with(myDocument){
var myPage1 = myDocument.pages.item(0);
with(myPage1){
//добавляем текстовый фрейм на страницу
var myTextFrame = textFrames.add();
//размеры текстового фрейма
myTextFrame.geometricBounds = [ "10mm", "10mm", "287mm", "103mm"];
//помещаем файл
myTextFrame.place (myFile, autoflowing = true);
//создаем следующий фрейм
myNextTextFrame1 = myTextFrame.nextTextFrame = textFrames.add();
with (myNextTextFrame1){
myNextTextFrame1.geometricBounds = [ "10mm", "107mm", "287mm", "200mm"];
}
}
//добавляем страницу 2
myNextPage = pages.add()
with (myNextPage){
//"продлеваем" текстовый фрейм на стр. 2
myNextTextFrame2 = myNextTextFrame1.nextTextFrame = textFrames.add();
myNextTextFrame2.geometricBounds = [ "10mm", "10mm", "287mm", "103mm"];
myNextTextFrame3 = myNextTextFrame2.nextTextFrame = textFrames.add();
myNextTextFrame3.geometricBounds = [ "10mm", "107mm", "287mm", "200mm"];
}
}

//поиск-замена!!!
with(myDocument){
search ("..",false,false,".");
search ("..",false,false,".");
search ("^p^p",false,false,"^p");
}


//------------------------------ Фаза 2: Рисуем рамки-----------------------------------

var mySwatches = myDocument.swatches;
mySelectedFillColor = "[Black]";
var myStory = myDocument.selection[0].parentStory;
var myParagraphs = myStory.paragraphs
//Определяем стили!!!
var myNormalStyle = "NormalObj";
var myBoldStyle = "BoldObj";
var myRamkaStyle = "Ramka";
var myRamkaBoldStyle = "RamkaBold";
var myBRamkaStyle = "BlackRamNormal";
var myBRamkaBoldStyle = "BlackRamBold";

//----------------------------Поиск обзаца определенного стиля--------------------------
//Find paragraphs with user custom style
for (var myCounter = 0; myCounter < myParagraphs.length; myCounter++) {
if (myParagraphs[myCounter].appliedParagraphStyle.name == myRamkaStyle) {
//Set find paragraphs as current
var myCurrentParagraph = myParagraphs[myCounter]
//if tables in paragraph more at once, ignore this paragraph
if (myCurrentParagraph.tables.length > 1) {
continue;
}
if (myCurrentParagraph.tables.length == 1) {
// If paragraph previous to converted to table
var myTable = myCurrentParagraph.tables[0];
with (myTable) {
width += topBorderStrokeWeight;
}
} else {
var myStartSelection = myCurrentParagraph.characters[0].index;
var myEndSelection = myCurrentParagraph.characters[myCurrentParagraph.characters.length-2].index;
//Set interval of the text to convert to tables
var mySelectedText = myStory.characters.itemByRange(myStartSelection, myEndSelection);
//No need to select text! Just use method! Greate!!!
var myTable = mySelectedText.convertToTable();
}
with (myTable) {

//Apply setting to table
spaceBefore = 1 + " mm";
spaceAfter = 1 + " mm";

//Apply setting to cell
with (myTable.cells[0]){
topInset = 1 + " mm";
bottomInset = 1 + " mm";
leftInset = 1 + " mm";
rightInset = 1 + " mm";
}
}
}
}

//-----------------------Поиск обзаца определенного стиля myRamkaBoldStyle-------------------
//Find paragraphs with user custom style
for (var myCounter = 0; myCounter < myParagraphs.length; myCounter++) {
if (myParagraphs[myCounter].appliedParagraphStyle.name == myRamkaBoldStyle) {
//Set find paragraphs as current
var myCurrentParagraph = myParagraphs[myCounter]
//if tables in paragraph more at once, ignore this paragraph
if (myCurrentParagraph.tables.length > 1) {
continue;
}
if (myCurrentParagraph.tables.length == 1) {
// If paragraph previous to converted to table
var myTable = myCurrentParagraph.tables[0];
with (myTable) {
width += topBorderStrokeWeight;
}
} else {
var myStartSelection = myCurrentParagraph.characters[0].index;
var myEndSelection = myCurrentParagraph.characters[myCurrentParagraph.characters.length-2].index;
//Set interval of the text to convert to tables
var mySelectedText = myStory.characters.itemByRange(myStartSelection, myEndSelection);
//No need to select text! Just use method! Greate!!!
var myTable = mySelectedText.convertToTable();
}
with (myTable) {

//Apply setting to table
spaceBefore = 1 + " mm";
spaceAfter = 1 + " mm";

//Apply setting to cell
with (myTable.cells[0]){
topInset = 1 + " mm";
bottomInset = 1 + " mm";
leftInset = 1 + " mm";
rightInset = 1 + " mm";
}
}
}
}

//-----------------------Поиск обзаца определенного стиля myBRamkaStyle-------------------
//Find paragraphs with user custom style
for (var myCounter = 0; myCounter < myParagraphs.length; myCounter++) {
if (myParagraphs[myCounter].appliedParagraphStyle.name == myBRamkaStyle) {
//Set find paragraphs as current
var myCurrentParagraph = myParagraphs[myCounter]
//if tables in paragraph more at once, ignore this paragraph
if (myCurrentParagraph.tables.length > 1) {
continue;
}
if (myCurrentParagraph.tables.length == 1) {
// If paragraph previous to converted to table
var myTable = myCurrentParagraph.tables[0];
with (myTable) {
width += topBorderStrokeWeight;
}
} else {
var myStartSelection = myCurrentParagraph.characters[0].index;
var myEndSelection = myCurrentParagraph.characters[myCurrentParagraph.characters.length-2].index;
//Set interval of the text to convert to tables
var mySelectedText = myStory.characters.itemByRange(myStartSelection, myEndSelection);
//No need to select text! Just use method! Greate!!!
var myTable = mySelectedText.convertToTable();
}
with (myTable) {

//Apply setting to table
spaceBefore = 1 + " mm";
spaceAfter = 1 + " mm";

//Apply setting to cell
with (myTable.cells[0]){
topInset = 1 + " mm";
bottomInset = 1 + " mm";
leftInset = 1 + " mm";
rightInset = 1 + " mm";
}
}
}
}

//-----------------------Поиск обзаца определенного стиля myBRamkaBoldStyle-------------------
//Find paragraphs with user custom style
for (var myCounter = 0; myCounter < myParagraphs.length; myCounter++) {
if (myParagraphs[myCounter].appliedParagraphStyle.name == myBRamkaBoldStyle) {
//Set find paragraphs as current
var myCurrentParagraph = myParagraphs[myCounter]
//if tables in paragraph more at once, ignore this paragraph
if (myCurrentParagraph.tables.length > 1) {
continue;
}
if (myCurrentParagraph.tables.length == 1) {
// If paragraph previous to converted to table
var myTable = myCurrentParagraph.tables[0];
with (myTable) {
width += topBorderStrokeWeight;
}
} else {
var myStartSelection = myCurrentParagraph.characters[0].index;
var myEndSelection = myCurrentParagraph.characters[myCurrentParagraph.characters.length-2].index;
//Set interval of the text to convert to tables
var mySelectedText = myStory.characters.itemByRange(myStartSelection, myEndSelection);
//No need to select text! Just use method! Greate!!!
var myTable = mySelectedText.convertToTable();
}
with (myTable) {

//Apply setting to table
spaceBefore = 1 + " mm";
spaceAfter = 1 + " mm";

//Apply setting to cell
with (myTable.cells[0]){

fillColor = "Black1";

topInset = 1 + " mm";
bottomInset = 1 + " mm";
leftInset = 1 + " mm";
rightInset = 1 + " mm";
}
}
}
}

Кривой конечно! Но другого не имеем! :(

Очень надеюсь на ответ!
 
#30
Boyler wrote:
>
> Олег, я надеюсь что ты не назовешь это плагиатом или
> воровством, но я всетаки "повзаимствовав" сорс скрипта "Ultra
> Border Maker" решился покаяться и задать очередной вопрос!
> Как покрасить ячейку?
>
> with (myTable.cells[0]){
> fillColor = "Black" <----?????? Не работает
> }
>
> В скрипте все завязано на переменных, а мне хотелось бы
> указать конкретный цвет ячейки.
>
> Очень надеюсь на ответ!

with (myTable.cells[0]){
fillColor = activeDocument.swatches[0];
или
fillColor = activeDocument.swatches.item['Black'];
}

А скрипт UltraBorder.js для того и существует, чтобы смотреть на его исходники :)

Кстати, на http://indesign.rudtp.ru появился новый раздел форума -
"Практические вопросы написания скриптов". Заданные там вопросы обязательно будут рассмотрены :)
 
#31
Дебагер говорит что "activeDocument - undefined"

Попробовал изменить на "fillColor = myDocument.swatches.item['Black'];" - говорит "инвалидный параметр".

Пробовал определить "var mySwatches = myDocument.swatches;" и записать как "fillColor = mySwatches.item['Black'];" - аналогично: параметр на инвалидности.

То ли лыжи не едут, то ли я ... не догоняю?! SOS!!!
 
#32
Boyler wrote:
>
> Дебагер говорит что "activeDocument - undefined"
>
> Попробовал изменить на "fillColor =
> myDocument.swatches.item['Black'];" - говорит "инвалидный
> параметр".
>
> Пробовал определить "var mySwatches = myDocument.swatches;"
> и записать как "fillColor = mySwatches.item['Black'];" -
> аналогично: параметр на инвалидности.
>
> То ли лыжи не едут, то ли я ... не догоняю?! SOS!!!

а myDocument определен вообще? он открыт? и указываешь ли

with (app) {

}

?
 
#33
Весь исходник немного выше.
А документ вроде так определен:
var myDocument = app.documents.add(app.documentPresets.item("www"))

with (app) {} не указывал, честно говоря смутно представляю где это указать!

Могет это я где-то запутался?
 
#35
Boyler wrote:
>
> Сам скрипт работает, только вот ячейку покрасить не могу!

Пришли мылом (только архивни) - я посмотрю в работе.
 
#36
Отправил!
По ходу пытался писать комментарии...

Да! Забыл.

Там надо создать шаблон документа А4 формата под именованием "www", и текстовый файл в в папке c:\project\test.txt, файл ушел следом!
 
#37
Отправил назад в готовом виде. Там всего три маленькие погрешности было.
 
Сверху