Перечитал каскад как модель, идущая от задачи, и нашёл три места, где задача упиралась в пустоту: - ключ pictureParameter стоял в схеме DSL, но не был описан нигде, а задача «картинка в ячейке» из индекса вела в drawings.md, где её не было. Добавлен раздел: picIndex считается с единицы по порядку объявления в pictures, выравнивания и положение текста — ключи стиля, pictureParameter — ключ ячейки; - объектная форма rowStyle с модификатором apply нигде не описана, хотя её пишет декомпилятор: модель, разобравшая чужой макет, встречала непонятный ключ. Такие формы собраны в mxl-decompile отдельной таблицей — вместе с controlType "none", пустым valueType, пустой привязкой к раскладке и записью палитры без картинки; - область печати и повторение шапки при печати DSL не выражает — теперь это сказано прямо в print.md, а не выясняется опытным путём. Индекс задач дополнен колонкой ключей: модель, увидевшая незнакомый ключ в схеме, сразу находит нужный файл.
3.2 KiB
Печать: колонтитулы и параметры страницы
Читать, когда макет готовят к печати: повторяющиеся надписи сверху и снизу, ориентация, поля, масштаб.
Колонтитулы
У верхнего и нижнего колонтитула по три слота — left, center, right — и общие настройки:
"header": {
"font": "мелкий",
"verticalAlignment": "Bottom",
"startPage": 2,
"left": "Слева\nвторая строка",
"center": "Стр. [&НомерСтраницы] из [&СтраницВсего]",
"right": { "ru": "Справа", "en": "Right" }
},
"footer": {
"show": false,
"center": { "formatted": "<b>Итог</> <colorstyle -16>красным</>" }
}
| Поле | По умолч. | Описание |
|---|---|---|
left, center, right |
— | Текст слота: строка, объект «язык → текст» или { "formatted": … } |
font |
— | Имя шрифта из fonts — на весь колонтитул |
verticalAlignment |
— | Положение текста по вертикали: Top, Center, Bottom |
show |
true |
Выводить ли колонтитул |
startPage |
1 |
Страница, с которой колонтитул печатается |
Текст может быть многострочным (\n) и содержать поля [&НомерСтраницы], [&СтраницВсего],
[&Дата], [&Время] — платформа подставляет их при печати. { "formatted": … } — форматированная
строка: разметка живёт прямо в тексте (<b>жирный</>, <fontsize 12>, <colorstyle -16>).
Параметры печати
Плоский объект; имя ключа совпадает с именем свойства в выгрузке:
"printSettings": {
"pageOrientation": "Landscape",
"topMargin": 500, "leftMargin": 500, "bottomMargin": 500, "rightMargin": 500,
"headerSize": 1000, "footerSize": 1000,
"fitToPage": true, "firstPageNumber": 7
}
Допустимые ключи: pageOrientation, scale, collate, copies, perPage, topMargin,
leftMargin, bottomMargin, rightMargin, headerSize, footerSize, fitToPage,
blackAndWhite, printerName, paper, paperSource, pageWidth, pageHeight, duplexType,
pagePlacementAlternation, firstPageNumber. Незнакомый ключ — ошибка. Порядок в объекте не
важен: компилятор пишет свойства в том порядке, что и платформа.
Чего в DSL нет
Область печати и повторение области при печати (шапка на каждой странице) не описываются: эти настройки задаются в Конфигураторе и при пересборке чужого макета теряются. Если задача требует именно их — правьте макет в Конфигураторе, а не через DSL.