[AI CC-CC2021] Дописать скрипт.

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

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Xотя, конечно, вместо этого индусского кода правильнее было изначально сделать WorkPath=WorkPath+"/" ну да ладно, сойдет и так ;)
 
  • Спасибо
Реакции: ~RA~

~RA~

Одарённая.
Топикстартер
12 лет на форуме
Сообщения
11 891
Реакции
3 458
Заработало! 'dans))'
Завтра интерфейс и условия лишние поудаляю и будет совсем красота.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
А у тебя названия входных и выходных файлов как то соосносятся? А то, может, вместо того, чтоб из файла их читать, можно как то програмно формировать из исходных?
 

~RA~

Одарённая.
Топикстартер
12 лет на форуме
Сообщения
11 891
Реакции
3 458
А у тебя названия входных и выходных файлов как то соосносятся? А то, может, вместо того, чтоб из файла их читать, можно как то програмно формировать из исходных?
Неа.
 
У

Удалённый пользователь 513

Гость
2. При пакетной обработке заменять текст в единственном текстовом боксе. Текст для замены могу предоставлять в любом виде, txt, csv, xml или, например, вставлять в диалоговое окно скрипта. Текст кириллический.
Скрипт подставляет текстовые данные из файла базы...
Создаем шаблонный документ с текстовыми полями
Создаем файл базы данных в формате csv
Выделяем переменные текстовые поля в шаблонном файле
Запускаем скрипт, выбираем файл базы
В диалоговом окне назначаем соответствующие текстовые поля из базы
Выбираем формат сохранения pdf или eps, при активировании пункта меню
«взять имя из базы» появляется возможность указать поле базы по содержимому которого
будут называться сохраняемые файлы.
Файлы сохраняются в папку, в которой находился шаблонный файл. Имена файлов будут либо 1, 2 ... и т.д., либо по полю из базы данных.
Количество заменяемых текстовых полей может быть любым.
Код:
var doc = app.activeDocument;

var SaveOptionEPS = new EPSSaveOptions();
var SaveOptionPDF = new PDFSaveOptions();
var Texts = [];
var SelectTxt = [];

var myFile = File.openDialog ('Select file', '*.csv;', false); // выбираем файл базы данных
myFile.open('read');
var strValue = new Array();
     i=0;
while (!myFile.eof) {
    strValue[i] = myFile.readln();
    i++;
 }

for (i=0; i<strValue.length; i++) {
    Texts[i] = strValue[i].split(';')
    }

var mySelected = [];
var k=0
for (i=0; i<doc.pageItems.length; i++) {
    if (doc.pageItems[i].selected ==true&&doc.pageItems[i].typename=='TextFrame') {
        mySelected[k] = doc.pageItems[i];
        k=k+1 }
    }

var Dialog = myInput();
function myInput () {
    var Dlg = new Window ('dialog', 'Переменные данные');
    var Panel = Dlg.add ('panel');
    for (i=0; i<mySelected.length; i++) {
        var DlgGrp = Panel.add ('group');
        DlgGrp.add ('statictext', [0, 0, 112, 24], mySelected[i].contents)
        SelectTxt[i] = DlgGrp.add ('dropdownlist', [0, 0, 112, 24], Texts[0])
        }
    
var SaveOpt = Dlg.add ('panel');
 SaveOpt.alignChildren = 'left';
// SaveOptions.orientation = 'row';
var FileFormat = SaveOpt.add ('group');
FileFormat.add ('statictext', undefined, 'Сохранить файлы как:');
FileFormat.add ('radiobutton', undefined, 'PDF');
FileFormat.add ('radiobutton', undefined, 'EPS');
FileFormat.children[1].value = true;
var FileName = SaveOpt.add ('group');
FileName.add ('checkbox', undefined, 'Взять имя файла из базы');
FileName.add ('dropdownlist', [0, 0, 80, 24], Texts[0]);
FileName.children[1].enabled = false;
FileName.children[0].onClick = function () {
    if (FileName.children[0].value == true) {FileName.children[1].enabled = true}
    else {FileName.children[1].enabled = false}
    }
var Confirm = Dlg.add ('group');
Confirm.add ('button', undefined, 'Cancel', {name: 'Cancel'});
Confirm.add ('button', undefined, 'Ok', {name: 'Ok'});
    if (Dlg.show ()==1) {
        if (FileFormat.children[1].value==true) {
            var SaveOptions = SaveOptionPDF}
        else {SaveOptions = SaveOptionEPS}
        for (i=0; i<strValue.length; i++) {
            if (FileName.children[0].value == true) {var myFile = File (doc.path+'/'+ Texts[i][FileName.children[1].selection.index])}
            else { myFile = File (doc.path+'/'+(i+1)) }
            for (k=0; k<SelectTxt.length; k++) {
            mySelected[k].contents = Texts[i][SelectTxt[k].selection.index];
            }
        doc.saveAs(myFile, SaveOptions)
        }
    }
}
 
  • Спасибо
Реакции: dumbm1, ~RA~ и _MBK_
Статус
Закрыто для дальнейших ответов.