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

  • Автор темы Автор темы ~RA~
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Xотя, конечно, вместо этого индусского кода правильнее было изначально сделать WorkPath=WorkPath+"/" ну да ладно, сойдет и так ;)
 
  • Спасибо
Реакции: ~RA~
Заработало! 'dans))'
Завтра интерфейс и условия лишние поудаляю и будет совсем красота.
 
А у тебя названия входных и выходных файлов как то соосносятся? А то, может, вместо того, чтоб из файла их читать, можно как то програмно формировать из исходных?
 
А у тебя названия входных и выходных файлов как то соосносятся? А то, может, вместо того, чтоб из файла их читать, можно как то програмно формировать из исходных?
Неа.
 
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_
Статус
Закрыто для дальнейших ответов.