Скрипт InDesign для замены всех шрифтов в документе

Я понимаю, что это можно сделать с помощью диалогового окна поиска шрифта, но у меня слишком много файлов, для которых требуется это обновление текста, чтобы сделать этот метод практичным.

Я пробовал возиться с GREP, но я довольно неопытен в этом. У меня настроена замена одного шрифта, но я не могу заставить GREP сосредоточиться более чем на одном шрифте за раз.

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


Наличие автоматического метода для этого важно, потому что шрифты для этих документов ДОЛЖНЫ соответствовать Calibri из-за использования специальных символов и общего вида.

Если у вас правильно настроены стили абзацев и символов, этого можно добиться без использования скриптов. Просто обновите стили в одном документе, а затем загрузите стили этого документа в другие документы.
@ 13ruce Дело в том, что я не тот, кто настраивает файлы. Я получаю файлы, я запускаю это, чтобы убедиться, что все шрифты такие, какими они должны быть.
Я понимаю. Этот метод все еще можно использовать для замены стилей по умолчанию, но этого, вероятно, будет недостаточно для ваших нужд.

Ответы (1)

Самый простой способ - использовать этот скрипт:

// 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();

    };

Единственным недостатком является то, что вы должны вручную указать изменения шрифта. Преимущество, однако, заключается в том, что вы можете указать готовые преобразования для повторного использования в повторяющихся заданиях или проектах!

Установка проста, скопируйте скрипт в редактор Блокнота и сохраните его как .jsx. Затем вы открываете панель скриптов и напротив нажимаете на User и нажимаете Reveal in Explorer.

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

Скопируйте и вставьте новый файл .jsx в папку, и все готово!