Preskočiť na obsah

Editovacia vrstva (tvary)

Kreslenie a manipulácia vektorových tvarov, textu a obrázkov na editovacej vrstve strany. Súradnice sú v aktuálnej jednotke, PDF súradnice (počiatok vľavo dole, Y nahor). Farby sú "#rrggbb" alebo "none".

Metódy add* vracajú celočíselné ID tvaru, ktoré používajú operácie podľa ID nižšie.

Spoločné možnosti tvarov

Väčšina add* metód berie voliteľný objekt opts:

Kľúč Typ Poznámky
stroke string "#rrggbb" alebo "none"
fill string "#rrggbb" alebo "none"
widthPt number Hrúbka ťahu v bodoch
opacity number 01
rotation number Stupne

Pridávanie tvarov

Metóda Parametre Vracia
addLine(page, x1, y1, x2, y2, opts?) koncové body čiary id
addRect(page, x, y, w, h, opts?) ľavý dolný roh + veľkosť id
addCircle(page, x, y, w, h, opts?) bounding box id
addCheckbox(page, x, y, w, h, opts?) zaškrtávacie políčko (rámik + fajka) id
addPolygon(page, points, opts?) points = [x1,y1, x2,y2, …] id
addText(page, x, y, w, h, text, opts?) text v rámci boxu id
addImage(page, x, y, w, h, source, opts?) obrázok v rámci boxu id
addWatermark(page, x, y, w, h, text, opts?) dvojfarebný čitateľný kód id

addCheckbox extra opts: checked (bool, default true).

addText extra opts: fontFamily, fontSizePt, bold, italic, align ("left"/"center"/"right").

addImage source: cesta k súboru (PNG/JPEG/…) alebo base64 string (voliteľne s prefixom data:image/…;base64,).

addWatermark vloží text ako dvojfarebný vzor s korekciou chýb, ktorý prežije tlač aj sken. opts:

Kľúč Význam
shape "block" (súvislá mozaika) alebo "frame" (farebný čiarový kód po obvode, s finder štvorcami v rohoch)
ec korekcia chýb "L"/"M"/"Q"/"H"
colorA farba pozadia
colorB farba paličiek
barWidth veľkosť paličky/modulu v mm (napr. 0.8)
wallMm hrúbka obvodového pásu, len frame

colorA/colorB sú fill/stroke tvaru, takže ich vieš zmeniť aj cez setShapeFill / setShapeStroke. Watermark prečítaš cez readWatermark(page) (logicky) alebo imposio.readWatermarkImage(path, opts) (z vyrenderovaného/naskenovaného obrázka).

Metóda Popis
clearLayer(page) Odstráni všetky tvary na strane.
shapeCount(page) Počet tvarov na strane.
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" });

Inšpekcia tvarov

Metóda Vracia
shapeIds(page) Pole ID tvarov v poradí kreslenia.
shapeProps(page, id) { id, type, x, y, w, h, rotation, skew, opacity, stroke, fill, widthPt, filled, locked, hidden, flipX, flipY, text } (x,y = ľavý dolný roh bboxu; farby "#aarrggbb" alebo "none").
shapeVisualBBox(page, id) Tesný bbox zohľadňujúci rotáciu/skew { x, y, w, h }.

Úprava tvarov (podľa ID)

Všetky vracajú false, ak tvar neexistuje.

Metóda Popis
setShapeRotation(page, id, deg) Nastaví absolútnu rotáciu.
rotateShape(page, id, deltaDeg) Pripočíta k rotácii.
moveShape(page, id, dx, dy) Posunie o offset.
setShapePos(page, id, x, y) Nastaví pozíciu ľavého dolného rohu.
setShapeSize(page, id, w, h) Nastaví veľkosť.
setShapeStroke(page, id, color, widthPt?) Nastaví farbu ťahu (a voliteľne hrúbku).
setShapeFill(page, id, color) Nastaví farbu výplne.
setShapeOpacity(page, id, opacity) 01.
setShapeChecked(page, id, checked) Zaškrtne/odškrtne (len checkbox tvary).
flipShape(page, id, axis) "h" alebo "v".
setShapeLocked(page, id, locked) Zamkne/odomkne.
setShapeHidden(page, id, hidden) Zobrazí/skryje.
removeShape(page, id) Zmaže tvar.

Skupinové operácie

Pracujú s viacerými tvarmi naraz. ids je JS pole (alebo jedno číslo).

Metóda Popis
rotateShapes(page, ids, deltaDeg) Otočí skupinu okolo spoločného stredu.
alignShapes(page, ids, mode, opts?) mode: left, hcenter, right, top, middle, bottom. opts.toPage zarovná voči strane (predvolené: voči spoločnému bboxu, vyžaduje ≥2 tvary).
distributeShapes(page, ids, axis) axis "h"/"v" (vyžaduje ≥3 tvary).
flipShapes(page, ids, axis) "h"/"v".

Uloženie a načítanie vrstiev

Metóda Popis
saveLayer(page, path) Uloží editovaciu vrstvu strany do .imv súboru (rovnaký JSON ako GUI).
loadLayer(page, path, opts?) Načíta .imv do strany. opts.mode: "replace" (predvolené) alebo "append".