Zum Inhalt

Bearbeitungsebene (Formen)

Vektorformen, Text und Bilder auf der Bearbeitungsebene einer Seite zeichnen und manipulieren. Koordinaten sind in der aktuellen Einheit, PDF-Koordinaten (Ursprung links unten, Y nach oben). Farben sind "#rrggbb" oder "none".

Die add*-Methoden geben eine ganzzahlige Form-ID zurück, die die ID-Operationen unten verwenden.

Gemeinsame Form-Optionen

Die meisten add*-Methoden nehmen ein optionales opts-Objekt:

Schlüssel Typ Hinweise
stroke string "#rrggbb" oder "none"
fill string "#rrggbb" oder "none"
widthPt number Strichstärke in Punkten
opacity number 01
rotation number Grad

Formen hinzufügen

Methode Parameter Ergebnis
addLine(page, x1, y1, x2, y2, opts?) Linien-Endpunkte id
addRect(page, x, y, w, h, opts?) links unten + Größe id
addCircle(page, x, y, w, h, opts?) Bounding-Box id
addCheckbox(page, x, y, w, h, opts?) Ankreuzkästchen (Rahmen + Häkchen) id
addPolygon(page, points, opts?) points = [x1,y1, x2,y2, …] id
addText(page, x, y, w, h, text, opts?) Text in einer Box id
addImage(page, x, y, w, h, source, opts?) Bild in einer Box id
addWatermark(page, x, y, w, h, text, opts?) zweifarbiger lesbarer Code id

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

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

addImage source: ein Dateipfad (PNG/JPEG/…) oder ein Base64-String (optional mit data:image/…;base64,-Präfix).

addWatermark bettet text als zweifarbiges, fehlerkorrigiertes Muster ein, das Druck und Scan übersteht. opts:

Schlüssel Bedeutung
shape "block" (durchgehendes Mosaik) oder "frame" (Farb-Barcode am Rand, mit Finder-Quadraten in den Ecken)
ec Fehlerkorrektur "L"/"M"/"Q"/"H"
colorA Hintergrundfarbe
colorB Strichfarbe
barWidth Strich-/Modulgröße in mm (z. B. 0.8)
wallMm Randbanddicke, nur frame

colorA/colorB sind Füllung/Kontur der Form, also auch über setShapeFill / setShapeStroke änderbar. Ein Watermark liest man mit readWatermark(page) (logisch) oder imposio.readWatermarkImage(path, opts) (aus einem gerenderten/gescannten Bild).

Methode Beschreibung
clearLayer(page) Entfernt alle Formen der Seite.
shapeCount(page) Anzahl Formen auf der Seite.
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" });

Formen inspizieren

Methode Ergebnis
shapeIds(page) Array der Form-IDs in Zeichenreihenfolge.
shapeProps(page, id) { id, type, x, y, w, h, rotation, skew, opacity, stroke, fill, widthPt, filled, locked, hidden, flipX, flipY, text } (x,y = linke untere Ecke der BBox; Farben "#aarrggbb" oder "none").
shapeVisualBBox(page, id) Rotations-/Skew-bewusste enge BBox { x, y, w, h }.

Formen ändern (per ID)

Alle geben false zurück, wenn die Form nicht existiert.

Methode Beschreibung
setShapeRotation(page, id, deg) Absolute Rotation setzen.
rotateShape(page, id, deltaDeg) Zur Rotation addieren.
moveShape(page, id, dx, dy) Um einen Versatz verschieben.
setShapePos(page, id, x, y) Position der linken unteren Ecke setzen.
setShapeSize(page, id, w, h) Größe setzen.
setShapeStroke(page, id, color, widthPt?) Strichfarbe (und optional Stärke) setzen.
setShapeFill(page, id, color) Füllfarbe setzen.
setShapeOpacity(page, id, opacity) 01.
setShapeChecked(page, id, checked) Ankreuzen/abwählen (nur Checkbox-Formen).
flipShape(page, id, axis) "h" oder "v".
setShapeLocked(page, id, locked) Sperren/entsperren.
setShapeHidden(page, id, hidden) Zeigen/verstecken.
removeShape(page, id) Form löschen.

Gruppenoperationen

Arbeiten mit mehreren Formen gleichzeitig. ids ist ein JS-Array (oder eine einzelne Zahl).

Methode Beschreibung
rotateShapes(page, ids, deltaDeg) Dreht die Gruppe um ihren gemeinsamen Mittelpunkt.
alignShapes(page, ids, mode, opts?) mode: left, hcenter, right, top, middle, bottom. opts.toPage richtet an der Seite aus (Standard: an der gemeinsamen BBox, braucht ≥2 Formen).
distributeShapes(page, ids, axis) axis "h"/"v" (braucht ≥3 Formen).
flipShapes(page, ids, axis) "h"/"v".

Ebenen speichern & laden

Methode Beschreibung
saveLayer(page, path) Speichert die Bearbeitungsebene der Seite in eine .imv-Datei (gleiches JSON wie die Oberfläche).
loadLayer(page, path, opts?) Lädt eine .imv in die Seite. opts.mode: "replace" (Standard) oder "append".