[ID CC-CC2021] Замена шрифтов по заданному заранее списку

LeonidB

Их бин
Топикстартер
10 лет на форуме
Сообщения
2 468
Реакции
1 528
Подскажите, пожалуйста, а нет ли новых решений этой задачи?

Нужно в нескольких файлах проделать кучу операций с заменой шрифтов:

chfonts-1.jpg chfonts-2.jpg chfonts-3.jpg
и т. п.

Некоторые из шрифтов отсутствуют, причём не в каждом файле; некоторые шрифты в системе есть, но их просто надо заменить на другие, заранее заданные.
Как бы заранее внести имена шрифтов - что на что менять - в список и запускать поиск-замену одним нажатием кнопки? Причём чтобы скрипт не ругался, если искомый шрифт в файле не используется - пусть скрипт его пропустит, а заменит только там, где нужно?

Этот вариант не работает.
 

Gad

Сообщения
2 971
Реакции
1 405
Взято отсюда
JavaScript:
 // Replace fonts in current INDD doc according to a set list
 // Each line in theFontReplacements: 'Existing Font', 'Existing Style', 'New Font', 'New Style',
 // Styles are optional - leave blank ('') if unwanted

     var  mydoc =  app . activeDocument ;

     var  theFontReplacements =   [
       'Minion Pro' , 'Regular' , 'Calibri' , 'Regular' ,
       'Trade Gothic LT Std' , 'Regular' , 'Calibri' , 'Regular' ,
       'Trade Gothic LT Std' , 'Bold No. 2' , 'Calibri' , 'Bold' ,
       'Trade Gothic LT Std' , 'Oblique' , 'Calibri' , 'Italic' ,
     ];

     for   ( i =   0 ;  i <   ( theFontReplacements . length / 4 );  i ++)   { app . findTextPreferences =   NothingEnum . nothing ; app . changeTextPreferences =   NothingEnum . nothing ; app . findTextPreferences . appliedFont =  theFontReplacements [ i * 4 ];
       if   ( theFontReplacements [( i * 4 )+ 1 ]   !=   '' ){ app . findTextPreferences . fontStyle =  theFontReplacements [( i * 4 )+ 1 ];
       }; app . changeTextPreferences . appliedFont =  theFontReplacements [( i * 4 )+ 2 ];
       if   ( theFontReplacements [( i * 4 )+ 3 ]   !=   '' ){ app . changeTextPreferences . fontStyle =  theFontReplacements [( i * 4 )+ 3 ];
       }; mydoc . changeText ();

     };
 
  • Спасибо
Реакции: xenOnn и LeonidB

LeonidB

Их бин
Топикстартер
10 лет на форуме
Сообщения
2 468
Реакции
1 528
Вот! Это оно!!!
Спасибо огромное!!! 'thank''thank''thank'
 

LeonidB

Их бин
Топикстартер
10 лет на форуме
Сообщения
2 468
Реакции
1 528
Можно настроить несколько вариантов скрипта с уникальными списками замен под разные проекты. 'cooll)'