как создать ColorBook по списку (из xml или ...)?

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

Sandr

Участник
Топикстартер
Сообщения
16
Реакции
0
стоит задача сверстать несколько ColorBook ов (разных форматов)
по одному набору цветов (из xml)

тоесть есть перечень цветов (CMYK)
и нужно сверстать брошюры в которых на каждой полосе надо разместить
таблицу из n количества ячеек
количество полос варьируется в зависимости от количества ячеек на полосе
в каждой ячейке надо написать составляющие CMYK по типу 10-0-50-30
пример
cBook2.jpg

подскажите есть такое решение ? или посоветуйте где копать
 
Ответ: как создать ColorBook по списку (из xml или ...)?

Как я вижу готового решения нет :(

Тогда интересует такая возможность

Нужен скрипт перебирающий все текстовые фреймы в документе и вписывающий в каждый фрейм - содержание CMYK цветов фона этого фрейма
например 0-100-0-30

буду рад любой подсказке!
 
Ответ: как создать ColorBook по списку (из xml или ...)?

Подсказка.:)
PHP:
var myColor = myObj.fillColor.colorValue;
alert(myColor[0]+"; "+myColor[1]+"; "+myColor[2]+"; "+myColor[3]);
где myObj — обрабатываемый объект, myColor — массив из красок.
 
Ответ: как создать ColorBook по списку (из xml или ...)?

PHP:
function setLabel(obj){
	var myColor = obj.fillColor.colorValue;
	var newString = " "+
		myColor[0].toFixed()+"-"+
		myColor[1].toFixed()+"-"+
		myColor[2].toFixed()+"-"+
		myColor[3].toFixed()+" ";
	obj.texts[0].paragraphs[0].contents = newString;
	
}
Спасибо чуток разобрался
не могу найти как сменить object.content с graphic на text
и как присвоить объекту стиль(имяСтиля)
 
Ответ: как создать ColorBook по списку (из xml или ...)?

А зачем контент менять с графики на текст? Можно ведь сразу делать текстовый фрейм и красить его.
 
Ответ: как создать ColorBook по списку (из xml или ...)?

есть уже многополосник с content - Unassigned
 
Ответ: как создать ColorBook по списку (из xml или ...)?

myObj.contentType = ContentType.TEXT_TYPE;
 
Ответ: как создать ColorBook по списку (из xml или ...)?

Присвоить объекту стиль: myObj.appliedObjectStyle = app.activeDocument.objectStyles.item("Название");
 
Ответ: как создать ColorBook по списку (из xml или ...)?

Всем спасибо
Есть вот еще вопрос - надо в сверстаный многополосник добавить страницы по мастер полосе
и на каждой новой полосе покрасить объекты с объектстилем(мойстиль)
вот написал но не могу получить доступ к объектам на новой полосе
похоже чтото надо сделать с новой полосой перед строчкой
var newObj = doc.pages[curPage].allPageItems;

PHP:
function addPage(doc, swatchLib){
	var curPage = doc.pages.length;
	if(swatchLib.length !=0){
		var pg = doc.pages.add(LocationOptions.AT_END);
		var newObj = doc.pages[curPage].allPageItems;
		for (var i = 0; i < newObj.length; i++){
                       var tmpSwatch = swatchLib.shift();
			if (newObj[i].appliedObjectStyle.name == swatchStyleName){
				newObj[i].fillColor.colorValue = tmpSwatch.colorValue;
				setLabel(newObj[i]);
			}
		}
	}
};
 
Ответ: как создать ColorBook по списку (из xml или ...)?

Если я правильно понял, у Вас объекты, которые нужно красить, лежат на шаблоне. Тогда надо их предварительно оттуда "достать". Конструкция там такая:
PHP:
var myItems = app.activeDocument.pages[0].appliedMaster.allPageItems[0].override(app.activeDocument.pages[0]);
Под себя, думаю сможете довести. :)
 
Ответ: как создать ColorBook по списку (из xml или ...)?

PHP:
function addPage(doc, swatchLib){
	var curPage = doc.pages.length;
	if(swatchLib.length !=0){
		var pg = doc.pages.add(LocationOptions.AT_END);
		var currentPage = doc.pages[curPage];
		var masterPageItems =currentPage.appliedMaster.allPageItems;
		for (var i = 0; i < masterPageItems.length; i++){
			if (masterPageItems[i].appliedObjectStyle.name === swatchStyleName)
				masterPageItems[i].override(currentPage);
		}
		
		var newObj = currentPage.allPageItems;
		for (var i = 0; i < newObj.length; i++){
			var tmpSwatch = swatchLib.shift();
			if (newObj[i].appliedObjectStyle.name === swatchStyleName){
				newObj[i].fillColor.colorValue = tmpSwatch.colorValue;
				setLabel(newObj[i]);
			}
		}
	}
};
Такая конструкция приводит к изменению объектов на мастере :( и как результат изменению всех объектов на все полосах
странно :(
 
Ответ: как создать ColorBook по списку (из xml или ...)?

Примерно так, на скорую руку
PHP:
var swatchLibCounter = 100;
var doc = app.activeDocument;
// Создайте два объектных стиля перед запуском скрипта
var StartSwatchStyleName = "MasterColorBook"; // Стиль, который присвоен элементам на мастер-развороте
// В общем случае на мастере могут быть элементы, которым не надо делать override, поэтому чтобы от них
//  дистанциироваться вводим стиль MasterColorBook
var PageStyleName = "PageColorBook"; // стиль который будет присвоен элементам, перенесенным на страницу
// -----------------
 var myMasterSpread = doc.masterSpreads.item("A-Master");
 var myPage = doc.pages[0];

while (swatchLibCounter >=0 )
{ 
    myPage.appliedMaster = myMasterSpread;
    myMasterElements = myPage.masterPageItems;
    for( var i = 0; i < myMasterElements.length; i++)
    {
        if(myMasterElements[i].appliedObjectStyle.name === StartSwatchStyleName)
        {
            try
            {
                myMasterElements[i].override(myPage);
            }// try
        catch(err) { }
        }// if
    }// for
    var myPageItems = myPage.pageItems;
    for(var j =0; j<myPageItems.length; j++)
    {
        if(myPageItems[j].appliedObjectStyle.name === StartSwatchStyleName)
        {
            myPageItems[j].appliedObjectStyle =  doc.objectStyles.item(PageStyleName);
            myPageItems[j].fillColor = doc.swatches.item("Black");
        }
     }
    var myPage = doc.pages.add(LocationOptions.AT_END);
    swatchLibCounter -=10;
}// while
 
Статус
Закрыто для дальнейших ответов.