Я разбираю XML-документ в InDesign и пытаюсь изменить каждый стиль абзаца.
Если я сделаю это так:
myTextFrame.parentStory.texts.item(0).applyParagraphStyle(<<style>>);
он изменит весь текст, поскольку это будет один абзац.
Этот код, однако, не будет работать вообще:
for (var i = 0; i < <<paragraphs.length>>; i++)
{
if (styles[i].isValid)
myTextFrame.parentStory.texts.item(i).applyParagraphStyle(styles[i]);
}
Также кажется, что я не могу назвать метод applyParagraphStyle в классе "Параграф".
Мой XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
<book>
<authors>
<author>Lee Roy</author>
</authors>
<title>Name of the book</title>
<subtitle>How to XML</subtitle>
</book>
</root>
Затем я разбираю их следующим образом:
var string = "";
for (var i = 0; i < wholeXML.length(); i++)
{
var book = wholeXML.child(i);
string += book.child("title").toString() + "\r";
string += book.child("subtitle").toString() + "\r";
}
Результат будет выглядеть примерно так:
Name of the book
How to XML
Теперь, мой вопрос: как я могу изменить один стиль абзаца?
Вы можете просто изменить стиль абзаца одного абзаца, установив его appliedParagraphStyle
свойствоParagraphStyle.
myTextFrame.parentStory.paragraphs[0].appliedParagraphStyle = "nameOfParagraphStyle";
applyParagraphStyle
- это метод классаParagraph
, поэтому я бы внимательно посмотрел, почему ваш второй блок кода выше не работает. Либо аргументы, которые вы передаете, являются плохими, либоmyTextFrame.parentStory.texts.item(i)
возвращает что-то, что не является абзацем . Пора запустить отладчик и пройтись по нему, исследуя все до аварии. :-)