для вашей первой проблемы
Чтобы текстовые фреймы автоматически соответствовали их высоте содержанию, что-то. как подходит (FitOptions.FRAME_TO_CONTENT);
вы можете просто использовать myText.fit(FitOptions.FRAME_TO_CONTENT);
. Вам не нужно придерживаться Бэзила, если там что-то не реализовано.
Чтобы текстовые поля продолжались до тех пор, пока страница не ограничится, а затем не была добавлена новая страница.
Это немного сложнее. Если вы расширите текстовые рамки, их размер изменится. Вам понадобится другая переменная вне вашего l oop, которая отслеживает geometricBounds
последнего кадра и добавляет следующий кадр в начале. Когда ваши последние границы превысят pageHeight, вам нужно будет добавить новую страницу.
Это то, с чего можно начать. Это непроверенный код.
/**
* InDesign Objects have a property called
* geometricBounds
* these are the bounds in page coordinates sorted like this
* [y1, x1, y2, x2]
* or in words
* [
* y of upper left corner,
* x of upper left corner,
* y of lower right corner,
* x of lower right corner
* ]
*/
var prevGeometricBounds = [100, 10, 100, 10];
for (var i = 0; i < jsonData.length; i++) {
var myText = jsonData[i].text;
var x = prevGeometricBounds[1];
var y = prevGeometricBounds[0];
var w = prevGeometricBounds[3] - prevGeometricBounds[1];
var h = prevGeometricBounds[2] - prevGeometricBounds[1];
var textFrame = text(myText, x, y, w, h);
textFrame.fit(FitOptions.FRAME_TO_CONTENT);
prevGeometricBounds = myText.geometricBounds;
if(prevGeometricBounds[2] > height){
addPage();
}
}
Еще один совет. Как вы можете видеть, я опускал b.
Basil, который много раз развивался, но мы еще не выпустили версию 2. Вы можете получить последнюю версию из development ветки на GitHub. Документы для этого находятся здесь .
Редактировать 1
В Базилике 2 вы сможете загрузить JSON, используя loadString
, а затем декодировать его, используя JSON .parse
Текстовая функция Basil возвращает textFrame
. Так что функция fit
должна работать. Если вы столкнетесь с ошибками, мы с радостью примем отчеты об ошибках по адресу github .
Edit 2
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *. из JSON не по результату функции text()
.