Zum Inhalt

Dokument

Ein Document umhüllt ein PDF. Sie erhalten es von imposio.open(), imposio.newDocument(), imposio.activeDocument() oder von Operationen, die ein neues Dokument erzeugen (generateImposition(), splitPages(), copyPages()).

Alle Seitenindizes sind 0-basiert. Bereiche sind Strings: "all", "1-5", "odd", "even", "2,4,7" (leer = alle). Längen sind in der aktuellen Einheit, sofern nicht als String mit Suffix angegeben.

Informationen

Methode Ergebnis Beschreibung
isValid() bool Ob das Dokument korrekt geladen wurde.
pageCount() int Seitenzahl.
filePath() string Quellpfad (leer bei neuen Dokumenten).
title() string Der per Skript gesetzte Titel.
setTitle(title) Setzt den Tab-Titel für show() / save().

Seitenboxen & -größen

Jede gibt ein Objekt in der aktuellen Einheit zurück (PDF-Koordinaten, Y-up). pageSize liefert {w, h}; die Box-Getter liefern {x, y, w, h}.

Methode Ergebnis
pageSize(pageIndex) {w, h}
mediaBox(pageIndex) {x, y, w, h}
cropBox(pageIndex) {x, y, w, h}
trimBox(pageIndex) {x, y, w, h}
bleedBox(pageIndex) {x, y, w, h}

Seiteninspektion (read-only)

Methode Ergebnis
pageObjects(pageIndex) Content-Stream-Objekte (rekursiv in Form-XObjects): [{ indexPath:[…], type:"text\|path\|image\|shading\|form\|unknown", bbox:{x,y,w,h} }]
annotations(pageIndex) [{ subtype:int, type:"Link\|Text\|Widget\|…", summary, bbox:{x,y,w,h} }]
resources(pageIndex) [{ kind:"font\|image\|form", name, primary, secondary, warning:bool }]
structTree(pageIndex) Tagged-PDF-Struktur (leer bei ungetaggten): [{ type, title, altText, actualText, children:[…] }]

Seitenoperationen

Diese verändern das Dokument direkt (sofern nicht anders angegeben).

resizePages(range, width, height, opts?)

Skaliert Seiten auf eine neue Größe. Trim-/Bleed-/Crop-Boxen und Beschnittinhalt bleiben erhalten.

opts-Schlüssel Werte Standard
placement "fit", "fill", "stretch", "keep" "fit"

deletePages(range)

Löscht die Seiten in range.

rotatePages(range, degrees, opts?)

Dreht Seiten. degrees ist absolut (0/90/180/270); mit opts.increment = true wird es zur aktuellen Drehung addiert.

duplicatePages(range, opts?)

Dupliziert Seiten. opts.mode: "after" (Standard — Kopie nach jeder), "block", "append".

reversePages(range?, opts?)

Kehrt die Seitenreihenfolge um. opts.mode: "inplace" (Standard) oder "compact".

movePages(range, destIndex)

Verschiebt die Seiten in range vor den Index destIndex (0-basiert, im ursprünglichen Seitenraum).

setPageBoxes(range, boxes)

Setzt Seitenboxen als Einzüge von der MediaBox (aktuelle Einheit). boxes: { bleed, trim, crop }.

addBlankPage(at, width, height)

Fügt eine Leerseite (Maße in der aktuellen Einheit) am Index at ein (-1 = Ende).

addPagesFromFile(path, opts?)

Fügt Seiten aus einem PDF oder einem Bild ein (PNG/JPEG/BMP/GIF/TIFF/WebP → eine Seite).

opts-Schlüssel Beschreibung
range Welche Seiten der Quelle (nur PDF).
at Einfügeindex (-1 = Ende).

replacePages(targetRange, source, opts?)

Löscht targetRange und fügt an der Stelle Seiten aus source ein (PDF oder Bild). opts.range wählt Quellseiten (Standard alle; bei Bildern ignoriert).

splitPages(cols, rows, opts?) → Dokument

Teilt jede Seite in ein cols × rows-Raster. Gibt ein neues Dokument zurück.

opts-Schlüssel Werte
area "media", "trim", "bleed", "crop"
range zu teilende Seiten

rasterizePages(range?, dpiOrOpts?)

Ersetzt Seiten durch ihre gerasterte Version (gerendert, auf Weiß abgeflacht — keine Transparenz). In-place. Das zweite Argument ist eine DPI-Zahl (legacy) oder ein Objekt:

opts-Schlüssel Werte Standard
dpi number 300
cmyk bool false (RGB)
intent "perceptual", "relative", "saturation", "absolute" (oder 03)
iccProfile Pfad zu .icc mitgeliefertes GRACoL

generateBleed(range?, opts?)

Baut einen Anschnittrahmen um Seiten aus der eigenen Kante des Artworks (GUI Anschnitt erzeugen). Die Seite wächst um size an jeder Kante; die Trim-Box wird auf die ursprüngliche Seite gesetzt und die Bleed-Box auf die neue Kante, sodass das Ausschießen korrekt beschneidet. Nur der hinzugefügte Rahmen wird gerastert — die Seite bleibt vektoriell. Seiten mit vorhandenem Anschnitt werden übersprungen. Gibt die Anzahl der geänderten Seiten zurück.

opts-Schlüssel Werte Standard
size Länge — Anschnittbreite
source Länge — Breite des Quellstreifens (schmaler als size = wird gestreckt)
method "mirror", "extend", "replicate", "solid"
dpi Raster-DPI des Rahmens 300
blur Rahmen weichzeichnen false
force auch Seiten mit vorhandenem Anschnitt verarbeiten false

copyPages(range?, opts?) → Dokument

Kopiert Seiten in ein neues Dokument (wie GUI Copy → New). Gibt das neue Dokument oder null zurück. opts.bakeLayer: false lässt die Imposio-Bearbeitungsebene aus der Kopie (sauberes PDF-Artwork).

Seiteninhalt bearbeiten

Objekte des Content-Streams der Seite bearbeiten oder entfernen (das Artwork selbst, nicht die Bearbeitungsebene). indexPath stammt aus pageObjects() — z. B. [3], oder [3, 2] für ein Kind in einem Form-XObject. Alle Bearbeitungen sind layout-erhaltend: der Rest der Seite bleibt byte-identisch (kein verschobener Textsatz).

Methode Beschreibung
setPageObjectText(page, indexPath, newText, opts?) Ändert den Text eines Textobjekts. opts { x, y, w, h } verschiebt/skaliert es im selben Schritt.
setPageObjectBounds(page, indexPath, x, y, w, h) Objekt verschieben/skalieren (aktuelle Einheit, Y-up).
setPageObjectOpacity(page, indexPath, opacity) Nicht-destruktive Deckkraft 01 (0 = verborgen).
duplicateObject(page, indexPath, opts?) Vektorduplikat als bewegliche Form der Bearbeitungsebene; opts { dx, dy } Versatz. Gibt die neue Form-ID zurück.

smartDeleteObjects(pageIndex, indexPaths, opts?)

Löscht Objekte, die Vorlagenobjekten entsprechen, über viele Seiten hinweg (GUI Smart Delete) — z. B. ein überall wiederholtes Wasserzeichen oder eine Kopfzeile. pageIndex + indexPaths (ein indexPath oder ein Array) bestimmen die Vorlagenobjekte. Gibt die Anzahl der gelöschten Objekte zurück, -1 bei Fehler.

opts-Schlüssel Werte Standard
mode "identical" (gleiches Objekt) oder "position" (was immer dort liegt) "identical"
range zu verarbeitende Seiten "all"
tolerance Übereinstimmungstoleranz (aktuelle Einheit) 0,5 pt
verify jede geänderte Seite neu rendern und überspringen, falls sich sonst etwas geändert hat true

Formularfelder

Interaktive PDF-Felder (AcroForm) lesen und ausfüllen. Werte werden in das Formular geschrieben und bleiben bearbeitbar; mit flattenForms werden sie dauerhaft in den Seiteninhalt eingebacken.

formFields()

Gibt die interaktiven Felder des Dokuments zurück. Jeder Eintrag:

Schlüssel Beschreibung
name Voll qualifizierter Feldname — der Schlüssel für setFormField.
label Lesbare Beschriftung (/TU, Fallback auf name).
type "text", "checkbox", "radio", "choice", "pushbutton", "signature".
value Aktueller Wert (Text-/Choice-Wert; On-State-Name für Schaltflächen).
checked true/false für Kontrollkästchen und Optionsfelder.
choices Optionen für Choice-Felder (und On-State-Namen für Optionsfelder).
readOnly Vom Formularautor gesperrt.
multiline Textfeld erlaubt Zeilenumbrüche.

setFormField(name, value)

Setzt den Wert eines Feldes. value ist eine Zeichenkette für Text- und Choice-Felder, ein Boolean (oder "on"/"off") für Kontrollkästchen und der On-State-Name für Optionsfelder. Das Schreibschutz-Flag wird ignoriert — der Wert wird überschrieben. Gibt true zurück, wenn angewendet.

setFormFields(values)

Setzt viele Felder auf einmal aus einem Objekt { name: value, … } (ein Durchlauf pro Quelle; unbekannte Namen werden übersprungen).

var d = imposio.open("invoice-template.pdf");
d.setFormFields({
  customer: "ACME Ltd",
  agree:    true,        // checkbox
  color:    "/green",    // radio on-state
  city:     "Kosice"     // choice
});
d.save("invoice-filled.pdf");

flattenForms(range?)

Backt Formularfeldwerte (und Anmerkungen) in den Seiteninhalt ein, damit sie Resize, Split und Ausschießen überstehen. In-place; range standardmäßig "all".

Variable Daten

mergeData(table, opts)

Führt Datensätze mit dem Dokument zusammen (GUI Variable Daten → Erzeugen): für jeden Datensatz werden die Quellseiten kopiert und die zugeordneten Elemente expandiert — Text-/Rahmentext-Vorlagen ersetzen den Text, Bildvorlagen expandieren zu einem Dateipfad, Checkbox-Vorlagen entscheiden das Ankreuzen (1/yes/true kreuzt an, leer/0/no kreuzt ab). Platzhalter: {spalte}, {i:03}, {=ausdruck}, {{ = Literal.

table ist das Objekt aus imposio.loadData (oder { columns: […], rows: [[…]] } im Skript gebaut); null = Merge nur mit Zählern.

opts-Schlüssel Beschreibung
mapping Erforderlich. [{ page: 0, shape: id, template: "{name}" }]. Bildzuordnungen nehmen zusätzlich fit: "fit"\|"fill"\|"stretch"\|"keep" und align: "top-left"…"center"…"bottom-right" (oder 08).
mode "new" (Standard), "append", "fill".
sourcePages 1-basierter Bereich; Standard = die in mapping benutzten Seiten.
records "all", "1-100", …
targets Nur "fill": Seiten, die die Elemente erhalten (Standard = Seiten nach dem Quellblock).
replace Nur "fill": true ersetzt die Elemente der Zielseiten, false legt sie obendrauf.
counters [{ name: "i", start: 0, step: 1, max: 100 }]max optional; mit max funktioniert der Merge auch ohne Tabelle.
imageBaseDir Basisordner für relative Bildpfade.
hidden [{ page: 0, shape: id }] — Sichtbarkeit: Einträge, die aus der Ausgabe bleiben.
pdfContent false lässt den darunterliegenden PDF-Inhalt der Quellseiten weg (Elemente auf leeren Seiten; new/append). Standard true.

Gibt für "new" ein neues Dokument zurück, für "append"/"fill" die Anzahl der zusammengeführten Datensätze. Wirft bei Fehler (das Dokument bleibt unverändert).

var data = imposio.loadData("guests.csv");
var doc  = imposio.activeDocument();
var out  = doc.mergeData(data, {
  mapping: [{ page: 0, shape: 3, template: "{firstname} {lastname}" }],
  counters: [{ name: "i", start: 1 }],
});
out.save("badges.pdf");

Export, Speichern & Rendern

exportImage(path, opts?)

Rendert Seiten in Bilddateien. path ist ein Ordner oder eine Datei (der Ordner wird abgeleitet).

opts-Schlüssel Werte Standard
format "tiff", "png", "jpeg", "webp"
dpi number
quality number (JPEG/WebP)
box "media", "trim", "bleed", "crop"
range Seiten alle
pattern Namensmuster, z. B. "{p}" ({p} = PDF-Seitennr., {n} = Ausgabezähler)
multipageTiff bool — ein TIFF für den ganzen Auftrag

save(path, opts?)

Speichert als PDF. Gibt bool zurück. opts.autoIndex = true hängt _1, _2, … an, wenn die Zieldatei existiert (Standard false = überschreiben).

renderPng(pageIndex, dpi, outPath, opts?)

Rendert eine einzelne Seite als PNG. opts.background: "#rrggbb" oder "none"/"transparent" (Standard Weiß).

Metadaten & Sicherheit

Änderungen werden erst bei save() ins PDF geschrieben (Dirty-Modell); beides sind partielle Updates.

metadata() / setMetadata(m)

metadata() liefert { title, author, subject, keywords, creator, producer, created, modified } (created/modified nur lesbar). setMetadata({ title?, author?, subject?, keywords?, creator?, producer? }).

security() / setSecurity(s)

security() liefert { encrypt, algorithm, userPassword, ownerPassword, allowPrint, allowHighResPrint, allowCopy, allowModify, allowAnnotate, allowForms, allowExtract, allowAssembly, wasEncrypted }.

setSecurity({ encrypt?, userPassword?, ownerPassword?, algorithm?, allow…? })encrypt: false entfernt die Sicherheit beim Speichern. algorithm: "rc4-128", "aes-128", "aes-256".

Anzeige

show(title?)

Öffnet dieses Dokument als neuen Tab in der App (GUI-Run). Im Headless-/CLI-Betrieb ein No-op.