Indesign Глифы в ячейке таблицы исчезли после добавления текста в ту же ячейку - PullRequest
1 голос
/ 09 марта 2020

Я работаю над js расширенным скриптом для Adobe Indesign. Я столкнулся с проблемой, которая странная, я не знаю, является ли это ошибкой Adobe Indesign или моей проблемой.

Дело в том, что мне нужно вставить какой-то специальный символ в таблицу, поэтому мне нужно использовать поиск и измените метод Glyphs для вставки этих специальных символов в ячейку таблицы:

month12day29.contents = "¢";
app.findChangeGlyphOptions.includeMasterPages = true;
month12day29.characters.everyItem().appliedParagraphStyle ="前ー月大丸";
month12day29.characters[0].properties={appliedFont : 'A-OTF Futo Go B101 Pro',fontStyle: 'Bold'}
app.findGlyphPreferences.appliedFont= 'A-OTF Futo Go B101 Pro';
app.findGlyphPreferences.fontStyle= 'Bold';
app.findGlyphPreferences.glyphID = 102;   //Character:  ¢
app.changeGlyphPreferences.glyphID=8103;  //Desired character, there is no unicode for this, i cant insert it directly, so i have to insert it by glyphs
app.changeGlyphPreferences.appliedFont= 'A-OTF Futo Go B101 Pro';
app.changeGlyphPreferences.fontStyle= 'Bold';
month12day29.characters[0].changeGlyph();
month12day29.characters.everyItem().appliedParagraphStyle ="前ー月大丸";   // same Font A-OTF Futo Go B101 Pro

С вышеуказанной частью все в порядке, но когда я пытаюсь добавить текст в эту ячейку, вставленный символ исчезает

month12day29.contents +="\r";  /// the Desired chacter above some how got deleted after this line execute

Я хочу спросить:

  • В чем проблема?

  • Как обойти это?

Спасибо и извините за мой плохой английский sh!

1 Ответ

2 голосов
/ 10 марта 2020

Поскольку вы имеете дело с таким экзотическим c глифом, у которого даже нет юникода, вероятно, происходит сбой конкатенации JS.

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

month12day29.insertionPoints.lastItem().contents = "\r";

Это в основном оставляет только вставленный глиф и просто помещает что-то позади него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...