Preskočiť na obsah

Dokument

Document obaľuje jedno PDF. Získate ho z imposio.open(), imposio.newDocument(), imposio.activeDocument(), alebo z operácií vytvárajúcich nový dokument (generateImposition(), splitPages(), copyPages()).

Všetky indexy strán sú 0-based. Rozsahy sú stringy: "all", "1-5", "odd", "even", "2,4,7" (prázdny = všetky). Dĺžky sú v aktuálnej jednotke, ak nie sú zadané ako string so sufixom.

Informácie

Metóda Vracia Popis
isValid() bool Či sa dokument načítal správne.
pageCount() int Počet strán.
filePath() string Cesta k zdrojovému súboru (prázdna pri nových dokumentoch).
title() string Titul nastavený skriptom.
setTitle(title) Nastaví titul tabu pre show() / save().

Boxy a veľkosti strán

Každá vracia objekt v aktuálnej jednotke (PDF súradnice, Y-up). pageSize vracia {w, h}; gettery boxov vracajú {x, y, w, h}.

Metóda Vracia
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}

Inšpekcia strany (read-only)

Metóda Vracia
pageObjects(pageIndex) Objekty content streamu (rekurzívne aj Form XObjecty): [{ 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) Štruktúra tagged PDF (prázdna pre netagované): [{ type, title, altText, actualText, children:[…] }]

Operácie so stranami

Mutujú dokument na mieste (ak nie je uvedené inak).

resizePages(range, width, height, opts?)

Zmení veľkosť strán. Trim/bleed/crop boxy a obsah spadávky sa zachovajú.

Kľúč opts Hodnoty Predvolené
placement "fit", "fill", "stretch", "keep" "fit"

deletePages(range)

Zmaže strany v range.

rotatePages(range, degrees, opts?)

Otočí strany. degrees je absolútne (0/90/180/270); s opts.increment = true sa pripočíta k aktuálnej rotácii.

duplicatePages(range, opts?)

Zduplikuje strany. opts.mode: "after" (predvolené — kópia za každú), "block", "append".

reversePages(range?, opts?)

Obráti poradie strán. opts.mode: "inplace" (predvolené) alebo "compact".

movePages(range, destIndex)

Presunie strany v range pred index destIndex (0-based, v pôvodnom priestore strán).

setPageBoxes(range, boxes)

Nastaví boxy strán ako insety od MediaBoxu (aktuálna jednotka). boxes: { bleed, trim, crop }.

addBlankPage(at, width, height)

Vloží prázdnu stranu (rozmery v aktuálnej jednotke) na index at (-1 = koniec).

addPagesFromFile(path, opts?)

Vloží strany z PDF alebo obrázka (PNG/JPEG/BMP/GIF/TIFF/WebP → jedna strana).

Kľúč opts Popis
range Ktoré strany zo zdroja (len PDF).
at Index vloženia (-1 = koniec).

replacePages(targetRange, source, opts?)

Zmaže targetRange a na jeho miesto vloží strany zo source (PDF alebo obrázok). opts.range vyberá strany zdroja (predvolené všetky; pri obrázku sa ignoruje).

splitPages(cols, rows, opts?) → Dokument

Rozdelí každú stranu na mriežku cols × rows. Vracia nový Dokument.

Kľúč opts Hodnoty
area "media", "trim", "bleed", "crop"
range strany na rozdelenie

rasterizePages(range?, dpiOrOpts?)

Nahradí strany ich rastrovou verziou (vykreslené, sploštené na bielu — bez transparencie). Na mieste. Druhý argument je DPI číslo (legacy) alebo objekt:

Kľúč opts Hodnoty Predvolené
dpi number 300
cmyk bool false (RGB)
intent "perceptual", "relative", "saturation", "absolute" (alebo 03)
iccProfile cesta k .icc bundlovaný GRACoL

generateBleed(range?, opts?)

Postaví rám spadávky okolo strán z vlastného okraja grafiky (GUI Generovať spadávku). Strana narastie o size na každej hrane; trim box sa nastaví na pôvodnú stranu a bleed box na novú hranu, takže impozícia oreže správne. Rasterizuje sa len pridaný rám — strana ostáva vektorová. Strany, ktoré už spadávku majú, sa preskočia. Vracia počet zmenených strán.

Kľúč opts Hodnoty Default
size dĺžka — šírka spadávky
source dĺžka — šírka zdrojového pásu (užší než size = natiahne sa)
method "mirror", "extend", "replicate", "solid"
dpi raster DPI rámu 300
blur zjemnenie rámu false
force spracovať aj strany, ktoré už spadávku majú false

copyPages(range?, opts?) → Dokument

Skopíruje strany do nového dokumentu (ako GUI Copy → New). Vracia nový Dokument alebo null. opts.bakeLayer: false vynechá Imposio edit layer z kópie (čistý PDF artwork).

Úpravy obsahu strany

Úprava či mazanie objektov vlastného content streamu strany (samotná grafika, nie edit layer). indexPath pochádza z pageObjects() — napr. [3], alebo [3, 2] pre dieťa vo Form XObjecte. Všetky úpravy zachovávajú layout: zvyšok strany ostáva bajtovo identický (žiadne rozpadnuté zarovnanie textu).

Metóda Popis
setPageObjectText(page, indexPath, newText, opts?) Zmení text textového objektu. opts { x, y, w, h } ho v tom istom kroku presunie/zmení veľkosť.
setPageObjectBounds(page, indexPath, x, y, w, h) Presun/zmena veľkosti objektu (aktuálne jednotky, Y-up).
setPageObjectOpacity(page, indexPath, opacity) Nedeštruktívna priehľadnosť 01 (0 = skrytý).
duplicateObject(page, indexPath, opts?) Vektorový duplikát ako pohyblivý edit-layer tvar; opts { dx, dy } posun. Vracia ID nového tvaru.

smartDeleteObjects(pageIndex, indexPaths, opts?)

Zmaže objekty zodpovedajúce šablónovým objektom naprieč stranami (GUI Smart Delete) — napr. vodoznak či hlavičku opakovanú všade. pageIndex + indexPaths (jeden indexPath alebo ich pole) určujú šablónové objekty. Vracia počet zmazaných objektov, -1 pri chybe.

Kľúč opts Hodnoty Default
mode "identical" (rovnaký objekt) alebo "position" (čokoľvek na tom mieste) "identical"
range ktoré strany spracovať "all"
tolerance tolerancia zhody (aktuálne jednotky) 0,5 pt
verify pre-renderovať každú zmenenú stranu a preskočiť ju, ak sa zmenilo čokoľvek iné true

Polia formulára

Čítanie a vypĺňanie interaktívnych polí PDF (AcroForm). Hodnoty sa zapíšu do formulára a ostanú editovateľné; použite flattenForms na ich natrvalo zapečenie do obsahu strany.

formFields()

Vráti interaktívne polia dokumentu. Každá položka:

Kľúč Popis
name Plne kvalifikovaný názov poľa — kľúč pre setFormField.
label Čitateľný popis (/TU, fallback na name).
type "text", "checkbox", "radio", "choice", "pushbutton", "signature".
value Aktuálna hodnota (text/choice hodnota; on-state názov pre buttony).
checked true/false pre zaškrtávacie políčka a prepínače.
choices Možnosti pre choice polia (a on-state názvy pre prepínače).
readOnly Uzamknuté autorom formulára.
multiline Textové pole povoľuje zalomenie riadkov.

setFormField(name, value)

Nastaví hodnotu jedného poľa. value je reťazec pre text a choice polia, boolean (alebo "on"/"off") pre zaškrtávacie políčka a on-state názov pre prepínače. Príznak iba na čítanie sa ignoruje — hodnota sa prepíše. Vráti true ak sa aplikovalo.

setFormFields(values)

Nastaví viac polí naraz z objektu { name: value, … } (jeden priechod na source; neznáme názvy sa preskočia).

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?)

Zapečie hodnoty polí formulára (a anotácie) do obsahu strán, aby prežili resize, split a impozíciu. In-place; range predvolene "all".

Variabilné dáta

mergeData(table, opts)

Spojí dátové záznamy s dokumentom (GUI Variabilné dáta → Generovať): pre každý záznam sa skopírujú zdrojové strany a mapované elementy sa expandujú — šablóny textu/rámcového textu nahradia text, obrázková šablóna sa expanduje na cestu k súboru, checkbox šablóna rozhodne o zaškrtnutí (1/yes/true zaškrtne, prázdne/0/no odškrtne). Placeholdery: {stlpec}, {i:03}, {=vyraz}, {{ = literál.

table je objekt z imposio.loadData (alebo { columns: […], rows: [[…]] } poskladaný skriptom); null = merge len s počítadlami.

Kľúč opts Popis
mapping Povinné. [{ page: 0, shape: id, template: "{meno}" }]. Obrázkové mapovania berú aj fit: "fit"\|"fill"\|"stretch"\|"keep" a align: "top-left"…"center"…"bottom-right" (alebo 08).
mode "new" (default), "append", "fill".
sourcePages 1-based rozsah; default = strany použité v mapping.
records "all", "1-100", …
targets Len "fill": strany, ktoré dostanú elementy (default = strany za zdrojovým blokom).
replace Len "fill": true nahradí elementy cieľových strán, false pridá navrch.
counters [{ name: "i", start: 0, step: 1, max: 100 }]max voliteľné; s max funguje merge aj bez tabuľky.
imageBaseDir Základný priečinok pre relatívne cesty obrázkov.
hidden [{ page: 0, shape: id }] — Viditeľnosť: položky vynechané z výstupu.
pdfContent false vynechá podkladový PDF obsah zdrojových strán (elementy na prázdnych stranách; new/append). Default true.

Vracia nový Dokument pre "new", počet zmergovaných záznamov pre "append"/"fill". Pri chybe vyhodí výnimku (dokument sa nezmení).

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, uloženie a render

exportImage(path, opts?)

Vykreslí strany do obrázkových súborov. path je priečinok alebo súbor (priečinok sa odvodí).

Kľúč opts Hodnoty Predvolené
format "tiff", "png", "jpeg", "webp"
dpi number
quality number (JPEG/WebP)
box "media", "trim", "bleed", "crop"
range strany všetky
pattern vzor názvu súboru, napr. "{p}" ({p} = číslo strany v PDF, {n} = výstupné počítadlo)
multipageTiff bool — jeden TIFF pre celú zákazku

save(path, opts?)

Uloží ako PDF. Vracia bool. opts.autoIndex = true pripája _1, _2, … keď cieľový súbor existuje (predvolené false = prepíše).

renderPng(pageIndex, dpi, outPath, opts?)

Vykreslí jednu stranu do PNG. opts.background: "#rrggbb" alebo "none"/"transparent" (predvolené biela).

Metadáta a zabezpečenie

Zmeny sa zapíšu do PDF až pri save() (dirty model); obe sú čiastočné (partial) úpravy.

metadata() / setMetadata(m)

metadata() vracia { title, author, subject, keywords, creator, producer, created, modified } (created/modified len na čítanie). setMetadata({ title?, author?, subject?, keywords?, creator?, producer? }).

security() / setSecurity(s)

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

setSecurity({ encrypt?, userPassword?, ownerPassword?, algorithm?, allow…? })encrypt: false odstráni zabezpečenie pri uložení. algorithm: "rc4-128", "aes-128", "aes-256".

Zobrazenie

show(title?)

Otvorí tento dokument ako nový tab v appke (GUI Run). Pri behu headless/CLI je to no-op.