Слой редактирования (фигуры)¶
Рисуйте и управляйте векторными фигурами, текстом и изображениями на слое редактирования
страницы. Координаты задаются в текущей единице, в PDF-координатах (начало координат
в левом нижнем углу, Y вверх). Цвета — "#rrggbb" или "none".
Методы add* возвращают целочисленный ID фигуры, используемый операциями по ID ниже.
Общие параметры фигур¶
Большинство методов add* принимают необязательный объект opts:
| Ключ | Тип | Примечания |
|---|---|---|
stroke |
string | "#rrggbb" или "none" |
fill |
string | "#rrggbb" или "none" |
widthPt |
number | Толщина линии в пунктах |
opacity |
number | 0–1 |
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) |
0–1. |
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". |