illustrator javascript экспорт jpg пробелы заменены тире

Я написал скрипт для экспорта файла в jpeg. Однако при экспорте, если имя файла содержит пробелы, они заменяются тире. Почему? Если экспортировать из Illustrator в мануал, то имя файла отображается корректно. Если вы используете fileJpg.saveDlg('');, диалоговое окно правильно показывает имя файла, но продолжает заменять пробелы тире.

function ExportJpgFunction(){
    var exportOptions = new ExportOptionsJPEG();
    var type = ExportType.JPEG;
    var fileJpg = new File('D:\\for Jpg and Eps/' + myWindow.fnamePanel.fileNameText.text + '.jpg');
    fileJpg.saveDlg('');     
    exportOptions.antiAliasing = true;
    exportOptions.qualitySetting = 100;
    exportOptions.verticalScale = 420;
    exportOptions.horizontalScale = 420;
    app.activeDocument.exportFile( fileJpg, type, exportOptions );

введите здесь описание изображения


person hdtvhdmi    schedule 25.01.2017    source источник


Ответы (3)


Вы можете использовать простой обходной путь, просто переименуйте файл с тире, добавьте эти строки в конец вашего кода:

var fileJpg1 = new File("c:\\tmp\\for-Jpg-and-Eps.jpg");//path to file with dashes
fileJpg1.rename('for Jpg and Eps.jpg');
person emax    schedule 26.01.2017
comment
С другой стороны. Я пишу имя файла без тире, а иллюстратор при экспорте добавляет тире. Добавил изображение, что бы было понятно. - person hdtvhdmi; 01.02.2017
comment
Вы меня неправильно поняли, я предложил вам переименовать файл после того, как иллюстратор сохранил его с этим зашифрованным именем, используя функцию переименования. - person emax; 12.03.2017

это ошибка в сценариях Illustrator. Чтобы удалить это, вы должны заменить вручную.

person Charu    schedule 08.09.2017

Как отмечают другие, это ошибка/причуда Adobe Illustrator.

Я решил ту же проблему, удалив тире из имен файлов ПОСЛЕ того, как Adobe Illustrator создал их.

renameFile ('D:\\for Jpg and Eps/' + replaceSpacesWithDashes(myWindow.fnamePanel.fileNameText.text) + '.jpg', myWindow.fnamePanel.fileNameText.text + '.jpg');
  
function replaceSpacesWithDashes (stringToDash) {
    
    //Simulate dashed up files from undashed original 
    var dashedString = stringToDash.replace(/\s+/g, "-");

    return dashedString;

}
  
function renameFile (fileFromPath, newName) {   

      var b = new File(fileFromPath);
      b.rename(newName);
      
}

person Brian Saetre    schedule 03.01.2021