Перейти к содержанию

Слой редактирования (фигуры)

Рисуйте и управляйте векторными фигурами, текстом и изображениями на слое редактирования страницы. Координаты задаются в текущей единице, в PDF-координатах (начало координат в левом нижнем углу, Y вверх). Цвета — "#rrggbb" или "none".

Методы add* возвращают целочисленный ID фигуры, используемый операциями по ID ниже.

Общие параметры фигур

Большинство методов add* принимают необязательный объект opts:

Ключ Тип Примечания
stroke string "#rrggbb" или "none"
fill string "#rrggbb" или "none"
widthPt number Толщина линии в пунктах
opacity number 01
rotation number Градусы

Добавление фигур

Метод Параметры Возвращает
addLine(page, x1, y1, x2, y2, opts?) концы линии id
addRect(page, x, y, w, h, opts?) левый нижний угол + размер id
addCircle(page, x, y, w, h, opts?) ограничивающий бокс id
addCheckbox(page, x, y, w, h, opts?) флажок (рамка + галочка) id
addPolygon(page, points, opts?) points = [x1,y1, x2,y2, …] id
addText(page, x, y, w, h, text, opts?) текст во фрейме id
addImage(page, x, y, w, h, source, opts?) изображение во фрейме id
addWatermark(page, x, y, w, h, text, opts?) двухцветный читаемый код id

Дополнительные opts addCheckbox: checked (bool, по умолчанию true).

Дополнительные параметры addText: fontFamily, fontSizePt, bold, italic, align ("left"/"center"/"right").

source для addImage: путь к файлу (PNG/JPEG/…) или строка base64 (возможно с префиксом data:image/…;base64,).

addWatermark встраивает text как двухцветный узор с коррекцией ошибок, который переживёт печать и сканирование. opts:

Ключ Значение
shape "block" (сплошная мозаика) или "frame" (цветной штрихкод по периметру, с поисковыми квадратами в углах)
ec коррекция ошибок "L"/"M"/"Q"/"H"
colorA цвет фона
colorB цвет полосок
barWidth размер полоски/модуля в мм (напр. 0.8)
wallMm толщина граничной полосы, только frame

colorA/colorB — это заливка/обводка фигуры, поэтому их меняют и через setShapeFill / setShapeStroke. Watermark читается через readWatermark(page) (логически) или imposio.readWatermarkImage(path, opts) (из отрендеренного/отсканированного изображения).

Метод Описание
clearLayer(page) Удаляет все фигуры со страницы.
shapeCount(page) Количество фигур на странице.
var id = doc.addRect(0, 20, 20, 50, 30, { stroke: "#0066ff", fill: "none", widthPt: 1 });
doc.addText(0, 20, 60, 80, 10, "Imposio", { fontSizePt: 12, align: "center" });

Инспекция фигур

Метод Возвращает
shapeIds(page) Массив ID фигур в порядке рисования.
shapeProps(page, id) { id, type, x, y, w, h, rotation, skew, opacity, stroke, fill, widthPt, filled, locked, hidden, flipX, flipY, text } (x,y = левый нижний угол bbox; цвета "#aarrggbb" или "none").
shapeVisualBBox(page, id) Точный bbox с учётом поворота/сдвига { x, y, w, h }.

Изменение фигур (по ID)

Все возвращают false, если фигура не существует.

Метод Описание
setShapeRotation(page, id, deg) Задаёт абсолютный поворот.
rotateShape(page, id, deltaDeg) Добавляет к повороту.
moveShape(page, id, dx, dy) Перемещает на смещение.
setShapePos(page, id, x, y) Задаёт позицию левого нижнего угла.
setShapeSize(page, id, w, h) Задаёт размер.
setShapeStroke(page, id, color, widthPt?) Задаёт цвет обводки (и опционально толщину).
setShapeFill(page, id, color) Задаёт цвет заливки.
setShapeOpacity(page, id, opacity) 01.
setShapeChecked(page, id, checked) Отметить/снять (только фигуры-флажки).
flipShape(page, id, axis) "h" или "v".
setShapeLocked(page, id, locked) Блокирует/разблокирует.
setShapeHidden(page, id, hidden) Показывает/скрывает.
removeShape(page, id) Удаляет фигуру.

Групповые операции

Действуют сразу на несколько фигур. ids — JavaScript-массив (или одно число).

Метод Описание
rotateShapes(page, ids, deltaDeg) Поворачивает группу вокруг общего центра.
alignShapes(page, ids, mode, opts?) mode: left, hcenter, right, top, middle, bottom. opts.toPage выравнивает по странице (по умолчанию — по общему bbox, нужно ≥2 фигуры).
distributeShapes(page, ids, axis) axis "h"/"v" (нужно ≥3 фигуры).
flipShapes(page, ids, axis) "h"/"v".

Сохранение и загрузка слоёв

Метод Описание
saveLayer(page, path) Сохраняет слой редактирования страницы в файл .imv (тот же JSON, что и в интерфейсе).
loadLayer(page, path, opts?) Загружает .imv на страницу. opts.mode: "replace" (по умолчанию) или "append".