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 0–3) |
— |
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ť 0–1 (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 0–8). |
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.